如何使用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
相关产品推荐
相关产品推荐

