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

如何从Pandas DataFrame中统计记录总数并解决count返回非数值问题

问题修正方案

你的代码错误出在对count()方法的返回值处理上:pandas里Series.count()/DataFrame.count()返回的本身就是统计非空值的整数,你在count()调用后再次用[classAttribute]取列下标,相当于对整数做索引操作,自然无法得到预期的数值结果。

修正后的可运行代码如下:

def wmc(classAttribute,attribute,training_set):
    # 统计满足条件的记录数,直接对布尔掩码求和即可
    attributeCount = (training_set[classAttribute] == attribute).sum()
    # 统计目标列的总非空记录数,直接取Series.count()的返回值即可
    total = training_set[classAttribute].count()
    print(f'{attributeCount}/{total}')
    return attributeCount/total

补充说明:

  • 如果你偏好先筛选数据集再统计行数,也可以用shape[0]实现:attributeCount = training_set[training_set[classAttribute] == attribute].shape[0],空筛选结果也会正常返回0。
  • 如果你需要统计包含空值的列总行数,把total的计算逻辑替换为training_set[classAttribute].shape[0]即可。

内容的提问来源于stack exchange,提问作者Evan Gertis

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 17:06:03