2015-05-05 6 views
19

Ich habe einen Datensatz mit einer großen Anzahl von Zeilen. Einige Werte sind NaN, wie folgt aus:Python/Pandas: Zählen der Anzahl der fehlenden/NaN in jeder Zeile

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 

Und ich möchte die Anzahl der NaN-Werte in jeder Saite zählen, würde es so aussehen:

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

Was ist die beste und schnellste Weg, es zu tun?

+0

Ähnliche Fragen für Spalten: [Wie bekomme ich eine Zusammenfassung Anzahl der fehlenden/NaN Daten nach Spalte in 'Pandas'?] (Http://stackoverflow.com/questions/22257527/how-do-i-get-a -Zusammenfassung-der-fehlenden-Daten-in-Pandas) – smci

Antwort

30

Sie könnten zuerst finden, wenn Element NaN oder nicht isnull() ist und nehmen dann zeilenweise 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 

Und, wenn Sie die Ausgabe als Liste möchten, können Sie

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

Oder verwenden Sie count wie

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 
Verwandte Themen