Ich habe Daten, in denen ich die Anzahl der Daten ermitteln möchte. NaN
Wenn diese unter einem bestimmten Schwellenwert liegen, werden diese Spalten gelöscht. Ich habe nachgesehen, konnte aber keine Funktion dafür finden. es gibt value_counts
, aber es wäre langsam für mich, weil die meisten Werte unterschiedlich sind und ich NaN
nur zählen möchte .
460
df
, können Sie verwendendf.isnull().sum().sum()
.sum(axis=0)
ist dies das Standardverhalten. Und um Zeilensummen zu bekommen ,.sum(axis=1)
.df.isnull().values.sum()
df['column_name'].isna().sum()
funktioniert auch, wenn sich jemand wundert.Sie können die Gesamtlänge von der Anzahl der Nicht-Nan-Werte abziehen :
Sie sollten es auf Ihren Daten zeitlich festlegen. Für kleine Serien wurde eine 3-fache Geschwindigkeit im Vergleich zur
isnull
Lösung erzielt.quelle
isnull
bereits zweimal schneller als dieser.Nehmen wir an, es
df
handelt sich um einen Pandas DataFrame.Dann,
Dies gibt die Anzahl der NaN-Werte in jeder Spalte an.
Wenn Sie brauchen, NaN-Werte in jeder Zeile,
quelle
Basierend auf der am häufigsten gewählten Antwort können wir leicht eine Funktion definieren, die uns einen Datenrahmen zur Vorschau der fehlenden Werte und des Prozentsatzes der fehlenden Werte in jeder Spalte gibt:
quelle
Seit pandas 0.14.1 wurde mein Vorschlag, hier ein Schlüsselwortargument in der value_counts-Methode zu haben, implementiert:
quelle
Wenn es nur darum geht, Nan-Werte in einer Pandas-Spalte zu zählen, ist dies ein schneller Weg
quelle
Wenn Sie Jupyter Notebook verwenden, wie wäre es mit ....
oder
oder gibt es irgendwo NaNs in den Daten, wenn ja, wo?
quelle
Im Folgenden werden alle Nan-Spalten in absteigender Reihenfolge gedruckt.
oder
Im Folgenden werden die ersten 15 Nanospalten in absteigender Reihenfolge gedruckt.
quelle
Sie können die folgende Funktion verwenden, mit der Sie in Dataframe ausgeben können
Kopieren Sie einfach die folgende Funktion und fügen Sie sie ein. Rufen Sie sie auf, indem Sie Ihren Pandas-Datenrahmen übergeben
Ausgabe
Wenn Sie es einfach halten möchten, können Sie die folgende Funktion verwenden, um fehlende Werte in% zu erhalten
quelle
So zählen Sie Nullen:
Um NaN zu zählen:
oder
quelle
Sie können die Methode value_counts verwenden und Werte von np.nan drucken
quelle
s.value_counts(dropna = False)
Bitte verwenden Sie unten für bestimmte Spaltenanzahl
quelle
Dies wird den Trick machen.
quelle
Hier ist der Code zum
Null
spaltenweisen Zählen von Werten:quelle
Es gibt einen schönen Dzone-Artikel vom Juli 2017, der verschiedene Möglichkeiten zur Zusammenfassung von NaN-Werten beschreibt. Schau es dir hier an .
Der Artikel, den ich zitiert habe, bietet zusätzlichen Wert durch: (1) Anzeigen einer Möglichkeit zum Zählen und Anzeigen von NaN-Zählungen für jede Spalte, damit man leicht entscheiden kann, ob diese Spalten verworfen werden sollen oder nicht, und (2) Demonstrieren einer Möglichkeit zum Auswählen dieser Zeilen in spezifisch, die NaNs haben, so dass sie selektiv verworfen oder unterstellt werden können.
Hier ist ein kurzes Beispiel, um die Nützlichkeit des Ansatzes zu demonstrieren - mit nur wenigen Spalten ist seine Nützlichkeit vielleicht nicht offensichtlich, aber ich fand, dass er für größere Datenrahmen hilfreich ist.
quelle
Eine andere einfache Option, die noch nicht vorgeschlagen wurde, um nur NaNs zu zählen, wäre das Hinzufügen der Form, um die Anzahl der Zeilen mit NaN zurückzugeben.
quelle
df.isnull (). sum () gibt die spaltenweise Summe der fehlenden Werte an.
Wenn Sie die Summe der fehlenden Werte in einer bestimmten Spalte wissen möchten, funktioniert der folgende Code: df.column.isnull (). Sum ()
quelle
Basierend auf der Antwort und einigen Verbesserungen ist dies mein Ansatz
quelle
df.apply(lambda x: x.value_counts(dropna=False)[np.nan]/x.size*100)
Für den Fall, dass Sie die Nicht-NA- (Nicht-Keine) und NA- (Keine) Zählungen für verschiedene Gruppen erhalten müssen, die von groupby herausgezogen wurden:
Dies gibt die Anzahl der Nicht-NA, NA und die Gesamtzahl der Einträge pro Gruppe zurück.
quelle
Verwendete die von @sushmit vorgeschlagene Lösung in meinem Code.
Eine mögliche Variation davon kann auch sein
Dies hat den Vorteil, dass von nun an das Ergebnis für jede der Spalten in der df zurückgegeben wird.
quelle
Gibt als Ausgabe:
quelle
Angenommen, Sie möchten die Anzahl der fehlenden Werte (NaN) in einer Spalte (Serie) ermitteln, die als Preis in einem Datenrahmen mit dem Namen "Bewertungen" bezeichnet wird
Um die fehlenden Werte mit n_missing_prices als Variable zu erhalten, gehen Sie einfach vor
sum ist die Schlüsselmethode hier, ich habe versucht, count zu verwenden, bevor mir klar wurde, dass sum die richtige Methode ist, um sie in diesem Kontext zu verwenden
quelle
https://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.count.html#pandas.Series.count
Gibt die Anzahl der Nicht-NA / Null-Beobachtungen in der Serie zurück
quelle
Für Ihre Aufgabe können Sie pandas.DataFrame.dropna verwenden ( https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.dropna.html ):
Mit dem Schwellenwertparameter können Sie die maximale Anzahl für NaN-Werte für alle Spalten in DataFrame deklarieren.
Code-Ausgaben:
quelle