You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何统计Pandas DataFrame全表中值为'?'的元素总数?

统计Pandas DataFrame内所有取值为"?"的元素总数

你现有的手写循环代码仅针对单列做判断,既无法覆盖全表统计场景,在大型DataFrame上运行效率也很低,直接用Pandas内置的向量化方法即可快速实现需求。


最简全表统计实现

不需要写逐行遍历的循环,两行代码就能算出全表"?"的总数量:

# 逐元素判断是否为"?",两次求和得到全表总计数
total_question_mark = (df == "?").sum().sum()
print(f"全表'?'总数量:{total_question_mark}")

实现逻辑:

  • df == "?"会生成和原DataFrame尺寸完全一致的布尔矩阵,元素为True代表对应位置值是"?",否则为False
  • 第一次.sum()会按列统计每列中True的个数,返回以列名为索引的统计结果Series
  • 第二次.sum()对单列统计结果求和,得到全表总数量

额外场景:查看每列的"?"分布

如果需要同时知道每一列分别有多少个"?",可以先按列统计再算总量:

# 逐列统计"?"数量
count_by_column = (df == "?").sum()
print("各列'?'数量:")
print(count_by_column)

# 总数量直接对列统计结果求和
total = count_by_column.sum()

特殊情况适配

如果表内的"?"可能带前后空格(比如" ?"、"? "这类脏数据),可以先对字符串列做清洗再统计,避免漏判:

# 仅对object类型(字符串类)的列做去空格处理,再统计
clean_df = df.apply(lambda col: col.str.strip() if col.dtype == "object" else col)
total_question_mark = (clean_df == "?").sum().sum()

内容的提问来源于stack exchange,提问作者Adita Rita

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 02:57:18