在使用数组操作后替换NaN值为零

时间:2009-11-26 12:54:14

标签: python

如何替换数组中的NaN值,如果执行操作则为零,结果而不是NaN值为零操作

0/0 = NaN可以用0替换

3 个答案:

答案 0 :(得分:9)

如果你有Python 2.6,你可以使用math.isnan()函数来查找NaN值。

有了这个,我们可以使用列表推导来替换列表中的NaN值,如下所示:

import math
mylist = [0 if math.isnan(x) else x for x in mylist]

如果你有Python 2.5,我们可以使用this question中的NaN != NaN技巧,所以你这样做:

mylist = [0 if x != x else x for x in mylist]

答案 1 :(得分:3)

import numpy
a=numpy.array([1,2,3,'NaN',4])
s=numpy.isnan(a)
a[s]=0.0

答案 2 :(得分:0)

还有一个熊猫解决方案。


import pandas as pd

mylist = [2.3, pd.NA, 1.1, 0.7]
mylist = [0 if pd.isna(x) else x for x in mylist]
相关问题