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

pandas pivot_table按行列分组统计计数出现ValueError如何解决

报错原因

你遇到的ValueError: Grouper for 'Age Grp' not 1-dimensional错误,核心是你同时将Age Grp设为了行索引和统计值字段,参数组合触发了维度匹配冲突。另外你的需求是统计不同Age Grp在对应月份的出现次数,不需要用pd.Series.nunique做唯一值统计,用常规计数逻辑即可。

实现方案

方案1:调整pivot_table参数

修改参数即可得到预期结果:

pivot1 = pd.pivot_table(df,
                        index="Age Grp",
                        columns="Mth",
                        aggfunc="size",
                        fill_value=0)

参数说明:

  • 移除values参数,用aggfunc="size"直接统计分组后的行数,就是你需要的计数结果
  • fill_value=0会把不存在的分组组合填充为0,匹配你的输出要求

方案2:更简便的crosstab实现

针对这种交叉计数场景,用crosstab代码更简洁,默认输出就符合要求:

pivot1 = pd.crosstab(index=df["Age Grp"], columns=df["Mth"])

两种方案跑示例数据得到的结果完全和你期望的一致:

Age Grp1510
0-4101
5 -9010
10-14010

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 12:15:01