Python 获取每列中某个值的频率

Python 获取每列中某个值的频率,python,pandas,Python,Pandas,我有一个数据框,其中所有缺少的值都用?表示。我需要每列的?计数 我尝试的一种方法是: mydata.replace('?','') mydata.isnull().sum() 这将返回: A1 0 A2 0 A3 0 A4 0 A5 0 A6 0 ... A16 0 dtype: int64 这不应该是这种情况,因为在我获取数据的CSV文件中有?。将所有值与?进行比较,并通过的和的

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

我尝试的一种方法是:

mydata.replace('?','')
mydata.isnull().sum()
这将返回:

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

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

将所有值与
进行比较,并通过
值获得发生率:

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()