Pandas pd.isna()-Funktion
pd.isna()ist die am häufigsten verwendete Funktion zur Erkennung fehlender Werte in Pandas. Sie prüft, ob jedes Element ein fehlender Wert ist, und gibt einen booleschen Wert zurück (TrueoderFalse) Struktur.
In der Datenanalyse ist der Umgang mit fehlenden Werten ein sehr wichtiger erster Schritt.pd.isna()Es kann Ihnen helfen, fehlende Stellen in Daten schnell zu erkennen und eine Grundlage für nachfolgendes Füllen, Löschen oder andere Verarbeitungsvorgänge zu bieten.
Grundlegende Syntax und Parameter
Syntaxformat
pandas.isna(obj)
Parameterbeschreibung
| Parameter | Type | Beschreibung |
|---|---|---|
| obj | DataFrame, Series, Skalar, Liste, Tupel | Das Objekt, für das fehlende Werte geprüft werden müssen; es kann jeder unterstützte Datentyp sein. |
Beschreibung des Rückgabewerts
- Gibt ein Boolean-Objekt mit derselben Struktur wie die Eingabe zurück:
- Wenn die Eingabe ein DataFrame ist, wird ein Boolean-DataFrame zurückgegeben
- Wenn die Eingabe eine Series ist, wird eine Boolean-Series zurückgegeben
- Wenn die Eingabe ein einzelner Wert ist, wird ein Boolean-Skalar zurückgegeben
Beispiel
Lassen Sie uns anhand einer Reihe von Beispielen von einfach bis komplexpd.isna()seine Verwendung gründlich beherrschen.
Beispiel 1: Erkennen fehlender Werte in einer Series
Beispiel
import numpy as np
# Eine Series mit fehlenden Werten erstellen
s = pd.Series([1, 2, np.nan, 4, None, 6])
# Fehlende Werte erkennen
result = pd.isna(s)
print("Originalreihe:")
print(s)
print("\n"Erkennungsergebnis:")
print(result)
Ausgabe:
原始 Series: 0 1.0 1 2.0 2 NaN 3 4.0 4 NaN 5 6.0 dtype: float64 检测结果: 0 False 1 False 2 True 3 False 4 True 5 False dtype: bool
Code-Erklärung:
np.nanundNonewerden alle als fehlende Werte erkannt- In der zurückgegebenen Boolean-Series sind die Positionen fehlender Werte
True, Positionen von nicht fehlenden Werten sindFalse
Beispiel 2: Erkennen fehlender Werte in DataFrame
Beispiel
import numpy as np
# DataFrame mit fehlenden Werten erstellen
df = pd.DataFrame({
'A': [1, 2, np.nan, 4],
'B': ['a', Keine, 'c', 'd'],
'C': [pd.NaT, 6, 7, 8] # NaT ist ein fehlender Wert für den Zeittyp
})
# Fehlende Werte erkennen
result = pd.isna(df)
print("Ursprüngliches DataFrame:")
print(df)
print("\n"Erkennungsergebnis:")
print(result)
Ausgabe:
原始 DataFrame:
A B C
0 1.0 a None
1 2.0 None 6
2 NaN c 7
3 4.0 d 8
dtype: object
检测结果:
A B C
0 False False True
1 False True False
2 True False False
3 False False False
Code-Erklärung:
pd.NaT(Not a Time) ist ein fehlender Wert des Zeittyps und wird ebenfalls korrekt erkannt- Jede Position im DataFrame gibt den entsprechenden booleschen Wert zurück
Beispiel 3: Fehlende Werte zählen
In der tatsächlichen Datenanalyse müssen wir oft wissen, wie viele fehlende Werte vorhanden sind.
Beispiel
import numpy as np
# Daten erstellen
df = pd.DataFrame({
'A': [1, np.nan, 3, np.nan, 5],
'B': [np.nan, 2, np.nan, 4, np.nan],
'C': [1, 2, 3, 4, 5]
})
# Fehlende Werte in jeder Spalte zählen
print("Anzahl fehlender Werte pro Spalte:")
print(pd.isna(df).sum())
print("\n"Fehlende Werte insgesamt:", pd.isna(df).sum().sum())
# Anteil fehlender Werte berechnen
print("\n"Anteil fehlender Werte:")
print((pd.isna(df).sum() / len(df) * 100).round(2), "%")
Ausgabe:
每列缺失值数量: A 2 B 3 C 0 dtype: int64 总缺失值数量: 5 缺失值比例: A 40.0 B 60.0 C 0.0 %
Beispiel 4: Kombination mit anderen Funktionen
Beispiel
import numpy as np
# Daten erstellen
df = pd.DataFrame({
'name': ['Alice', 'Bob', None, 'Diana', 'Eve'],
'age': [25, None, 35, 28, None],
'score': [85, 90, 78, 92, 88]
})
# isna verwenden, um Zeilen mit fehlenden Werten zu filtern
rows_with_na = df[pd.isna(df).any(axis=1)]
print("Zeilen mit fehlenden Werten:")
print(rows_with_na)
# isna verwenden, um fehlende Werte zu füllen
df_filled = df.fillna({
'name': 'Unbekannt',
'age': df['age'].mean(), # Fülle age mit Mittelwert
'score': 0
})
print("\n"DataFrame nach dem Füllen:")
print(df_filled)
Ausgabe:
包含缺失值的行:
name age score
0 Alice 25.0 85
2 None 35.0 78
3 Diana 28.0 92
填充后的 DataFrame:
name age score
0 Alice 25.0 85
1 Bob 29.0 90
2 Unknown 35.0 78
3 Diana 28.0 92
4 Eve 0.0 88
Wichtige Hinweise
Wichtige Tipps:
pd.isna()Die folgenden Werte werden als fehlende Werte erkannt:
np.nan- Fehlende Werte vom numerischen TypNone- Python-natives None-Objektpd.NaT- Fehlende Werte vom datetime-Typ
Für leere Strings""oder0,pd.isna()gibt zurückFalse, weil sie keine fehlenden Werte sind.
Weitere Erweiterungen
Pandas Häufige Funktionen