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

如何将Pandas GroupBy生成的行多层索引转换为列多层索引?

嘿,这事儿用Pandas的unstack()方法就能轻松搞定!

你现在的DataFrame是把year和month作为行的多层索引,要转成以month为行索引、year为列上层索引的结构,核心就是把行索引里的year层级“转移”到列索引上。

假设你的分组后数据框名叫grouped_df,直接执行下面的代码就行:

# 将year从行索引的外层,转换为列的上层索引
result_df = grouped_df.unstack(level='year')

执行完之后,你得到的result_df就是你想要的结构:列的第一层是年份(2014、2015),每个年份下面对应avg、total、unique三个子列;行索引则是month,完美匹配你的目标格式。

举个实际输出的例子,就是这样的:

2014                          2015
          avg      total      unique    avg      total      unique
month
1      241.0  64.668050  15585.00    57.0  54.562982   3110.09
2      358.0  65.197877  23340.84   140.0  76.007143  10641.00
3      347.0  60.336715  20936.84    85.0  79.929412   6794.00
4      179.0  61.071788  10931.85    89.0  70.000000   6230.00

如果你的行索引层级顺序不一样(比如month是外层),那只要调整unstack()里的level参数就行——本质就是指定要把哪个行索引层级转成列索引。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 12:12:43