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

df.shape返回行数与value_counts().sum()统计结果不一致原因咨询

差异原因说明
  • df.shape统计的是整个DataFrame的总行数,不会因为部分列存在空值(NaN)改变统计结果,所以你看到的始终是原始数据的1881行
  • pandas的value_counts()方法默认会自动忽略列中的NaN值,仅统计非空值的出现次数总和,这是两者数值不一致的核心原因
  • 结合你提供的赋值代码来看:
    你执行的赋值逻辑是仅对QX_7_1~QX_7_4四个列全部不等于-99的行保留原始值,其余不满足条件的行,这四个列的位置都会被设置为NaN。两者差值为1881-1844=37,代表当前QX_7_3列共有37个NaN值,被value_counts()默认排除在统计外。
验证与调整方法
  • 执行print(dfSPSSstudent['QX_7_3'].isna().sum()),输出的空值数量会等于37,和差值对应
  • 如果需要将空值也纳入计数统计,给value_counts()添加dropna=False参数即可:
    print(dfSPSSstudent['QX_7_3'].value_counts(dropna=False).sum())
    
    此时输出结果就会和总行数1881一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 14:57:03