2017-05-30 54 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())