目次
1. Wie man NaN in Python erkennt
Was ist NaN?
NaN (Not a Number) ist ein spezieller Gleitkommawert, der anzeigt, dass eine numerische Operation ungültig oder nicht definiert ist. Typischerweise tritt er bei Division durch Null oder als Ergebnis ungültiger Berechnungen auf, weshalb bei Datenanalyse und numerischer Verarbeitung besondere Vorsicht geboten ist. Wird NaN nicht korrekt behandelt, können Berechnungsergebnisse ungenau werden oder das Programm nicht wie erwartet funktionieren.Wichtigkeit der NaN-Erkennung
Wenn NaN in einem Datensatz enthalten ist, kann dies die Zuverlässigkeit der Daten und die Berechnungsergebnisse beeinträchtigen. Daher ist es wichtig, zunächst NaN zu erkennen und anschließend geeignete Maßnahmen (wie Löschen, Ersetzen usw.) durchzuführen.2. Erzeugung von NaN
Python kann NaN mitfloat('nan')
erzeugen. Es wird verwendet, um ein ungültiges Ergebnis in numerischen Berechnungen explizit anzuzeigen.num = float('nan')
print(num) # Ergebnis: nan
Unterschied zu None
NaN ist numerisch ungültig, währendNone
einen Zustand von „nichts“ darstellt. None
kann mit ==
verglichen werden, aber NaN ist selbst im Vergleich nicht gleich, sodass ein Vergleich mit ==
ungeeignet ist.num = float('nan')
print(num == num) # Ergebnis: False
none_value = None
print(none_value == None) # Ergebnis: True

3. Methoden zur Erkennung von NaN
3.1. Erkennung mit der Standardbibliothek (math.isnan()
)
Um NaN mit der Standardbibliothek von Python zu prüfen, verwendet man math.isnan()
. Diese Funktion gibt True
zurück, wenn der übergebene Wert NaN ist.import math
num = float('nan')
print(math.isnan(num)) # Ergebnis: True
3.2. Erkennung mit NumPy (numpy.isnan()
)
NumPy ist eine Bibliothek, die sich auf Berechnungen mit Arrays und Matrizen spezialisiert hat und die Funktion numpy.isnan()
bereitstellt, um NaN in Arrays effizient zu erkennen. Sie wird häufig in der numerischen Analyse und wissenschaftlichen Datenverarbeitung eingesetzt.import numpy as np
num_list = [1, 2, np.nan, 4]
print(np.isnan(num_list)) # Ergebnis: [False False True False]
3.3. Erkennung mit pandas (pandas.isna()
)
Beim Umgang mit DataFrames verwendet man in pandas isna()
oder isnull()
, um NaN zu erkennen. Diese Funktionen sind nützlich für Datenbereinigung und den Umgang mit fehlenden Werten.import pandas as pd
import numpy as np
data = pd.Series([1, 2, np.nan, 4])
print(pd.isna(data)) # Ergebnis: 0 False
# 1 False
# 2 True
# 3 False
4. NaN entfernen und ersetzen
4.1. NaN aus einer Liste entfernen
Um NaN in einer Liste zu entfernen, kann manmath.isnan()
mit einer Listen‑Komprehension kombinieren.import math
num_list = [1, 2, float('nan'), 4]
clean_list = [num for num in num_list if not math.isnan(num)]
print(clean_list) # Ergebnis: [1, 2, 4]
4.2. NaN mit pandas entfernen(dropna()
)
Um NaN aus einem DataFrame zu entfernen, verwendet man die dropna()
-Methode. Dadurch können Zeilen oder Spalten, die NaN enthalten, entfernt werden.import pandas as pd
import numpy as np
df = pd.DataFrame({'A': [1, 2, np.nan], 'B': [4, np.nan, 6]})
clean_df = df.dropna()
print(clean_df)
4.3. NaN mit pandas ersetzen(fillna()
)
Wenn man NaN nicht löschen, sondern durch einen bestimmten Wert ersetzen möchte, verwendet man die fillna()
-Methode.import pandas as pd
import numpy as np
df = pd.DataFrame({'A': [1, 2, np.nan], 'B': [4, np.nan, 6]})
df.fillna(0, inplace=True)
print(df)
5. Berechnungen mit NaN
Berechnungen, die NaN enthalten, führen ebenfalls zu NaN als Ergebnis, daher muss man NaN vorab entfernen oder ersetzen, um genaue Resultate zu erhalten.import numpy as np
result = 10 + np.nan
print(result) # Ergebnis: nan
Beispiel für statistische Berechnungen mit NaN
Wenn man statistische Berechnungen mit einem Datensatz, der NaN enthält, durchführt und NaN dabei ignorieren möchte, verwendet man dienanmean()
-Funktion von NumPy. Diese berechnet den Mittelwert, wobei NaN ausgeschlossen werden.import numpy as np
data = [1, 2, np.nan, 4]
mean = np.nanmean(data) # Mittelwert berechnen, NaN ignorieren
print(mean) # Ergebnis: 2.3333...
6. Hinweise zur NaN-Überprüfung
6.1. Verhalten von Vergleichsoperatoren
NaN hat die besondere Eigenschaft, dass es bei Vergleichsoperatoren weder mit anderen Zahlen noch mit sich selbst als gleich gilt. Daher können die Prüfungen mit==
oder !=
nicht verwendet werden; es ist notwendig, spezielle Funktionen (isnan()
oder isna()
) zu benutzen.num = float('nan')
print(num == num) # Ergebnis: False
6.2. Punkte für die Datenbereinigung
In der Datenanalyse können genaue Berechnungen nicht durchgeführt werden, wenn NaN-Werte verbleiben. Da sie die Ergebnisse verfälschen können, ist eine vorherige geeignete Bereinigung erforderlich. Durch das korrekte Entfernen oder Ersetzen von NaN lässt sich die Zuverlässigkeit der Daten erhöhen.7. Zusammenfassung
Python kann man durch die Nutzung vonmath
, numpy
, pandas
NaN effizient erkennen und verarbeiten. Das korrekte Verständnis des Umgangs mit NaN und das Erlernen der Grundlagen, um die Zuverlässigkeit von Datenanalyse und numerischen Berechnungen zu gewährleisten, ist eine Fähigkeit, die in allen Bereichen der Programmierung nützlich ist.