Wie prüft man, ob NaN im Pandas-DataFrame vorhanden ist
NaN
steht für Not a Number
, die fehlende Werte in Pandas repräsentiert. Um NaN-Werte in Python Pandas zu erkennen, können wir die Methoden isnull()
und isna()
für DataFrame-Objekte verwenden.
pandas.DataFrame.isnull()
Methode
Wir können auf NaN
-Werte in DataFrame
mit der Methode pandas.DataFrame.isnull()
prüfen. Die Methode gibt DataFrame
von Bool-Werten zurück, deren Elemente True sind, wenn die entsprechenden Elemente im zu prüfenden DataFrame den Wert NaN
haben, und die Elemente andernfalls False sind.
import pandas as pd
import numpy as np
df = pd.DataFrame(
{
"Student": ["Hisila", "Shristi", "Zeppy", "Alina", "Jerry"],
"Height": [1.63, 1.5, np.nan, np.nan, 1.4],
"Weight": [np.nan, 56, 73, np.nan, 44],
}
)
df_check = df.isnull()
print(df_check)
Ausgabe:
Student Height Weight
0 False False True
1 False False False
2 False True False
3 False True True
4 False False False
Hier stellen die False
-Werte in der Ausgabe die Einträge im DataFrame df
dar, die nicht NaN
sind, und die True
-Werte stellen NaN
-Einträge im DataFrame df
dar.
Wenn wir wissen wollen, ob es irgendeinen NaN
-Wert im DataFrame gibt, können wir die Methode isnull().values.any()
verwenden, die True zurückgibt, wenn es irgendeinen NaN
-Wert im DataFrame gibt, und False zurückgibt, wenn es nicht einmal einen einzigen NaN
-Eintrag im DataFrame gibt.
import pandas as pd
import numpy as np
df = pd.DataFrame(
{
"Student": ["Hisila", "Shristi", "Zeppy", "Alina", "Jerry"],
"Height": [1.63, 1.5, np.nan, np.nan, 1.4],
"Weight": [np.nan, 56, 73, np.nan, 44],
}
)
check_for_nan = df.isnull().values.any()
print(check_for_nan)
Ausgabe:
True
df.isnull().values
gibt die NumPy-Darstellung des DataFrames zurück. numpy.any()
gibt True
zurück, wenn eines der Elemente als True
ausgewertet wird.
Daher ist df.isnull().values.any()
gleich True
, wenn irgendeines der Elemente im DataFrame NaN
existiert.
df.isnull().any().any()
zur Prüfung, ob ein NaN
vorhanden ist
df.any()
gibt zurück, ob eines der Elemente wahr ist. Es gibt eine pd.Series
zurück, wenn df
ein DataFrame ist, und einen booleschen Wert, wenn df
eine pd.Series
ist.
import pandas as pd
import numpy as np
df = pd.DataFrame(
{
"Student": ["Hisila", "Shristi", "Zeppy", "Alina", "Jerry"],
"Height": [1.63, 1.5, np.nan, np.nan, 1.4],
"Weight": [np.nan, 56, 73, np.nan, 44],
}
)
check_for_nan = df.isnull().any().any()
print(check_for_nan)
Ausgabe:
True
Zwei kaskadierte any()
Methoden nach isnull()
im obigen Beispiel geben True
zurück, wenn eines der Elemente NaN
im DataFrame ist.
isnull().sum().sum()
zur Prüfung, ob ein NaN
vorhanden ist
Wenn wir die Gesamtzahl der NaN
-Werte in einem bestimmten DataFrame
zählen wollen, ist die df.isnull().sum().sum()
Methode die richtige Lösung. Die Methode gibt die Gesamtzahl der NaN
-Werte im gesamten DataFrame zurück.
import pandas as pd
import numpy as np
df = pd.DataFrame(
{
"Student": ["Hisila", "Shristi", "Zeppy", "Alina", "Jerry"],
"Height": [1.63, 1.5, np.nan, np.nan, 1.4],
"Weight": [np.nan, 56, 73, np.nan, 44],
}
)
total_nan_values = df.isnull().sum().sum()
print(total_nan_values)
Ausgabe:
4
Wenn das Ergebnis größer als 0 ist, bedeutet dies, daß NaN
im DataFrame existiert.
pandas.DataFrame.isna()
Methode
Die Methode pandas.DataFrame.isna()
ist ähnlich
pandas.DataFrame.isnull()
. Es gibt keinen Unterschied zwischen der Funktionsweise von zwei Methoden. Sie unterscheiden sich nur im Namen.
import pandas as pd
import numpy as np
df = pd.DataFrame(
{
"Student": ["Hisila", "Shristi", "Zeppy", "Alina", "Jerry"],
"Height": [1.63, 1.5, np.nan, np.nan, 1.4],
"Weight": [np.nan, 56, 73, np.nan, 44],
}
)
df_check = df.isna()
check_for_any_nan = df.isna().values.any()
# Or
check_for_any_nan = df.isna().any().any()
total_nan_values = df.isna().sum().sum()
print(df_check)
print("NaN Presence:" + str(check_for_any_nan))
print("Total Number of NaN values:" + str(total_nan_values))
Ausgabe:
Student Height Weight
0 False False True
1 False False False
2 False True False
3 False True True
4 False False False
NaN Presence:True
Total Number of NaN values:4
Hier gibt die Methode df.isna()
DataFrame zurück, dessen Einträge boolesche Werte enthalten, die das Vorhandensein von NaN
-Werten in df
anzeigen. In ähnlicher Weise geben df.isna().values.any()
, df.isna().any().any()
und df.isna().sum().sum()
das Vorhandensein des NaN
Wertes im gesamten df
und die Anzahl der NaN
Einträge im df
zurück.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn