2015-04-01 20 views
1

我有一個有83列4000行的熊貓數據框。我打算將這些數據用於邏輯迴歸,因此希望將我的列縮小到那些缺少數據丟失量最少的列。如何獲得熊貓數據幀列中的NaN迷戀頻率

爲此,我正在考慮根據NaN觀測的頻率對它們進行排名。我嘗試了一些東西,如

econ_balance["BG.GSR.NFSV.GD.ZS"].describe() 
econ_balance["BG.GSR.NFSV.GD.ZS"].value_counts 
econ_balance["BG.GSR.NFSV.GD.ZS"]["NaN"] 
econ_balance["BG.GSR.NFSV.GD.ZS"][NaN] 

沒有一個似乎工作。我總是嘗試使用Google搜索來查看這個問題是否已經回答,但沒有運氣。

在此先感謝您的幫助

喬希

+3

df.isnull()。sum() http://stackoverflow.com/questions/26266362/how-to-count-the-nan-values-in-the-column-in-panda-data-框架 – 2015-04-01 19:13:43

+0

Jeez我突然獲得了立即重複的近距離投票 – EdChum 2015-04-01 19:18:53

回答

3

如果你正在尋找只是計數NaN值:

In [2]: 

df = pd.DataFrame({'a':[0,1,np.NaN,np.NaN,np.NaN],'b':np.NaN, 'c':[np.NaN,1,2,3,np.NaN]}) 
df 
Out[2]: 
    a b c 
0 0 NaN NaN 
1 1 NaN 1 
2 NaN NaN 2 
3 NaN NaN 3 
4 NaN NaN NaN 
In [6]: 

df.isnull().astype(int).sum() 
Out[6]: 
a 3 
b 5 
c 2 
dtype: int64 

編輯 @CTZhu指出類型轉換是不必要的:

In [7]: 

df.isnull().sum() 
Out[7]: 
a 3 
b 5 
c 2 
dtype: int64 
+1

擊敗我,順便說一句,我想你可以跳過'astype(int)'部分。 – 2015-04-01 19:15:24

+0

感謝您的幫助! – Josh 2015-04-01 19:30:47