お帰りなさい｡
前回のビデオでは､ データのインポートとPANDASライブラリを使ってデータフレームを操作することを学びました｡
さて､ このステップでは､ データをきれいにすることについて､ もう少し詳しく学びましょう｡
そして今回は､ 面白い問題を解いてみよう｡
このフィルタリングの代わりに､ やりたいこと､ 上司が来て教えてくれることがあるとしよう｡
まあね｡
お買い得なプレーヤーは？
技術的には最高だが､ 年俸も低い選手とは｡
だから､ もっと余裕があってもいいのかもしれませんね｡
そこで､ ボスがあなたにいくつかのことを要求しているとしましょう｡
Kaggleに戻ってデータを見ると､ このデータが持つすべての列へのリンクが表示されます｡
そして､ 上司は選手の現在の市場価値と賃金を知りたいので､ 今､ どの選手が割安なのかを知りたいとします｡
そして､ もしかしたら､ 本当に良い条件でその選手をつかまえることができるかもしれない､ とオファーできるかもしれない｡
そこで､ データからグラフ化したいのは､ 選手の価値､ 賃金､ そして明らかに名前のカテゴリーです｡
さて､ もしよろしければ､ ビデオを一時停止して､ ご自身でやってみてはいかがでしょうか｡
そうでなければ､ やってみましょう｡
データフレーム1という新しい変数を作ってみましょう｡
そして､ これがつかえるんです｡
PANDASライブラリを使って､ データを｡
Frameメソッドで､ CSVファイル全体を取得した前のデータフレームを受け取ります｡
ここではデータフレームとし､ 2番目のパラメータとして必要なカラムを選択することにします｡
この場合､ 欲しいカラムの配列を与えれば､ それが名前になります｡
賃金
そして､ 最後に価値観です｡
では､ とりあえずDFをプリントして､ これがうまくいっているかどうか確認してみましょう｡
これでよしとする｡
ちょうど､ 選手の名目賃金と価値がわかる｡
なんてこった｡
メッシ
メッシはかなり高い給料をもらっている｡
それは
いい給料だなあ｡
よし､ 続けよう｡
さて､ ここからが本題です｡
このテーブルがあります｡
しかし､ そのデータは今の私たちには何の意味もありません｡
今､ データをソートしたいとしましょう｡
なぜなら､ 私たちがやりたいことは､ 各選手の賃金と価値を比較し､ どの選手が賃金と価値の間で最も大きなギャップを持っているかを見るために､
おそらく「差」という別の列を持ちたいからです｡
さて､ 試しにやってみましょうか｡
さて､ 理想的なのは､ 単にDF1､ differenceを追加すると言って､ 別のカラムを作ることです｡
そして､ この差の列は､ 単純にここで構築したデータフレームと同じになります｡
になるしね｡
その価値
Fのほうを差し引いて｡
そんな感じの賃金です｡
今すぐ
これを実行すると､ DF1をして､ 実行をクリックしましょう｡
あ､ 空気が出ますね｡
ずっと下にスクロールすると､ 未対応のオペラントタイプのSW4マイナスが表示されます｡
だから､ 文字列と文字列を引き算しようとしてるんだ｡
そして､ 以前にも学んだことがあります｡
そうですね｡
こっちを見ればわかるけど､ 選手の給料はユーロで､ たくさんもらってるんだよ｡
だから､ 400万を表すMや､ 数千を表すKがあることもある｡
だから､ これをint型に変換する必要があるんですね｡
そのため､ 今回もpythonを使って非常に簡単に行うことができます｡
この部分は､ 自分で解決して､ これらの値や賃金を整数に変換し､ ユーロ記号と千のMまたはKを削除してみてください｡
あるいは､ 手っ取り早くやりたいのであれば､ これはよくある問題なので､ ググってみてもいいくらいです｡
pandas convert string to int でググればいいだけだし､ 私の場合はググって文字列を2に変換するのを発見した｡
pandas dataframeでこれに90K｡
つまり､ 私たちとまったく同じ疑問を抱いているようなのです｡
また､ 開発者であれば､ 自分でググって答えを見つけることを学ばなければなりません｡
さて､ この答えまでスクロールすると､ 複雑すぎる答えも出てきますが､ 私はこの答えがとても気に入っています｡
だから､ floatに値｡
つまり､ 値をfloatに変えているわけです｡
何らかのXを付けて､ それで終わりです｡
つまり､ これは値をfloatに変換しているのです｡
そして､ K､ M､ Bなど､ 私たちのためにさまざまなものを置き換えていることが､ ここでわかりますね｡
だから､ 完璧なんです｡
これをコピーしよう｡
そしてまた､ この資料へのリンクを貼っておきますので､ ご自身でご覧になってみてください｡
うちのサッカーに行けば｡
ここにある関数を入力してみましょう､ 正しくフォーマットされていることを確認します｡
これで､ value to float関数ができたわけですが､ これは素晴らしいことです｡
ここで質問に戻ると｡
残念ながら､ リストの最後の項目を削除するだけで､ 先頭の部分は削除されません｡
だから､ ユーロ記号も消したいから､ 自分たちでやればいいんです｡
そこで､ 実は正規表現を使ってかなり簡単にできる方法があります｡
では､ お見せしましょう｡
DF1時間データフレームに等しい賃金変数を行うことができる｡
賃金欄をつかう｡
少し大きくして見てみましょう｡
そして､ この賃金欄は入れ替わることになる｡
そして､ replaceメソッドでは正規表現を使うことができます｡
では､ どうすればいいかというと､ ユーロ記号を削除したいので､ ここからコピーしましょうと言うことです｡
ただ､ このように｡
空文字列で｡
そして､ 3つ目のパラメータは､ reg xがtrueに等しいというだけのものです｡
今､ Reg X 101 dotcomにアクセスすると｡
そして､ 今やったことをコピーするのです｡
では､ これをコピーしてみましょう｡
ユーロサインで何かしたら
こちらでハイライトされているのがわかると思います｡
それがまた正規表現なんです｡
これは､ 私が実験しただけのことです｡
信じてください､ 私は頭から覚えていないのです｡
この動画の前に調べてみたところ
そこで､ すべてのyour signを空文字列に置き換えてみます｡
そして最後に私たちのところへ行けば｡
StackOverflowの回答です｡
ここで思い出してほしいのは､ floatに値を使うためには､ 単純にfloatに値を適用しないだけだということです｡
だから､ もう一度､ 私たちのサッカーに行けば｡
ドットということにしておきます｡
応募する
に値します｡
フロートです｡
それが､ ここにあるものです｡
そして､ 同じことを値についても行えばよいのです｡
では､ バリューとしましょう｡
イコールになりそうです｡
ここにある価値と､ 同じものが適用されていること｡
そして最後に､ これらの新しいカラムを､ 単にDF one wageと言うだけで更新することができるのです｡
賃金と等しくなるようにし､ データフレーム1を作成します｡
その価値
イコールバリューになるのでしょうか｡
というのも､ 今はこれらが整数になりつつあるからです｡
これで､ このマイナス演算ができるようになりました｡
そして､ うまくいけば､ 何のミスもなく､ これがうまくいくはずです｡
見てみよう｡
わかりました｡
あれを見てください｡
賃金から値を引くだけの差分カラムを新たに設けました｡
すごい｡
最後に､ これを実際に仕分けしてみると､ より理解が深まります｡
では､ 最後の部分､ sortとしましょう｡
値です｡
ここでもまた､ パンダから得られるものがあります｡
そして､ 差の列でソートします｡
そして､ 昇天と言うことになります｡
falseに等しい｡
だから､ 最下位から最上位までではなく､ 一番大きな差分を最初に取得するのです｡
だから､ 今これを実行すると
あれを見てください｡
一番差のある選手から､ 一番下の選手まで揃える｡
とても､ かっこいいです｡
ということで､ ちょっと長い動画になってしまいましたが､ データをクリーニングする考え方を紹介したいと思います｡
つまり､ 不要なデータを削除したのです｡
私たちは､ 何か必要なものがあれば､ それをタイプしたり､ クリーンアップするために変換し､ さらに､
私たちが改善したり､ 次に何をすべきかという洞察を得るために､ 必要と思われる余分な情報を追加したのでしょう｡
一旦休憩して､ 次のビデオでお会いしましょう｡