I have a list which is defined as follows:
mean=[0,1,3,6,4,5,nan,456,nan,5,3,7,nan]
How do i replace all the values having nan to 0.
I have a list which is defined as follows:
mean=[0,1,3,6,4,5,nan,456,nan,5,3,7,nan]
How do i replace all the values having nan to 0.
Assuming "nan" really is a NaN, you can't use ordinary comparisons to find them, NaN is not equal to any other number or NaN. Yes, it's not equal to itself.
So, you have to use math.isnan()
to do the checking:
mean2 = [0 if math.isnan(x) else x for x in mean]
Assuming nan
is already a defined variable, then you can do:
>>> 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]
For NaN
referring Not a Number
:
>>> 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]