Python 3替换Nan值

时间:2018-12-06 10:15:16

标签: python-3.x nan

我正在尝试使用其他列的计算替换一些列中的某些nan值。 即。

nancolumn = column1.value + column2.value

我的第一次尝试没有用,即仍然存在nan值

indecies = list(list(map(tuple, np.where(np.isnan(df['nancolumn']))))[0])
newValue = df.iloc[indecies]['column1'] + df.iloc[indecies ]['column2']
df.iloc[indecies]['nancolumn'] = newValue

然后,我找到了要替换的特定索引1805,并尝试仅用1.0替换此数据点值。结果仍然是nan

df.iloc[1805]['nancolumn'] = 1.0

我尝试使用fillna()和isnan()

df[np.isnan(df)]=1

对于isnan()尝试,出现此错误:

TypeError:输入类型不支持ufunc'isnan',并且根据强制转换规则“ safe”,不能将输入安全地强制转换为任何受支持的类型

df.iloc[1805]['nancolumn'].dtype
dtype('float64')

我知道我缺少一些简单的东西,但是我无法弄清楚。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

我发现最好先引用列,然后再引用索引,如下所示

df['nancolumn'].iloc[1805] = 1.0

尽管,我仍然不太了解其中的区别。如果有人感到不满,那将是有帮助的。