【4 weeks challenge – Python】Day 28 loc, ilocを使ってpandas.DataFrameにアクセス

daily_trial

こんにちは、しらすです。

28日目です。本日の習得スキルは「loc, ilocを使ってpandas.DataFrameにアクセス」です!

loc, ilocを使ってpandas.DataFrameにアクセスでできること

pandas.DataFrame形式で読み込んだデータに対してデータの抜き出すことができます。

使い方

import pandas as pd

df=pd.DataFrame([[1,2,3,4,5,6],
                 [10,20,30,40,50,60],
                 [100,200,300,400,500,600],
                 [1000,2000,3000,4000,5000,6000]],
                index=['row_0', 'row_1','row_2','row_3'],
                columns=['col_0','col_1','col_2','col_3','col_4','col_5'])

#locの使い方
result1 = df.loc['row_1','col_1']                       #行、列を指定して値を取得

結果

おためし編(loc)

行を全選択にして、列を指定

result2 = df.loc[:,'col_0']

行、列をスライスで取得

result3 = df.loc['row_0':'row_2','col_2':'col_5']

複数の指定行、列を取得

result4 = df.loc[['row_0','row_2'],['col_2','col_5']]

ラベルと行列の番号の混合で参照

result5 = df.loc[df.index[2]:,df.columns[3]:'col_5']

おためし編(iloc)

行、列を指定して値を取得

result6 = df.iloc[1,1]

行でスライス

result7 = df.iloc[0:2]

列でスライス

result8 = df.iloc[:,0:2]

ステップでスライス

result9 = df.iloc[::2,::3]

複数の指定行、列を取得

result10 = df.iloc[[1,3],[3,5]]

参考

pandasで任意の位置の値を取得・変更するat, iat, loc, iloc | note.nkmk.me
pandas.DataFrameの任意の位置のデータを取り出したり変更(代入)したりするには、at, iat, loc, ilocを使う。at()ではなくat[]のように記述する。 pandas.DataFrame.at — pandas 2.0.3 documentation pandas.Data ...

コメント