Подтвердить что ты не робот

Python и pandas - как получить доступ к столбцу с помощью iterrows

wowee..... как использовать iterrows с python и pandas? Если я выполняю итерацию строки, я не могу получить доступ к столбцу с строкой ['COL_NAME']?

Вот имена 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

если я печатаю 1 строку:

(0, Date                                                 Sun Apr 13
Time                                                      17:30
Time Zone                                                   GMT
Currency                                                    USD
Event         USD Fed Stein Speaks on Financial Stability ...
Importance                                                  Low
Actual                                                      NaN
Forecast                                                    NaN
Previous                                                    NaN
Name: 0)
4b9b3361

Ответ 1

iterrows дает вам кортежи (index, row), а не только строки, поэтому вы должны иметь доступ к столбцам в основном так же, как вы думали, если вы просто делаете:

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

Ответ 2

Если вы хотите выполнить итерацию по всей базе данных и применить функцию к каждой строке, вы также можете рассмотреть функцию apply

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

df.apply(print_row, axis = 1)