python和pandas - 如何使用iterrows访问列

Tam*_*mpa 26 python pandas

wowee .....如何使用python和pandas的iterrows?如果我进行行迭代,我是否应该无法使用行['COL_NAME']访问col?

这是col名称:

print df
Int64Index: 152 entries, 0 to 151
Data columns:
Date          152  non-null values
Time          152  non-null values
Time Zone     152  non-null values
Currency      152  non-null values
Event         152  non-null values
Importance    152  non-null values
Actual        127  non-null values
Forecast      86  non-null values
Previous      132  non-null values
dtypes: object(9)

for row in df.iterrows():
    print row['Date']

Traceback (most recent call last):
  File "/home/ubuntu/workspace/calandar.py", line 34, in <module>
    print row['Date']
TypeError: tuple indices must be integers, not str
Run Code Online (Sandbox Code Playgroud)

如果我打印1行:

(0, Date                                                 Sun Apr 13
Time                                                      17:30
Time Zone                                                   GMT
Currency                                                    USD
Event         USD Fed's Stein Speaks on Financial Stability ...
Importance                                                  Low
Actual                                                      NaN
Forecast                                                    NaN
Previous                                                    NaN
Name: 0)
Run Code Online (Sandbox Code Playgroud)

Mar*_*ius 51

iterrows给你(index, row)元组而不仅仅是行,所以你应该能够以你想的方式访问列,就像你刚才那样:

for index, row in df.iterrows():
    print row['Date']
Run Code Online (Sandbox Code Playgroud)

  • 您是否遇到过`row ['Date']`返回该单列的Series表示而不是值本身的情况?我现在已经得到了,即使从数据帧访问相同的单元格,`iterrows()`之外的行为也符合预期. (4认同)