python和pandas - 如何使用iterrows访问列
哇哦……怎么用 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']