如何重命名Pandas groupby结果中的重复索引列与统计列
解决方法
方法一:分组时直接指定索引与列名
在groupby操作中,直接对提取的年、月字段重命名,同时给统计结果指定列名,一步到位得到目标格式:
count_result = DF.groupby( [ DF['Application Date'].dt.year.rename('Application Year'), DF['Application Date'].dt.month.rename('Application Month') ] )['Application ID'].count().rename('No of Applicants') print(count_result)
说明
- 用
rename()给提取的年、月Series设置自定义名称,替代默认的"Application Date"索引名 - 调用
count()统计有效申请ID的数量(和size()效果一致,更贴合业务语义) - 最后通过
rename()将统计列名改为"No of Applicants"
方法二:对已生成的分组结果修改
如果已经得到了初始分组结果,可通过修改索引和列名调整格式:
# 执行初始分组 initial_result = DF.groupby( [DF['Application Date'].dt.year, DF['Application Date'].dt.month] ).size() # 修改多级索引的名称 initial_result.index = initial_result.index.set_names(['Application Year', 'Application Month']) # 重命名统计列 final_result = initial_result.rename('No of Applicants') print(final_result)
拓展:转为普通DataFrame
若需要将结果转为带列名的DataFrame(而非Series),可追加reset_index():
final_df = final_result.reset_index() print(final_df)
内容的提问来源于stack exchange,提问作者Vinita
相关产品推荐
相关产品推荐

