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

如何在Pandas中按另一列分类透视表并调整结果层级顺序?

解决Pandas透视表层级顺序调整问题

没问题!你想要让TYPE层级在count/sum/mean之后优先展示(也就是让TYPE作为主分组层级,每个TYPE下依次对应聚合指标),其实只需要对转置后的透视表结果调整MultiIndex的层级顺序并重新排序就能实现。

具体操作步骤

  1. 先执行你原本的透视表代码,得到初始结果:
import pandas as pd

# 假设a是你的原始DataFrame
result = a.pivot_table(index=['DT'], columns=['TYPE'], values='AMOUNT', aggfunc=['count','sum','mean']).T
  1. 交换行索引的层级顺序,并重新排序:
# 交换第0层(聚合函数)和第1层(TYPE)的位置,再按索引排序让结构更规整
result = result.swaplevel(0, 1).sort_index()

示例演示

假设你的原始数据是这样的:

data = {
    'DT': ['2023-01-01', '2023-01-01', '2023-01-02', '2023-01-02', '2023-01-01'],
    'TYPE': ['A', 'B', 'A', 'B', 'A'],
    'AMOUNT': [100, 200, 150, 250, 300]
}
a = pd.DataFrame(data)

执行原始代码得到的初始结果是:

2023-01-01  2023-01-02
count TYPE A            2.0          1.0
           B            1.0          1.0
sum   TYPE A          400.0        150.0
           B          200.0        250.0
mean  TYPE A          200.0        150.0
           B          200.0        250.0

调整层级后的结果就会变成你想要的结构——TYPE作为主层级,每个TYPE下依次展示count、sum、mean:

2023-01-01  2023-01-02
TYPE A count            2.0          1.0
       sum            400.0        150.0
       mean           200.0        150.0
     B count            1.0          1.0
       sum            200.0        250.0
       mean           200.0        250.0

这样就完美实现了TYPE层级优先展示的需求啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 09:07:17