2015-10-20 3 views
2

У меня есть ФР с несколькими столбцами тремя из них, как это:Python Pandas: Как подсчитать столбцы, которые также содержат отсутствующие значения?

num1 num2 num3 
1  NaN 1 
NaN  1  1 
1  1  1 

, и я хотел бы создать еще один столбец «sum_num» и добавить значения в каждой строке для всех столбцов (альтернатива будет чтобы подсчитать количество из них, все значения равны).

Ожидаемые результаты:

num1 num2 num3 sum_num 
1  NaN 1  2 
NaN  1  1  2 
1  1  1  3 

Сейчас я попробовал этот код, но то, что я, имеющий в «sum_num» столбцов в только NaNs.

df['sum_num'] = df.num1 + df.num2 + df.num3 

Кто-нибудь знает, как игнорировать пропущенные значения и до сих пор либо суммировать те или сосчитать их, чтобы получить желаемый результат для каждой строки?

ответ

2

sum на axis=1

In [202]: df['sum_num'] = df.sum(axis=1) 

In [203]: df 
Out[203]: 
    num1 num2 num3 sum_num 
0  1 NaN  1  2 
1 NaN  1  1  2 
2  1  1  1  3 
+0

Спасибо. Что делать, если в кадре данных есть несколько других столбцов, и я хочу, чтобы эти конкретные столбцы были суммированы? – UserYmY

+0

'df [list_of_columns] .sum (axis = 1)'? – Zero

+0

да, я понял, что спасибо. Не могли бы вы также рассказать мне, как я могу подсчитать количество единиц вместо их суммирования? – UserYmY

0

На практике вы можете создать подмножество образуют dataframe, здесь df:

sum_num = df[['num1', 'num2', 'num3']] 

затем добавить подмножество в df:

df['summed'] = sum_num.sum(axis=1) 
Смежные вопросы