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

如何解决pandas groupby聚合时嵌套重命名报错并自定义计数列名

Pandas groupby 聚合自定义列名解决方案

你遇到的报错是因为 pandas 0.25及以上版本已经废弃了嵌套字典的agg列重命名语法,所以原写法会触发重命名冲突错误,可采用以下几种方案实现需求:

方案1:官方推荐的Named Aggregation写法(适配所有新版pandas)

直接在agg方法内通过自定义列名 = (聚合目标列, 聚合方法)的语法完成统计+重命名:

df_temp = df.groupby(['_SubjectId', 'QuestionTypeId'], as_index=True).agg(
    question_type_count = ('QuestionTypeId', 'count')
)

该写法支持同时设置多个聚合规则,需要新增其他统计指标时直接加参数即可,比如同时统计计数和去重计数:

df_temp = df.groupby(['_SubjectId', 'QuestionTypeId'], as_index=True).agg(
    question_type_count = ('QuestionTypeId', 'count'),
    unique_question_count = ('QuestionTypeId', 'nunique')
)

方案2:先统计后重命名(兼容所有pandas版本)

保留你原本可运行的统计逻辑,后续通过rename方法修改列名即可:

df_temp = df.groupby(['_SubjectId', 'QuestionTypeId'], as_index=True)['QuestionTypeId'].count().rename('question_type_count')

如果后续需要把分组索引转为普通列,只需要追加.reset_index()即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 11:45:04