‫誰？
‫私たちは多くのことを経験してきました｡
‫しかし､ 私たちは辛抱強くやっていくつもりです｡
‫一緒に乗り越えよう｡
‫あと数回で機能アップです｡
‫ということで､ 次はサンプルです｡
‫さて､ これはデータフレームをシャッフルするのに最適な方法です｡
‫どういうことかというと､ インデックスを混ぜるということです｡
‫ですから､ 今後の動画で､ 機械学習のアルゴリズムをデータに適用し始めたら｡
‫最も重要なステップの1つは､ トレーニングセット､ バリデーションセット､ テストセットを作成することです｡
‫そして､ そのためのステップのひとつが､ 順番のランダム化なのです｡
‫データが来るのは､ これらのサンプルが来る順番が､ データのパターンに何らかの影響を与えることを避けたいからです｡
‫機械学習アルゴリズムが物事を学習するとき､ 私たちはできるだけ汎用的であることを望みます｡
‫だから､ 順番を気にしてほしくないんです｡
‫さて､ 時系列データなどには例外もありますが､ ここではこの例だけを紹介します｡
‫データフレーム内の行をシャッフルしたかったので､ 車の販売ドットサンプルをやってみましょう｡
‫サンプルは基本的に､ このデータフレームからこのパラメータでサンプルを取り､ frackはそのサンプルの割合です｡
‫だから､ 整数の形になるんです｡
‫だから､ 例えば､ 0. 5は50%のデータです｡
‫だから､ 10列中5列を獲得することになる｡
‫しかし､ 今回はすべてをシャッフルしたいのです｡
‫そこで､ 100％のデータに対して1つを使用することにします｡
‫これでよしとしよう｡
‫これで､ インデックスがシャッフルされたことがわかりますね｡
‫つまり､ これは基本的に同じデータフレームで､ 順番が入れ替わっているだけなのです｡
‫さて､ PANDASで重要なことは､ 行の情報はその行に残るということです｡
‫それで9列目､ 日産､ 日産ホワイト､ 31,600キロ､ 4ドア｡
‫だから､ 列はそのままでいいんです｡
‫この機能サンプルで変わるのは､ 表示される順番だけです｡
‫そして､ もう一度データフレームを見てみましょう｡
‫ああ､ 愚かな私たちは再割り当てすることを忘れ続けているので､ 我々はここに再割り当てしたいイコール我々は行く今､ それは間違いなく車の販売データフレームをシャッフルするつもりか､
‫我々は順序で元のものを維持したいので､ シャッフル新しいものを作成することができます｡
‫だから､ 車の販売シャッフルがあるんです｡
‫これはコピーを返しますが､ シャッフルされた車販売台数は元の車販売台数データフレームとは異なる順番になります｡
‫美しい｡
‫さて､ このシャッフルされたDataFrameを操作したい場合､ 以前シャッフルされたバージョンで呼び出したのと同じ関数を呼び出すことができます｡
‫もうひとつ､ sample関数の便利なところは､ たとえば200万行のデータフレームがあったとして､
‫それが10行にしかならないのは本当に小さいですね｡
‫しかし､ 実際にはもっと多くの行を持つデータセットで作業することになります｡
‫pandasで関数を実行すると､ 何百万もの異なる行に対して長い時間がかかることがあります｡
‫やりたいのは､ 20％のデータだけを選んで練習することかもしれません｡
‫そして今､ この数字は恣意的である可能性がありますよね？
‫私たちの場合は､ 20％を選択しました｡
‫そのため､ 2種類の列ができるわけです｡
‫200万行あったとして､ そのうちの1％のデータで練習したいと思うかもしれません｡
‫それでも2万行なんですね｡
‫そうすれば､ 200万行を一度に処理するよりも早く､ いろいろな実験ができるようになります｡
‫だから､ それは今後のプロジェクトで考えていかなければならないことです｡
‫それとも､ まず少量のデータで少しずつ実験を行い､
‫何が有効で何が無効かを見極めながら､ 実験の内容をアップグレードしていくのでしょうか？
‫さて､ 私たちの自動車販売､ シャッフルされたデータをもう一度見てみましょう｡
‫インデックスを作ったが､ 順番がバラバラだ｡
‫どうすれば､ それらを元に戻して､ 出発できるのだろうか？
‫自動車販売台数はリセット指数をシャッフルした｡
‫この関数は､ ご想像のとおり､ ここのインデックスをリセットするものです｡
‫だから､ 私たちは欲しいのです｡
‫ブームです｡
‫そして今､ この列を削除する方法がここにあるのです｡
‫だから､ 定位置に行くのかもしれません｡
‫おお､ 見てみよう｡
‫それは､ その場でやったのですか？
‫シャッフルされる｡
‫なぜなら､ デフォルトでは､ リセットインデックス列は､ 一番左の新しい列として古いインデックスを追加するからです｡
‫そして､ ここには注文番号がありますが､ これはシャッフルされたインデックスを列にしているのです｡
‫もしかしたら､ そんなことは望んでいないかもしれません｡
‫インプレース・イコール・トゥルーで解消できると思います｡
‫パンダの関数の多くには､ in place パラメータがあることを思い出してください｡
‫シャッフルインプレイス＝真
‫ああ､ まだあるんですね｡
‫うーん｡
‫さて､ これを理解する方法は､ reset indexのドキュメントを調べればわかると思います｡
‫パンダがインデックスをリセット｡
‫余計なインデックスカラムはいらない｡
‫では､ 見てみましょう｡
‫落とす｡
‫データフレームのカラムにインデックスを挿入しようとしないでください｡
‫それが必要だと思うんです｡
‫例ドロップイコールトゥルーはありますか？
‫そうですね｡
‫それが必要だと思うんです｡
‫そこで､ in placeイコールtrueにしたいのです｡
‫そして､ 私たちはドロップを求めます｡
‫真に等しい｡
‫Dropはデフォルトでfalseです｡
‫そうですね｡
‫デフォルトはfalse｡
‫これは､ pandasで関数が何を行うかを調べることができるもう一つの例です｡
‫関数名リセットインデックスでググってみたところ｡
‫もう一度｡
‫最初からこれらのことがわかるわけではありませんが､ 物事を丸暗記することではありません｡
‫すべてを暗記しているわけではありません｡
‫機能の仕組みをいろいろと研究して､ 試してみることです｡
‫疑わしい場合は､ コードを実行してください｡
‫そうしよう｡
‫今もそこにあります｡
‫もしかしたら､ またここに戻ってくるかもしれない｡
‫これをリセットするんです｡
‫これをリセットする｡
‫これでよしとしよう｡
‫車の販売台数をリセットし､ データフレームをシャッフルして､ 今度はdropをtrueに等しくなるように設定する必要がありました｡
‫ここでは､ 左側のインデックス列がありません｡
‫もう一つ､ 関数をカラムに適用する方法について見てみましょう｡
‫では､ あるとしましょう｡
‫自動車販売のデータフレームを見てみます｡
‫これは､ データフレームを表示し､ それを操作し､ 表示し､ 操作し､ 表示し､ 操作するというプロセスを多く取ることになることを覚えておいてください｡
‫だから､ 今のところかなり素適な感じなのですが､ オドメーターをマイルに変換したいのです｡
‫では､ どうすればいいのか？
‫クルマの販売では､ まずそれを選ばなければなりません｡
‫カラム名を入力することでそれが可能になるので､ それを再割り当てするのです｡
‫今回､ 忘れずに再割り付けを行いました｡
‫オドメーター・キロメーター
‫うん｡
‫さて､ これが応用機能である｡
‫Applyは､ ある列に対してnumpyやlambdaなどの何らかの関数を適用することができます｡
‫では､ これを入力してみましょう｡
‫そもそもラムダ関数って分かりにくいしね｡
‫私も覚えるのに時間がかかりましたが､ これから順を追って､ 実際に何をしているのかを見ていきたいと思います｡
‫そこで､ このコードを実行すると､ carsalesはデータフレーム全体を表示するようになります｡
‫コードを実行します｡
‫これでよしとしよう｡
‫今すぐ
‫これは何だと思いますか？
‫ただ､ この数字が変わっただけです｡
‫15万人もいるんですよ｡
‫93,776となりました｡
‫さて､ このオドメーターコラムを踏破してみましょう｡
‫ダニ
‫ダニとは呼びたくない｡
‫応募する
‫うん｡
‫さて､ ラムダですが､ ラムダはPythonのキーワードで､ 無名関数の略称です｡
‫つまり､ 基本的にはXを1で割ったものにこの関数を適用してくださいということです｡ 6.
‫これは､ そういうことなんですね｡
‫応募する
‫X をリセットして x を 1 で割った値にする｡ 6 y 1. 6 キロメートルからマイルへの変換のため｡
‫1について行っている｡ 6109ですが､ 四捨五入して1にしています｡ 6.
‫これは､ キロメートルの数を1で割ることになる｡ 6 この場合､ Xはオドメーター欄の値だからです｡
‫この小さな線は､ この列を見て､ 毎回､ この150,000､ つまりXを拾ってきて､
‫それを1で割って行くわけです｡ 6 して､ その値に再割り当てしてください｡
‫ですから､ 1列目の94,000､ あたり､ 1段目､ すみません､ 2段目の87,899は､ 実際には55,000マイルくらいですね｡
‫つまり､ このapply関数がやっていることは､ そういうことです｡
‫これは小さなラムダ関数の簡単な例ですが､ applyに入れるものによって非常に凝ったものにすることができます｡
‫今はまだ､ そのことに深入りするつもりはないんです｡
‫ただ､ applyは関数をカラムに割り当てる方法であることを知っておいてほしいのです｡
‫そのため､ 別の関数をどこかに書いておいて､ それを列に適用するためにapplyを使っているのかもしれません｡
‫ふー｡
‫ここでは､ 絶対的な情報の山を乗り越えてきたのです｡
‫悩むことはない｡
‫そもそも､ 私の心から全てを知る必要はないのです｡
‫スタンプを覚えておくと便利です｡
‫試してみてください｡
‫コードを実行します｡
‫迷ったら､ 検索してみよう｡
‫もう一度試してみてください｡
‫そして､ それでも行き詰まったら
‫聞く｡
‫とりあえず､ 次のセクションに入る前に､ これでPANDASのセクションは終了です｡
‫PANDASに関する資料をもう少し詳しく知りたい方は､ 資料編をご覧ください｡
‫自分で試せるエクササイズもあります｡
‫でも､ そうでなければ､ データサイエンスや機械学習に使える他のツールについて､
‫もう少し勉強してみましょう｡