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

如何在pandas pivot_table中重命名aggfunc对应的聚合函数名称?

重命名pivot_table聚合函数的名称

先看你已有的数据和透视表基础代码:

import pandas as pd
import numpy as np

data = {
    'Division': ['A', 'A', 'B', 'B'],
    'Perfomer': ['X', 'Y', 'X', 'Y'],
    'Completed on time': ['Yes', 'No', 'Yes', 'No'],
    'Values': [10, 20, 30, 40]
}
df = pd.DataFrame(data)

要将透视表中np.sum重命名为Sum of labor costs、len重命名为Number of tasks,有两种常用实现方式:

方法一:创建透视表时直接指定聚合函数名称

通过给aggfunc传入嵌套字典,明确指定目标列的聚合函数及自定义名称:

df_pivot = pd.pivot_table(df, 
                          values=['Values'],
                          index=['Division', 'Perfomer'],
                          columns=['Completed on time'],
                          aggfunc={'Values': {'Sum of labor costs': np.sum, 'Number of tasks': len}},
                          margins=True,
                          fill_value=0)

这种方式会直接生成带有自定义名称的透视表层级,一步到位。

方法二:创建后修改透视表的列层级名称

如果已经生成了原透视表,可以通过修改列MultiIndex的层级名称来调整:

# 先生成原透视表
df_pivot = pd.pivot_table(df, values=['Values'],
                          index=['Division', 'Perfomer'],
                          columns=['Completed on time'],
                          aggfunc=[np.sum, len],
                          margins=True,
                          fill_value=0)

# 修改第0层级的名称(对应聚合函数的层级)
df_pivot.columns = df_pivot.columns.set_levels(['Sum of labor costs', 'Number of tasks'], level=0)

两种方法都能达到需求效果,可根据实际场景选择。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 13:50:03