首页 > 解决方案 > 获取每列中某个值的频率

问题描述

我有一个数据框,其中所有缺失值都用?. ?我需要每列的计数。

我尝试的一种方法是:

mydata.replace('?','')
mydata.isnull().sum()

返回:

A1     0
A2     0
A3     0
A4     0
A5     0
A6     0
...
A16    0
dtype: int64

这不应该是这种情况,因为?在 CSV 文件中有我从中获取数据的。

标签: pythonpandas

解决方案


将所有值与of进行比较?并获得出现次数:sumTrue

out = (mydata == '?').sum()

相似的:

out = mydata.eq('?').sum()

在您的解决方案中,首先应替换?NaN然后链接在一起:

out = mydata.replace('?',np.nan).isnull().sum()

也可以通过参数替换?为缺失值:read_csvna_values='?'

mydata = pd.read_csv(file, na_values='?')

out = mydata.isnull().sum()

推荐阅读