はじめに
今回は久しぶりにPythonの話題に戻って、テーブルデータの処理に必須となるpandasライブラリについて扱います。pandasはDataFrameの効率的な実装を提供してくれます。DataFrameでは行と列のラベルが付加され異なる型のデータや欠落したデータを許容します。テーブルデータを格納するための便利なインターフェースを提供してくれるだけでなく強力なデータ操作機能も有しています。
pandas20本ノック
元キカガクの今西さんが提供してくれている、Youtubu動画です。よくある100本ノックを凝縮して20本ノックで提供してくれています。説明もわかりやすく丁寧なので、pandasが苦手という方がいらっしゃいましたら、是非この動画を視聴することをお勧めします。とてもわかりやすかったので、他のシリーズも見てみたくなりました♪
これまで、「一般社団法人データサイエンス協会」が提供してくださっている、「データサイエンス100本ノック(構造化データ加工編)」(https://github.com/The-Japan-DataScientist-Society)を勧めていたのですが、初学者はまずpandas20本ノック動画をやってからこれに取り組むのがよいと思います。
自分の知識が曖昧だったもの
列名の変更
列名の変更は、過去にこのブログでも扱っていましたね。[clink url=”https://happy-analysis.com/python/python-topic-column-name.html”]
内容はまったく一緒で、「columns属性」を更新する方法と「renameメソッド」を使う方法とがあります。
- すべての列名を対象にする場合はcokumns属性を使う
- 一部の列名のみ変更をしたい場合はrenameメソッドを使う
のように使い分けるとよさそうですね。
ダミー変数化
カテゴリ変数を0と1で表現する方法としてダミー変数化という手法がありましたね。こちらも過去にこのブログで扱ったことがありますね。
pandasのget_dummies( )メソッドを使うことで簡単にダミー変数化を行うことができます。ダミー変数化については、サンプルデータを使って試してみましょう。
# サンプルデータの作成 df=pd.DataFrame( {'なまえ':['らくだ','ねこ','きりん','らいおん','ねこ','らくだ','ねこ'], 'どうぶつえん':['あさひやま動物園','うえの動物園','ズーラシア','あさひやま動物園','あさひやま動物園','ズーラシア','うえの動物園'], '来園回数':[4,3,2,6,3,2,1]}) df
これは以下のようなデータフレームです。
「なまえ」「どうぶつえん」「来園回数」の列があり、「なまえ」と「どうぶつえん」がカテゴリ変数となります。ここでは「なまえ」をダミー変数化してみましょう。ダミー変数化はpandasのget_dummies( )メソッドを使えば簡単にできます。
# 「なまえ」をダミー変数化する pd.get_dummies(df['なまえ'])
これで「なまえ」の部分のダミー変数化ができた。但し、もともとのデータフレームに組み込まれる形で提供された方が使いやすい。そのような場合には、次のようにすることで、もとのデータフレームに対して「なまえ」だけをダミー変数化したデータフレームを作成することができる。
# 「なまえ」をダミー変数化してもとのデータフレームに組み込む pd.get_dummies(df,columns=['なまえ'])
機械学習の前処理としてダミー変数化するときは、基本的にデータフレームに組み込まれている方が便利ですね。是非、このやり方を覚えておきましょう。
まとめ
いかがでしたか?今回は、今西さんが公開してくれている「pandas20本ノック」を試してみました。初学者用にわかりやすく丁寧に解説してくださっているのでありがたいですね。他の20本ノックシリーズもあるようなので、是非見てみましょう。
コメント