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

Pandas多聚合透视表实现遇阻,能否复刻Excel同款报表?

完全可以用Python实现,不用依赖Excel

你的需求用Python+pandas完全能搞定,之前pivot_table没成功大概率是这几个细节没处理好:

  • 大小写不匹配:你代码里写的是columns='STATUS',但数据里的列名是status,这会导致透视表无法正确分组
  • 没指定status的固定顺序,默认排序会乱,和目标报表要求的block、complete、on going顺序对不上
  • 未设置空值填充,导出后会出现NaN,和Excel报表的0填充逻辑不一致

给你一套完整的实现步骤:

  1. 先把status设为有序分类,保证列顺序和目标一致:
import pandas as pd

# 假设你的数据集是df
df['status'] = pd.Categorical(df['status'], categories=['block', 'complete', 'on going'], ordered=True)
  1. 生成透视表,修正列名、填充空值:
report = df.pivot_table(
    values='Sub-activity',
    index='project',
    columns='status',
    aggfunc=['sum', 'count'],
    fill_value=0
)
  1. 匹配目标报表的表头结构:
# 如果需要单层表头,合并列名(比如"block_sum"、"block_count")
report.columns = [f'{stat}_{func}' for func, stat in report.columns]

# 如果要保留双层表头,导出到Excel时自动合并单元格,和目标样式完全对齐
report.to_excel('目标报表.xlsx', merge_cells=True)

如果还要定制单元格格式(比如字体、边框),可以搭配openpyxl或xlsxwriter库进一步调整,完全能做到和Excel手动制作的报表一模一样。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 21:28:15