2017-05-30 56 views
2

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

谢谢。

回答

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是。

您可以

df.A.mask(df.A.eq('NaN')).isnull() 

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

谢谢,好像另一种选择是df.replace( '的NaN',np.nan) –

-1

从piRSquared,一个可能的方法来治疗NaN值(如果适用于您的问题),建立在mask琴弦是NaN的输入转换成列的中位数。

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