python - Iterrows - 如何在Pandas中对数据框架中的行进行迭代?

Pandas Series iterate / python / pandas / dataframe

我有一个来自Pandas的 DataFrame

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

我发现了类似的问题。但这并不能给我我所需要的答案。例如,建议在那里使用:

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

cs95



Answer #1
df = pd.DataFrame({'a': randn(1000), 'b': randn(1000),'N': randint(100, 1000, (1000)), 'x': 'x'})

%timeit [row.a * 2 for idx, row in df.iterrows()]
#=> 10个循环,最好为3:每个循环50.3毫秒

%timeit [row[1] * 2 for row in df.itertuples()]
#=> 1000个循环,每个循环最好3:541 µs