Ich habe eine Liste, die wie folgt definiert ist:ersetzenden Elemente in einer Liste
mean=[0,1,3,6,4,5,nan,456,nan,5,3,7,nan]
Wie ersetze ich alle Werte nan mit auf 0
Ich habe eine Liste, die wie folgt definiert ist:ersetzenden Elemente in einer Liste
mean=[0,1,3,6,4,5,nan,456,nan,5,3,7,nan]
Wie ersetze ich alle Werte nan mit auf 0
nan
Unter der Annahme, ist bereits eine definierte Variable, dann Sie tun können:
>>> nan="nan"
>>> mean=[0,1,3,6,4,5,nan,456,nan,5,3,7,nan]
>>> print([0 if i==nan else i for i in mean])
[0, 1, 3, 6, 4, 5, 0, 456, 0, 5, 3, 7, 0]
Für NaN
Not a Number
Bezug:
>>> import math
>>> mean=[0,1,3,6,4,5,float("NaN"),456,float("NaN"),5,3,7,float("NaN")]
>>> print([0 if math.isnan(i) else i for i in mean])
[0, 1, 3, 6, 4, 5, 0, 456, 0, 5, 3, 7, 0]
Angenommen, "nan" ist wirklich ein NaN, Sie können nicht normale Vergleiche verwenden, um sie zu finden, NaN ist nicht gleich einer anderen Zahl oder NaN. Ja, es ist nicht sich selbst gleich.
So haben Sie math.isnan()
zu verwenden, um die Kontrolle zu tun:
mean2 = [0 if math.isnan(x) else x for x in mean]