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

如何使用Python pandas将Dataframe转换为对应Excel样式透视表

用pandas复现Excel数据透视表效果操作步骤

前提准备

首先确保你的环境已经安装pandas库,未安装可先执行安装命令:
pip install pandas

操作步骤

  • 第一步:导入pandas库
import pandas as pd
  • 第二步:读取原始数据表到DataFrame
    如果原始数据存储为Excel文件,执行以下代码,文件路径替换为你自己的本地路径:
# 读Excel文件
df = pd.read_excel("你的原始数据文件路径.xlsx")
# 如果是csv格式,用以下代码
# df = pd.read_csv("你的原始数据文件路径.csv")
  • 第三步:调用pivot_table方法生成透视表
    根据你提供的目标透视表样式,对应参数配置如下,字段名可根据你实际的原始表字段调整:
pivot_result = pd.pivot_table(
    df,
    # 行维度,对应Excel透视表的行区域
    index=["区域", "销售渠道"],
    # 列维度,对应Excel透视表的列区域
    columns="产品类别",
    # 要聚合的数值字段
    values="销售额",
    # 聚合方式,求和对应sum,计数用count、平均值用mean
    aggfunc="sum",
    # 空值填充为0,避免出现NaN
    fill_value=0,
    # 开启末尾总计行/列,和Excel透视表的总计功能一致
    margins=True,
    # 总计行/列的名称
    margins_name="总计"
)
  • 第四步:查看生成的透视表
    在Jupyter Notebook中直接运行变量名即可渲染表格:
    pivot_result

如果需要把透视表导出到本地Excel,可执行以下代码:

pivot_result.to_excel("透视表结果.xlsx")

常用调整说明

  • 如果需要同时按多种方式聚合,可将aggfunc参数配置为列表,例如aggfunc=["sum", "count"]即可同时展示销售额总和和订单数
  • 如果不需要总计,直接删除margins和margins_name两个参数即可
  • 如果你的原始表字段名和示例不一致,对应替换index、columns、values参数里的字段名即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 16:09:00