无法在pandas数据帧中处理NaN

时间:2017-05-30 23:44:03

标签: python pandas

我有一个带有变量的pandas数据帧,当我打印它时,它显示为主要包含NaN。它是dtype对象。但是,当我运行isnull函数时,它返回" FALSE"到处。我想知道为什么NaN值没有被编码为缺失,并且如果有任何方法将它们转换为正确处理的缺失值。

谢谢。

2 个答案:

答案 0 :(得分:2)

您的NaN是字符串

df = pd.DataFrame(dict(A=['Not NaN', 'NaN', np.nan]))
print(df)

         A
0  Not NaN
1      NaN
2      NaN

缺少什么

print(df.isnull())

       A
0  False
1  False
2   True

字符串不会丢失,np.nan是。

您可以使用

mask字符串
df.A.mask(df.A.eq('NaN')).isnull()

0    False
1     True
2     True
Name: A, dtype: bool

答案 1 :(得分:-1)

在piRSquared的基础上,处理NaN值的一种可能方法(如果适用于您的问题)是将NaN输入转换为列的中位数。

df = df.fillna(df.mean())