2015-05-05 27 views
19

Mam zestaw danych z dużą liczbą wierszy. Niektóre wartości są NaN, jak to:Python/Pandy: zliczanie brakujących/NaN w każdym wierszu

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 

I chcę policzyć wartości NaN w każdej struny, to byłoby tak:

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

Jaki jest najlepszy i najszybszy sposób to zrobić?

+0

Podobne pytanie w kolumnach: [Jak uzyskać sumaryczną liczbę brakujących/danych NaN według kolumny w "pandach"?] (Http://stackoverflow.com/questions/22257527/how-do-i-get-a -podsumowanie-brakujących danych w pandach) – smci

Odpowiedz

30

Można najpierw znaleźć, jeśli elementem jest NaN lub nie isnull() a następnie podjąć row-mądry 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 

A jeśli chcesz wyjście w formie listy, można

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

Lub użyj count jak

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