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

如何用Pandas+Python调整透视表列层级,合并同型号列头

调整Pandas透视表的列层级顺序

问题场景

你有如下汽车销售数据:

NameModelAmountPrice
audiq5118000
audiq7522000

使用默认pivot_table生成的透视表列层级为**[数值类型(Amount/Price), 型号(Model)],但你需要将层级调整为[型号(Model), 数值类型(Amount/Price)]**,并让同型号的列头合并显示。

解决方案

在生成透视表后,通过swaplevel交换列的层级,再用sort_index对列进行排序,即可实现目标格式:

import pandas as pd

# 读取Excel数据
data = pd.read_excel("cars.xlsx")
# 生成初始透视表
pivot_data = pd.pivot_table(
    data,
    values=['Amount', 'Price'],
    index='Name',
    columns='Model'
)
# 交换列的两个层级,将Model放到第一层
pivot_data = pivot_data.swaplevel(axis=1)
# 按列层级排序,确保同型号的列连续显示
pivot_data = pivot_data.sort_index(axis=1)

# 查看结果
print(pivot_data)

最终输出格式

执行后得到的透视表结构如下:

q5q7
AmountPrice
audi118000

原理说明

  • swaplevel(axis=1):交换列MultiIndex的两个层级,将原来的**[数值类型, 型号]改为[型号, 数值类型]**
  • sort_index(axis=1):按列的层级排序,让相同型号的列集中在一起,实现列头的合并显示

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 08:03:13