【4 weeks challenge – Python】Day 27 pandas.DataFrameの各データにアクセス

daily_trial

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

27日目です。本日の習得スキルは「pandas.DataFrameの各データにアクセス」です!

pandas.DataFrameの各データにアクセスでできること

pandas.DataFrame形式で読み込んだデータに対して格納されたデータを抜き出すことができます。今回はat,iat,loc,iloc,ixなどの参照用の関数の便利さを実感するために、まずはこれらを使用せずにデータ参照を行ってみました。

使い方

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'])

result1 = df['col_1']                 #Column参照ができます
result2 = df['col_1']['row_1']        #Columnとの組み合わせで行ラベルでの参照も可能

結果

列名での参照を主として使用することができます。ただし以下のような行列番号での参照やスライス、特定の行のデータを全て抜き出すことができないということがわかりました。この辺りがloc, ilocなどを用いるモチベーションになります。

#result = df(1,2)                               #行列番号で参照できない
#result = df[0:1,0:2]                           #直接スライスできない
#result = df['row_1']                           #行ラベルでの参照も不可
#result = df['col_1','col_2','col_3']['row_1']  #複数のColumnを選択できないため一行読み出しは不可

参考

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 ...

コメント