Wie kann ich die Anzahl der fehlenden Werte in jeder Zeile im Pandas-Datenrahmen ermitteln? Ich möchte den Datenrahmen in verschiedene Datenrahmen aufteilen, die in jeder Zeile die gleiche Anzahl fehlender Werte aufweisen.
Irgendein Vorschlag?
Sie können die Zeilen wie folgt zählen:
test_df.apply(lambda x: x.count(), axis=1)
test_df:
A B C
0: 1 1 3
1: 2 nan nan
2: nan nan nan
Ausgabe:
0: 3
1: 1
2: 0
Sie können das Ergebnis wie folgt hinzufügen:
test_df['full_count'] = test_df.apply(lambda x: x.count(), axis=1)
Ergebnis:
A B C full_count
0: 1 1 3 3
1: 2 nan nan 1
2: nan nan nan 0
Wenn Pandas verwenden, versuchen Sie das Ausführen von Operationen in einer Schleife zu vermeiden, einschließlich
apply
,map
,applymap
etc. Das ist langsam!Wenn Sie die fehlenden Werte in jeder Spalte zählen möchten, versuchen Sie:
df.isnull().sum()
oderdf.isnull().sum(axis=0)
Auf der anderen Seite können Sie in jeder Zeile (was Ihre Frage ist) zählen durch:
df.isnull().sum(axis=1)
Es ist ungefähr zehnmal schneller als die Lösung von Jan van der Vegt (übrigens zählt er gültige Werte anstatt fehlende Werte):
quelle
Der einfachste Weg:
quelle
Sie können auch einfach die Info-Methode für Datenrahmenobjekte verwenden:
Dies gibt die Anzahl der Nicht-Null-Werte für jede Spalte an.
quelle
Nullwerte entlang der Spalte,
leere Werte entlang der Spalte,
Nullwerte entlang der Zeile,
leere Werte entlang der Zeile,
quelle
quelle
Wenn Sie die Anzahl der fehlenden Werte zählen möchten:
quelle
Dieses Snippet gibt einen ganzzahligen Wert der Gesamtzahl der Spalten mit fehlendem Wert zurück:
quelle