获取每列中某个值的频率

2024-05-14 08:50:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据帧,其中所有缺少的值都用?表示。我需要每列?的计数

我尝试的方法是:

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

结果是:

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

不应该是这样的,因为我从CSV文件中获取数据时有?


Tags: 数据方法a2a1replacea3a4计数
1条回答
网友
1楼 · 发布于 2024-05-14 08:50:07

将所有值与?进行比较,并通过True值中的sum获得发生率:

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

类似:

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

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

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

也可以用参数na_values='?'替换^{}中缺少的值?

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

out = mydata.isnull().sum()

相关问题 更多 >

    热门问题