PandasのDataFrameを1行ずつ(もしくは1列ずつ)取り出す
取得したデータを行ごとに操作したいことってありますよね。
例えば、機械学習のモデルを作った後に、テスト用のデータを行ごとに推論させて結果を保存する、というようなときに、便利な使い方を紹介します。使う関数はiterrows()
を使います。
コード紹介
# import import pandas as pd # データセットを作る df = pd.DataFrame({'a':[10,20,30],'b':['A','B','C'],'c':[True,False,True]}) # a b c # 0 10 A True # 1 20 B False # 2 30 C True print("列aの中身を表示") # 行を繰り返す for index, row in df.iterrows(): print(index, row['a']) print("2行目の中身を表示") # 列を繰り返す for header, column in df.iteritems(): print(header, column[1])
出力結果
少し解説
for index, row in df.iterrows():
とすることで、dfの中身を行ごとに取り出して繰り返す、ということになります。
初めの引数のindex
には行番号、2番目の引数のrow
には取得したデータが入ります。
また、iterrows()
の代わりにiteritems()
を使うと列ごとに取得するようになります。
簡単で便利ですね。