1. ホーム
  2. python

[解決済み] PandasでDataFrameの行を反復処理する方法

2022-03-14 07:43:06

質問

私は DataFrame をPandasから取得しました。

import pandas as pd
inp = [{'c1':10, 'c2':100}, {'c1':11,'c2':110}, {'c1':12,'c2':120}]
df = pd.DataFrame(inp)
print df

出力します。

   c1   c2
0  10  100
1  11  110
2  12  120

さて、このフレームの行を反復処理したいと思います。各行に対して、列の名前でその要素(セル内の値)にアクセスできるようにしたい。例えば

for row in df.rows:
   print row['c1'], row['c2']

Pandasでそんなことできるんですか?

私はこれを見つけた 類似の質問 . しかし、それは私が必要とする答えを与えてくれません。例えば、そこでは、使用することが提案されています。

for date, row in df.T.iteritems():

または

for row in df.iterrows():

しかし、私は row オブジェクトがあり、それをどのように扱えばよいのでしょうか。

どのように解決するのですか?

DataFrame.iterrows は、インデックスと行を(Seriesとして)生成するジェネレータです。

import pandas as pd

df = pd.DataFrame({'c1': [10, 11, 12], 'c2': [100, 110, 120]})
df = df.reset_index()  # make sure indexes pair with number of rows
for index, row in df.iterrows():
    print(row['c1'], row['c2'])

10 100
11 110
12 120