2015-09-30 2 views
2

Я хочу знать, как я могу обращаться к столбцам, используя индекс, а не имя при использовании iterrows для перемещения по DataFrames.Как получить доступ к столбцу через индекс при использовании iterrows()

Этот код является самым я мог бы найти:

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

Это еще один подход, который я взял, чтобы пройти, но мне кажется, очень медленно:

for i in df.index: 
    for j in range(len(df.columns)):  
        df.ix[i,j] = 0 
+0

Если вы хотите, чтобы преобразовать строки в число просто вызовите 'DF = df.convert_objects (convert_numeric = True)' – EdChum

+0

Я хочу сделать это на основе некоторых условия – Xoul

ответ

0

Я понял. Итерации для i to number of columns и использовать i как индекс для столбцов доступа:

for i in range(len(df.columns)): 
    for index, row in df.iterrows():  
     print row.ix[i] 
3

Вы можете использовать ix для доступа по индексу:

In [67]: df 
Out[67]: 
     A B 
0 test1 1 
1 test2 4 
2 test3 1 
3 test4 2 

In [68]: df.ix[:,1] 
Out[68]: 
0 1 
1 4 
2 1 
3 2 
Name: B, dtype: int64 

Обновление кода с первого столбца:

for index, row in df.iterrows(): 
    row.ix[0] 
+0

Я пробовал это, но это занимает слишком много времени, я использую набор данных из более чем 45000 строк – Xoul

+0

, чего вы пытаетесь достичь? объясняя вашу проблему вместо технического вопроса, мы можем помочь лучше! –

+0

У меня есть набор данных, который имеет несколько столбцов, строк и целых чисел. Я хочу сопоставить все строки целым числам, поэтому я хочу перебирать строки и столбцы и заменять все строки целыми значениями. . Как я это делаю: Например есть столбец «семейного статуса», его поле может иметь статус «одиночный, состоящий в браке, разведен», поэтому, если поле содержит одиночное, я бы сопоставил его с 0 – Xoul

Смежные вопросы