【Pandas】DataFrameからコラムを抽出(映画マネーボールみたいなことをしてみた)no.11



こんにちは、まゆみです。

Pandasについての記事をシリーズで書いています。

今回の記事は第11回目で

第1回目から第9回目はPandasのSeries について、

第10回目からはDataFrame について書いています。

今回は前回と同じデータを使って『映画のマネーボール』みたいなことをしていこうと思います。(笑)

ちなみに、マネーボールを見た事がない方のためにどんな映画か少し紹介しますね。

マネーボールは実話を元に作られた映画です。

貧乏で弱小のチームであった『オークランドアスレチック』が良質な選手をお金を出して買うのではなく、統計学的手法を用いて、市場では過少評価されている選手を安く買うという野球の戦い方を始めました。

そしてその結果は。。。


引用元:Netflix

ネットフリックスでも配信されていますので、見た事がない方は是非!(ちなみにネットフリックスからは何の広告料ももらっていませんが、良い映画なので宣伝しますっ!)

CSVファイルを読み込む

CSVファイルの読み込み方はこちらの記事で紹介しています。

今回は、CSVデータから『Series ではなくDataFrameオブジェクトを作りたいので』読み込むところまでしてみてください。

私は当データを『baseball_data.csv』とファイル名を変更しましたので、

import pandas as pd
baseball_data = pd.read_csv("baseball_data.csv")

とコードを書きました。

実行結果は下記のようになります

一番上の行が選手のそれぞれのデータの項目になります(コラム名)

『POS』とか『PA』とかって書かれていますが、それぞれのものが意味するのはこちらのページに書かれています。
(ずらっと英語の文章が並んでいます。)

抽出したいコラムを選ぶ

上のプロセスで作ったDataFrameは134columnsで、134列もあるデータになります。

これは野球選手のスカウトマンになる『練習』ですので、全てのコラムを使うのではなく、5~6つほどのコラムを選んでみましょう

市場で過小評価されている選手を見つけたいのでもちろん『PLAYER』と『SALARY』のコラムは必要ですね。

私が選んだコラムは

PLAYER  選手名

SALARY 年俸

POS ポジション

TB トータルベース(1塁までなら1,2塁までなら2…ホームランなら4で計算した合計)

SF 犠牲フライ

SB 盗塁

になります。

コラムには『HR』ホームランという花形選手を象徴するものもあるのですが、そういう選手は年俸も高いので、犠牲フライをよく打つ選手を安く買い、地味に戦います

コラムを抽出する

ではDataFrameから実際にコラムを抽出しましょう

PandasのDataFrame から2つ以上のコラムを抽出する方法はこちらのStackOverflowの記事を参考にしました。


引用元:stackoverflow.com

リストにしてから、抜き出すという感じですね。

実行結果は下記のようになりました。

ちなみに、コラムを一つだけ取り出したい時は

baseball_data["PLAYER"]

と[ ]のなかにコラム名のみ書けば大丈夫です。

実行結果は下記のようになります

そしてPythonにビルトインされているデータ型を調べる『type()』

を使ってデータ型を調べるとちゃんと『Series』になっているのが分かります。

まとめ

ここまで読んでくださりありがとうございます。<(_ _)>

今回の記事はこれくらいで終わりにしようと思います。

今回はデータを抽出するところまでは終わったので、データの分析や計算の方法をまた次回以降にまとめていこうと思います。

よろしくお願いします!