如何在 pandas 数据框列中获取 NaN 观察值的频率

How to get the frequency of NaN obsevations in a pandas dataframe column

我有一个包含 83 列和 4000 行的 pandas 数据框。我打算将这些数据用于逻辑回归,因此希望将我的列缩小到那些缺失数据最少的列。

为此,我考虑根据 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]

None 其中似乎有效。我总是尝试用谷歌搜索看看这个问题以前是否已经回答过,但没有成功。

在此先感谢您的帮助

乔希

如果您只想计算 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