Pythonの初心者がよく忘れがちなのが、DataFrame中の特定の位置のデータを抽出する方法です。
毎回、Googleで検索して調べるのも大変ですので、こちらのデータを例に取り出し方法をまとめます。
ドラクエに関するこちらのDataFrameをdfとします。
![](https://i0.wp.com/punhundon-lifeshift.com/wp-content/uploads/2019/07/df_HP_MPcolumns.png?resize=130%2C152&ssl=1)
特定のカラム(列)を取り出す
特定のカラムは、df[‘カラム名’]、またはdf.カラム名で取り出せます。
df['HP']
戦士 120
勇者 110
僧侶 75
魔法使い 50
Name: HP, dtype: int32
df.HP
戦士 120
勇者 110
僧侶 75
魔法使い 50
Name: HP, dtype: int32
カラムを2本以上取り出すとDataFrameのままですが、今回のように1本だけ取り出すとSeriesの形になります。
1本取り出す場合もDataFrameのままにしたいなら、角カッコ[ ]で括ってください。
df[['HP']]
![](https://i0.wp.com/punhundon-lifeshift.com/wp-content/uploads/2019/07/df_HPcolumn.png?resize=132%2C155&ssl=1)
特定のラベル(行)を取り出す
df.iloc[行番号]で取り出せます。ilocがつくことにご注意ください。
df.iloc[0]
HP 120
MP 0
Name: 戦士, dtype: int32
DataFrameのままにしたいなら、角カッコ[ ]で括ります。
df.iloc[[0]]
![](https://i0.wp.com/punhundon-lifeshift.com/wp-content/uploads/2019/07/df.iloc0_.png?resize=103%2C53&ssl=1)
特定のエリアを取り出す
例えば、1行1列目だけを取り出すならこのようにします。
df.iloc[0:1,0:1]
![](https://i0.wp.com/punhundon-lifeshift.com/wp-content/uploads/2019/07/df.iloc01-01.png?resize=74%2C57&ssl=1)
簡単です。
なお、数字ではなく、ラベル(index)やカラムの名前でエリアを指定するならilocではなくlocを使います。
df.loc['戦士','HP']
120
df.loc[['戦士'],['HP']]
![](https://i0.wp.com/punhundon-lifeshift.com/wp-content/uploads/2019/07/df.iloc01-01.png?resize=74%2C57&ssl=1)
最後に
DataFrameの中のデータをfor文で順番に処理していく方法をよく使います。
その方法はこちらを参照してください。