python - 获取每列中某个值的频率
问题描述
我有一个数据框,其中所有缺失值都用?
. ?
我需要每列的计数。
我尝试的一种方法是:
mydata.replace('?','')
mydata.isnull().sum()
返回:
A1 0
A2 0
A3 0
A4 0
A5 0
A6 0
...
A16 0
dtype: int64
这不应该是这种情况,因为?
在 CSV 文件中有我从中获取数据的。
解决方案
将所有值与of进行比较?
并获得出现次数:sum
True
out = (mydata == '?').sum()
相似的:
out = mydata.eq('?').sum()
在您的解决方案中,首先应替换?
为NaN
然后链接在一起:
out = mydata.replace('?',np.nan).isnull().sum()
也可以通过参数替换?
为缺失值:read_csv
na_values='?'
mydata = pd.read_csv(file, na_values='?')
out = mydata.isnull().sum()
推荐阅读
- excel - 多重匹配多重返回excel公式
- javascript - tensorflow js:未捕获的错误:检查时出错:预期 conv2d_input 有 4 个维度,但得到了形状为 [28,28,1] 的数组
- material-ui - 在 Select [Material UI] 中更改所选项目的颜色
- c# - 如何将数据从字符串生成器值传递到 Excel 工作表
- c# - 修剪两个字符之间的字符
- c# - 为什么实现 INotifyPropertyChanged 可以避免 WPF 中的内存泄漏?
- sql - 使用 GROUP BY 在 SQL Server 中创建视图
- sql-server - SQL Server 的报表服务器是否有图像?
- android - 如何检测android用户使用的自动点击器应用程序?
- reactjs - 为什么我们不能直接在 React 中使用 svg 或任何其他图像文件?