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

Python Pandas pivot_table 数据透视表调整列分组层级顺序问题问询

你需要调整透视表的列多级索引顺序即可实现需求,和Excel拖动调整字段位置的逻辑完全一致,操作步骤如下:

方法1:生成透视表后调整索引(最简便)

在你现有生成df2的代码之后,追加两行代码即可:

# 交换列的两级索引位置,将Curve(曲线名称)调整为第一层列索引
df2 = df2.swaplevel(axis=1, i=0, j=1)
# 对列索引排序,第一层按Curve名称升序,第二层按指标名称降序(保证Price排在Change前)
df2 = df2.sort_index(axis=1, level=[0,1], ascending=[True, False])

调整后输出的df2就和你预期的格式完全一致:

Curve    AAA        BBB        CCC       
       Price Change Price Change Price Change
Tenor                                        
1         11      1    21      5    31      9
2         12      2    22      6    32     10
3         13      3    23      7    33     11

方法2:创建透视表时直接指定层级顺序

你也可以在生成透视表时就通过调整索引逻辑直接得到目标格式,不需要后续调整:

# 先设置双重行索引,再把Curve维度展开为列
df2 = df.set_index(['Tenor', 'Curve'])[['Price', 'Change']].unstack('Curve')
# 调整列索引顺序,保证Curve为第一层、指标顺序符合要求
df2 = df2.swaplevel(axis=1).sort_index(axis=1, level=0)

如果后续需要导出到Excel,该多级表头会完整保留,不需要额外格式调整。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 04:36:04