はじめに
本記事も前回と同様にPandasの操作をメモしていこうと思う。
今回は特定の行・列・フィールドにアクセスする操作をメモする。
特定の列を表示する
本記事でも引き続き広島カープの選手のデータを利用します。
もしこの記事からみているという方は下記をコピペして利用してみてください。
import numpy as np import pandas as pd df = pd.DataFrame(data=[['.269','5'],['.273', '5'],['.300','2'],['.304', '18'],['.323', '1'],['.258', '1'],['.201', '3'],['.143', '0'], ['.111', '0']], columns=['AVG', 'HR']) df.index = ['菊池','西川','メヒア', '鈴木','高橋','小窪', '田中', '石原','ジョンソン'] df['AVG'] = df['AVG'].astype(float) df['HR'] = df['HR'].astype(int)
では特定列、AVG(打率)列を抜き出します。
たったこれだけですが。
df['AVG']
こっちでもいける。
※ただしカラム名にスペースが入ってたりすると利用できない。
そんなことはめったにしないと思うが、、
df.AVG
loc
を利用して抽出する
df.loc[:, ['AVG']]
ちょっと説明を入れておく
loc
の使い方
loc[ [行], [列] ]を表示する
なので菊池の行だけ表示する場合ならばこうなる。
df.loc[['菊池'], :,]
当然複数行を同時に抽出することも可能で、西川と鈴木の行を表示する場合は以下の通り。
df.loc[['西川','鈴木'], :,]
指定のフィールドを表示
ジョンソンの打率を表示する
df['AVG']['ジョンソン']
もしくは
df.loc[['ジョンソン'], ['AVG']]
その他の行列抽出方法
これまで.loc
を中心にデータの抽出方法をみてきました。
実際には‘.loc‘以外に’iloc’というものがあります。
‘iloc’はインデックス番号およびカラム番号を指定してデータを抽出する方法です。
例えば、行【0】の要素、ここでは菊池の行。
df.iloc[0]
その他にもレンジを指定することで対象のレンジのデータを抽出することができる。
df.iloc[0:4]
今回の記事はここまで。
次回はもう少し待ってくださいませ。