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

41 投票
2 回答
70781 浏览
提问于 2025-04-18 03:12

哇哦……怎么用 Python 和 pandas 的 iterrows 呢?如果我在遍历行的时候,难道不能通过 row['COL_NAME'] 来访问某一列吗?

这是列的名字:

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

如果我打印一行:

(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)

2 个回答

3

如果你想遍历你的数据库,并对每一行应用一个函数,你可能还想考虑使用apply函数。

def print_row(r):
    print r['Date']

df.apply(print_row, axis = 1)       
75

iterrows 会给你返回一个包含 (索引, 行) 的元组,而不仅仅是行数据。所以你可以用你原本想的方式来访问列,只需要这样做:

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

撰写回答