In diesem Artikel wird beschrieben, wie SIE überprüfen, ob pandas.DataFrame und Series fehlende Werte enthalten, und wie SIE die Anzahl der fehlenden und nicht fehlenden Werte umfassen.
- Erkennen Sie fehlende Werte mit isnull() und isna()
- Überprüfen Sie, ob alle Elemente in einer Zeile und Spalte Werte fehlen
- Überprüfen Sie, ob eine Zeile und Spalte mindestens einen fehlenden Wert enthält
- Zählen Sie fehlende Werte in jeder Zeile und Spalte
- Zählen Sie nicht fehlende Werte in jeder Zeile und Spalte
- Zählen Sie die Gesamtzahl der fehlenden Werte
- Zählen Sie die Gesamtzahl der nicht fehlenden Werte
- Überprüfen Sie, ob pandas.DataFrame mindestens einen fehlenden Wert enthält
- Für Pandas.Serie
In den following Artikeln erfahren SIE, wie SIE fehlende Werte entfernen und ersetzen.
In den following Artikeln erfahren SIE, wie SIE Elemente umfassen, sterben bestimmte Bedingungen erfüllen, nicht nur NaN.
Beachten Sie, dass nicht nur NaN (Not a Number), sondern auch None als fehlender Wert in Pandas behandelt wird.
Lesen Sie als Beispiel eine CSV-Datei mit fehlenden Werten mit read_csv(). Verwenden Sie nur die ersten drei Zeilen.
import pandas as pd
df = pd.read_csv('data/src/sample_pandas_normal_nan.csv')[:3]
print(df)
# name age state point other
# 0 Alice 24.0 NY NaN NaN
# 1 NaN NaN NaN NaN NaN
# 2 Charlie NaN CA NaN NaN
Erkennen Sie fehlende Werte mit isnull() und isna()
pandas.DataFrame und Series haben die Methoden isnull() und isna(). Beispiele für Pandas.Series werden am Ende gezeigt. Beachten Sie, dass die Methode isnan() nicht bereitgestellt WIRD.
True für fehlende Werte, False für fehlende Werte:
print(df.isnull())
# name age state point other
# 0 False False False True True
# 1 True True True True True
# 2 False True False True True
print(df.isna())
# name age state point other
# 0 False False False True True
# 1 True True True True True
# 2 False True False True True
isnull() ist ein Alias für isna(), dessen Verwendung dieselbe ist. isnull() wird hauptsächlich in diesem Artikel verwendet, aber SIE können es durch isna() ersetzen.
notnull() und notna() werden ebenfalls bereitgestellt, die True zurückgeben, wenn der Wert nicht fehlt, und False, wenn der Wert fehlt. notnull() ist ein Alias für notna()
print(df.notnull())
# name age state point other
# 0 True True True False False
# 1 False False False False False
# 2 True False True False False
print(df.notna())
# name age state point other
# 0 True True True False False
# 1 False False False False False
# 2 True False True False False
Beachten Sie, dass NaN immer False für == und True für != zurückgibt.
print(df == float('nan'))
# name age state point other
# 0 False False False False False
# 1 False False False False False
# 2 False False False False False
print(df != float('nan'))
# name age state point other
# 0 True True True True True
# 1 True True True True True
# 2 True True True True True
Überprüfen Sie, ob alle Elemente in einer Zeile und Spalte Werte fehlen
all() gibt True zurück, wenn alle Elemente in jeder Zeile und Spalte True sind.
Indem Sie all() aus dem Ergebnis von isnull() aufrufen, können Sie prüfen, ob alle Elemente in jeder Zeile und Spalte Werte fehlen.
Standardmäßig wird es auf Spalten angewendet. Wenn das Argument Achse = 1 ist, WIRD es auf Zeilen angewendet.
print(df.isnull().all())
# name False
# age False
# state False
# point True
# other True
# dtype: bool
print(df.isnull().all(axis=1))
# 0 False
# 1 True
# 2 False
# dtype: bool
Überprüfen Sie, ob eine Zeile und Spalte mindestens einen fehlenden Wert enthält
any() gibt True zurück, wenn es in jeder Zeile und Spalte mindestens ein True gibt.
Indem SIE any() aus dem Ergebnis von isnull() aufrufen, can SIE überprüfen, ob jede Zeile und Spalte mindestens einen fehlenden Wert enthält.
Standardmäßig wird es auf Spalten angewendet. Wenn das Argument Achse = 1 ist, WIRD es auf Zeilen angewendet.
print(df.isnull().any())
# name True
# age True
# state True
# point True
# other True
# dtype: bool
print(df.isnull().any(axis=1))
# 0 True
# 1 True
# 2 True
# dtype: bool
Zählen Sie fehlende Werte in jeder Zeile und Spalte
sum() berechnet die Summe der Elemente für jede Zeile und Spalte.
Da sum() als True=1 und False=0 berechnet WIRD, can SIE die Anzahl der fehlenden Werte in jeder Zeile und Spalte umfassen, dafür sum() aus dem Ergebnis von isnull() aufrufen.
Sie können fehlende Werte standardmäßig in jeder Spalte und in jeder Zeile mit Achse=1 umfassen.
print(df.isnull().sum())
# name 1
# age 2
# state 1
# point 3
# other 3
# dtype: int64
print(df.isnull().sum(axis=1))
# 0 2
# 1 5
# 2 3
# dtype: int64
Zählen Sie nicht fehlende Werte in jeder Zeile und Spalte
count() zählt die Anzahl der nicht fehlenden Werte (= vorhandene Werte) in jeder Zeile und Spalte.
Rufen Sie es direkt aus dem ursprünglichen pandas.DataFrame auf, nicht aus dem Ergebnis von isnull().
Sie können standardmäßig keine fehlenden Werte in jeder Spalte und in jeder Zeile mit Achse=1 umfassen.
print(df.count())
# name 2
# age 1
# state 2
# point 0
# other 0
# dtype: int64
print(df.count(axis=1))
# 0 3
# 1 0
# 2 2
# dtype: int64
Zählen Sie die Gesamtzahl der fehlenden Werte
Sie können die gesamten Daten als NumPy-Array numpy.ndarray mit dem Attribut-Werten von pandas.DataFrame abrufen.
print(df.isnull().values)
# [[False False False True True]
# [ True True True True True]
# [False True False True True]]
print(type(df.isnull().values))
# <class 'numpy.ndarray'>
Im Gegensatz zu pandas.DataFrame berechnet sum() von numpy.ndarray standardmäßig die Summe aller Elemente.
Daher can SIE durch Aufrufe von sum() aus dem Attribut values (numpy.ndarray) des Ergebnisses von isnull() sterben Gesamtzahl der fehlenden Werte erhalten.
print(df.isnull().values.sum())
# 10
Zählen Sie die Gesamtzahl der nicht fehlenden Werte
Sie can die Gesamtzahl der nicht fehlenden Elemente erhalten, davon sterben Sie die Anzahl jeder Zeile und Spalte, die Sie mit count() erhalten haben, mit sum() summieren.
print(df.count().sum())
# 5
Sie können sum() auch aus dem Attribut values (numpy.ndarray) des Ergebnisses von notnull() oder notna() aufrufen (wobei das nicht fehlende Element True ist).
print(df.notnull().values.sum())
# 5
Überprüfen Sie, ob pandas.DataFrame mindestens einen fehlenden Wert enthält
Anhand der oben angezeigten Gesamtzahl fehlender Werte can SIE überprüfen, ob pandas.DataFrame mindestens einen fehlenden Wert enthält.
If die Gesamtzahl der fehlenden Werte Nicht Null ist, bedeutet stirbt, dass pandas.DataFrame mindestens einen fehlenden Wert enthält.
print(df.isnull().values.sum() != 0)
# True
If die Gesamtzahl der fehlenden Werte gleich dem Größenattribut (der Anzahl aller Elemente) ist, bedeutet stirbt, dass alle Elemente fehlende Werte sind.
print(df.size)
# 15
print(df.isnull().values.sum() == df.size)
# False
Für Pandas.Serie
pandas.Series hat auch Methoden wie isnull(), isna(), notnull() und notna(). Es kann genauso gehandhabt werden wie die obigen Beispiele für pandas.DataFrame.
s = df['state']
print(s)
# 0 NY
# 1 NaN
# 2 CA
# Name: state, dtype: object
print(s.isnull())
# 0 False
# 1 True
# 2 False
# Name: state, dtype: bool
print(s.notnull())
# 0 True
# 1 False
# 2 True
# Name: state, dtype: bool
print(s.isnull().any())
# True
print(s.isnull().all())
# False
print(s.isnull().sum())
# 1
print(s.count())
# 2