Pandas isna(): So spürst du jede Datenlücke souverän auf
Mit der Python-Pandas-Funktion DataFrame.isna() kannst du fehlende Daten (NaN oder None) in einem DataFrame sofort aufspüren. So erkennst du auf einen Blick, ob deine Analysen direkt starten können oder ob du die Daten zuerst bereinigen solltest.
Syntax von Pandas isna()
Die Anwendung ist denkbar einfach, da Pandas isna() keine Parameter benötigt:
DataFrame.isna()pythonSo nutzt du die isna()-Funktion
Wendest du Pandas isna() auf einen DataFrame an, erhältst du einen neuen DataFrame mit booleschen Werten. Überall dort, wo im Original ein Wert fehlt oder NaN bzw. None steht, wird True ausgegeben. Sind Daten vorhanden, liefert isna() an dieser Stelle den Wert False.
Willst du NaN- oder None-Werte nicht nur finden, sondern direkt löschen? Dann schau dir die Pandas-Funktion dropna() an. Um Lücken systematisch zu schließen, hilft dir die fillna()-Funktion weiter.
Fehlende Werte im DataFrame finden
Im folgenden Beispiel nutzen wir einen DataFrame mit Personendaten, bei dem manche Einträge fehlen oder den Wert None aufweisen:
import pandas as pd
# Beispiel-DataFrame erstellen
data = {
'Name': ['Alice', 'Bob', None, 'David'],
'Alter': [25, None, 35, 40],
'Stadt': ['New York', 'Los Angeles', 'Chicago', None]
}
df = pd.DataFrame(data)
print(df)pythonDer DataFrame sieht so aus:
Name Alter Stadt
0 Alice 25.0 New York
1 Bob NaN Los Angeles
2 None 35.0 Chicago
3 David 40.0 NoneMit dem Aufruf von isna() identifizierst du die exakten Lücken im Datensatz.
# Anwendung von Pandas isna()
missing_values = df.isna()
print(missing_values)pythonDu erhältst einen neuen DataFrame: Fehlende Werte werden durch True markiert, vorhandene Daten durch False. Das Ergebnis sieht dann so aus:
Name Alter Stadt
0 False False False
1 False True False
2 True False False
3 False False TrueLücken pro Spalte zählen
Um zu entscheiden, wie du mit unvollständigen Daten umgehst, ist die Anzahl der Lücken pro Spalte oft entscheidend. Kombiniere dafür einfach isna() mit der Python-Funktion sum().
# Zählen der fehlenden Werte pro Spalte
missing_count = df.isna().sum()
print(missing_count)pythonDas Ergebnis zeigt dir die Summe der fehlenden Werte je Spalte:
Name 1
Alter 1
Stadt 1
dtype: int64