如何在 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
我有一个包含 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