DataFrameからデータを抽出する方法は、「直接、loc、iloc」の3つです。
主なルールは以下となります。
【1】 直接
◾️ df[列名]
指定した列が返ります。
インデックス(数字)で指定することはできません。
行名を指定することはできません。
◾️ df[数字:数字]
スライスで指定した行(全列)が返ります。
指定する数字はインデックスです。
df[:数字]やdf[数字:]のように、始点と終点だけを指定することも可能です(Python標準と同じで終点の行は含みません)。
df[数字, 数字]のように、カンマを使って行と列を両方指定することはできません。
【2】 loc(名前で指定)
◾️ df.loc[:, 列名]
全行、指定列が返ります。
カンマで区切った左が行、右が列の指定です。
df.loc[:, :]は全行全列が返ります。
df.loc[:, :列名]のように列名をスライスで指定することも可能です(locのスライスはインデックスと異なり終行・終列を含みます)。
df.loc[:, ['A列', 'B列']]のように複数の列を指定することも可能です。
◾️ df.loc[行名, :]
指定行、全列が返ります。
df.loc[:行名, :]のように行名をスライスで指定することも可能です。
df.loc[['1行目', '2行目'], :]のように複数の行を指定することも可能です。
◾️ df.loc[行名, 列名]
指定位置の値が返ります。
【3】 iloc(インデックスで指定)
使用方法は基本的にlocと同じです。
インデックスによるスライスは終行・終列を含みません。
これらのルールを覚えておけば概ね対応できます。
locとilocは紛らわしいですが、iはindexの「i」と覚えると分かりやすいです。