2016-07-22 90 views
1

因此,基本上數據框中的列有Nan和float,我想用apply來計算列中的值。如果該值爲nan,則返回else,計算。大熊貓 - dataframe.apply(lambda x:x是np.nan)不起作用

但是在lambda中看起來像x是np.nan並不能給我正確的答案。這裏是一個例子

In[6]: df = pd.DataFrame({'A':[np.nan,np.nan,np.nan,np.nan,np.nan,np.nan]}) 
In[7]: df.A.apply(lambda x: x is np.nan) 

Out[7]: 
0 False 
1 False 
2 False 
3 False 
4 False 
5 False 

有沒有人知道原因?

回答

2

第一件事第一件事。爲了得到你想要的東西:

df.A.isnull() 

其次,np.nan是沒有可比性。按設計np.nan == np.nan是假的。

爲了解決這個問題,熊貓和numpy有特定的功能來測試它是否爲空。你可以:

df.A.apply(pd.isnull) 

但是,這是同樣的事情:

df.A.isnull() 
那我上面提到的