Lernpfad
In der Welt der Datenwissenschaft und -analyse ist es eher die Regel als die Ausnahme, dass man auf fehlende Daten stößt. Fehlende Werte können die Analyse verzerren, zu falschen Schlussfolgerungen führen und generell den Ablauf der Datenverarbeitung stören. Diese Lücken zu schließen ist echt wichtig, um die Integrität deiner Analyse zu sichern. Dieser Artikel soll dir verschiedene Möglichkeiten zeigen, wie du NaN-Werte (Not a Number) in Python erkennen kannst.
Die kurze Antwort: Benutze entweder NumPy's isnan() Funktion oder Pandas .isna() Methode
Wenn du in Python mit fehlenden Werten arbeitest, hängt die Vorgehensweise stark von der Datenstruktur ab, mit der du dich beschäftigst.
Für einzelne Werte oder Arrays: NumPy verwenden
Die Funktion isnan() von NumPy ist super, um NaNs in numerischen Arrays oder Einzelwerten zu erkennen, und bietet eine einfache und effiziente Lösung. Hier siehst du es in Aktion!
import numpy as np
# Single value check
my_missing_value = np.nan
print(np.isnan(my_missing_value))
# Output: True
# Array check
my_missing_array = np.array([1, np.nan, 3])
nan_array = np.isnan(my_missing_array)
print(nan_array)
# Output: [False True False]
Für DataFrames: Pandas verwenden
Pandas hat coole Methoden wie .isna() und .isnull(), um fehlende Werte in DataFrame- oder Series-Objekten zu finden, die sich super in Datenanalyse-Workflows einfügen.
import pandas as pd
import numpy as np
my_dataframe = pd.DataFrame({
'Column1': ["I", "Love", np.nan],
'Column2': ["Python", np.nan, "The Best"]
})
print(my_dataframe.isna())
# Column1 Column2
# 0 False False
# 1 False True
# 2 True False
Wenn du diesen Code ausführst, zeigt die Ausgabe das Vorhandensein von NaN-Werten in einem interessanteren Kontext an, wie oben gezeigt.
Der Unterschied zwischen NaN und None
In Python ist es echt wichtig, den Unterschied zwischen NaN und None zu verstehen. NaN ist eine Fließkommadarstellung von „Not a Number” (keine Zahl), die vor allem bei numerischen Berechnungen verwendet wird. None hingegen ist ein Python-Objekt, das das Fehlen eines Werts darstellt, ähnlich wie „null” in anderen Sprachen. Während NaN in der Mathematik oder Wissenschaft benutzt wird, ist „None“ allgemeiner und zeigt an, dass Daten fehlen.
4 Möglichkeiten, um in Python nach NaN zu suchen
Das Durchsuchen von Datensätzen, um fehlende Werte zu finden, ist ein wichtiger Schritt bei der Datenvorverarbeitung. Schauen wir uns vier praktische Methoden an, um in Python nach NaN-Werten zu suchen, und machen wir weiter mit den coolen Beispielen, die wir schon benutzt haben.
1. Mit np.isnan() nach NaN suchen
Wie wir schon gesehen haben, bietet NumPy eine einfache Möglichkeit, NaN-Werte sowohl in einzelnen Werten als auch in Arrays zu erkennen, was für die Analyse numerischer Daten echt wichtig ist.
import numpy as np
# Checking a single value
print(np.isnan(np.nan))
# Output: True
# Checking an array
my_array = np.array([1, 5, np.nan])
print(np.isnan(my_array))
# Output: [False False True]
2. Überprüfen, ob NaN benutzen pd.isna()
Pandas macht es einfacher, NaN-Werte in Datenstrukturen zu erkennen, egal ob es sich um Skalare oder komplexe DataFrames handelt. Das macht es super nützlich für Aufgaben rund um die Datenbearbeitung.
import numpy as np
import pandas as pd
# Checking a single value
print(pd.isna(np.nan))
# Output: True
# Checking a pandas Series
my_series = pd.Series(["Python", np.nan, "The Best"])
print(my_series.isna())
# Output:
# 0 False
# 1 True
# 2 False
# Checking a pandas DataFrame
my_dataframe = pd.DataFrame({
'Column1': ["I", "Love", np.nan],
'Column2': ["Python", np.nan, "The Best"]
})
print(pd.isna(my_dataframe)) # Output a DataFrame with True for missing values
3. Überprüfen, ob NaN in DataFrames mit Pandas .isna() oder .isnull() Methoden
Pandas DataFrames haben auch die Methoden .isna() und .isnull(), mit denen du ganz einfach fehlende Werte in Datensätzen finden kannst. So bekommst du einen klaren Überblick über die Vollständigkeit der Daten.
import numpy as np
import pandas as pd
# Create a dataframe with missing values
my_dataframe = pd.DataFrame({
'Column1': ["I", "Love", np.nan],
'Column2': ["Python", np.nan, "The Best"]
})
print(my_dataframe.isna())
# Output:
# Column1 Column2
# 0 False False
# 1 False True
# 2 True False
print(my_dataframe.isnull())
# Output:
# Column1 Column2
# 0 False False
# 1 False True
# 2 True False
4. Überprüfen, ob NaN in DataFrames mit math.isnan()
Für einzelne Zahlenprüfungen ist die Funktion math.isnan() eine einfache, aber gute Lösung, vor allem bei reinen Python-Datentypen.
import math
# Assuming my_number is a float or can be converted to one
my_number = float('nan')
print(math.isnan(my_number))
# Output: True
Abschließende Gedanken und weitere Infos
NaN-Werte zu erkennen und zu verwalten ist ein wichtiger Schritt, um deine Daten für die Analyse aufzubereiten. Egal, ob du mit Arrays, Reihen oder Datenrahmen arbeitest, es ist wichtig, die Tools und Methoden zu kennen, die Python für den Umgang mit fehlenden Daten bietet. Für weitere Infos check mal die folgenden Quellen aus:

Adel ist Data Science Educator, Speaker und Evangelist bei DataCamp, wo er verschiedene Kurse und Live-Trainings zu Datenanalyse, maschinellem Lernen und Data Engineering veröffentlicht hat. Er setzt sich leidenschaftlich für die Verbreitung von Datenkenntnissen und Datenkompetenz in Organisationen und an der Schnittstelle zwischen Technologie und Gesellschaft ein. Er hat einen MSc in Data Science und Business Analytics. In seiner Freizeit ist er mit seinem Kater Louis unterwegs.


