2014-10-22 2 views
0

Там не было никаких вопросов, которые адресованы этот конкретный момент:панды переборе каждой строки

Я хочу перебирать строк в dataframe. В частности, в каждой строке я хотел бы вызвать имя столбца. Есть ли способ сделать это? Если да, пожалуйста, продемонстрируйте.

Я знаком с df[<column_name>][<index_name>], но я не думаю, что это касается вещей. Возможно, я могу смешать это с функцией транспонирования, но потом я теряю следы типов данных, не так ли?

Например, если мы имеем

a b c d 
i1 1 1 2 1 
i2 2 2 1 1 

Я хочу, чтобы иметь возможность сказать:

for f in some_iterator(): 
    print 'a is ' str(f['a']) 
    print f['b'] + f['c'] 
    #skip f['d'] 

Но, как она стоит, я не могу зависеть от имен столбцов, в этом случае , "a, b, c, d", чтобы сделать это.

+0

Что вы имеете в виду «вызов по имени столбца»? ['Iterrows'] (http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.iterrows.html) не делает то, что вы хотите? – BrenBarn

+0

это не так. он, кажется, выплескивает вещи в табличном формате. – user3659451

+0

В отличие от чего? DataFrames по своей сути являются табличными. Просьба уточнить, что вы на самом деле хотите сделать. – BrenBarn

ответ

1

df be pandas.DataFrame объект.

Мы можем перебирать строки по:

for row in df.iterrows(): 
    print str(row[0]) + " is the index of the row" 
    print str(row[1]) + " is a series with rows having \ 
    labels the same as the columns of the dataframe" 
+1

Обратите внимание, что вы также можете сделать 'для индекса, строки в df.iterrows()' и получить индекс и строку отдельно, без необходимости доступа к ним по индексу. – BrenBarn

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