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