2015-05-05 3 views
19

У меня есть набор данных с большим количеством строк. Некоторые значения являются NaN, как это:Python/Pandas: подсчет количества отсутствующих/NaN в каждой строке

In [91]: df 
Out[91]: 
1 3  1  1  1 
1 3  1  1  1 
2 3  1  1  1 
1 1 NaN NaN NaN 
1 3  1  1  1 
1 1  1  1  1 

И я хочу, чтобы подсчитать количество значений NaN в каждой строке, это будет выглядеть так:

In [91]: list = <somecode with df> 
In [92]: list 
    Out[91]: 
    [0, 
     0, 
     0, 
     3, 
     0, 
     0] 

Что такое лучший и самый быстрый способ сделать это?

+0

Аналогичный вопрос для столбцов: [Как получить итоговое количество отсутствующих/NaN-данных по столбцу в 'pandas'?] (Http://stackoverflow.com/questions/22257527/how-do-i-get-a -summary-оф-графов-оф-недостающей данных в-панды) – smci

ответ

30

Вы могли бы сначала найти, если элемент NaN или не isnull(), а затем принять строчном sum(axis=1)

In [195]: df.isnull().sum(axis=1) 
Out[195]: 
0 0 
1 0 
2 0 
3 3 
4 0 
5 0 
dtype: int64 

И, если вы хотите, чтобы вывод в виде списка, вы можете

In [196]: df.isnull().sum(axis=1).tolist() 
Out[196]: [0, 0, 0, 3, 0, 0] 

Или использовать count как

In [130]: df.shape[1] - df.count(axis=1) 
Out[130]: 
0 0 
1 0 
2 0 
3 3 
4 0 
5 0 
dtype: int64 
Смежные вопросы