一篇文章教你用python玩转数据透视表PivotTable

用python做数据透视表 在Python中,可以使用pandas库来进行数据透视表的操作。下面是一个简单的示例代码: 假设有一个名为"sales_data.csv"的销售数据表格,其中包含了销售日期、销售员、产品类型、销售数量和销售金额等字段。现在我们需要使用数据透视表来统计每个销售员每种产品类型的销售数量和销售金额总和。 import pandasas pd # 读取数据文件 sales_data = pd.read_... 阅读详情
AI摘要

本文主要介绍Excel数据透视表的常见操作,包括创建数据透视表、配置行列字段、添加列字段、配置“值字段”等,还涉及读取透视表内容、筛选和排序透视表等操作,基本涵盖了数据透视表的基本操作。

目录

创建数据透视表

配置行列字段

添加列字段

配置“值字段”

关闭分类汇总

设置表格形式显示

读取数据来透视表内容

读取rowfield的内容

读取value field的内容

筛选透视表

添加行标签筛选

添加筛选标签(Pagefield)

排序透视表


本文主要介绍excel的数据透视表常见的操作。基本上涵盖了基本操作。

下面,先看看我们到处理的表格中的数据:

e37c517795ff12885b068693a7a27e4b.png

创建数据透视表

先打开一个准备数据的excel文件,然后插入一个新的数据透视表。
import win32com.client as win32
from win32com.client import constants
import os
xls_app = win32.gencache.EnsureDispatch('Excel.Application')
curr_path = os.getcwd()
## 打开excel文件
wb = xls_app.Workbooks.Open(r'%s\数据透视表示例.xlsx'%curr_path)
xls_app.Visible = True # 显示excel界面,默认为隐藏
## 
ws = wb.Worksheets(1)

## 添加透视表的数据源
SrcData = ws.Range("A1:D6")
## 添加一个新的sheet,用于存放生成的透视表
pt_sht = wb.Worksheets.Add()
pt_sht.Name = "透视表"
StartPvt = pt_sht.Range("A1") ## 设置透视表插入位置
## 创建数据透视表
pt_cache = wb.PivotCaches().Create(SourceType=constants.xlDatabase, SourceData=SrcData)
pt = pt_cache.CreatePivotTable(TableDestination=StartPvt,  TableName="PivotTable1")

到此,可以在excel中看到如下效果。

530adb5e00311e2e7fc550d09c061dab.png

配置行列字段

## 添加行字段

pt.AddFields(RowFields=["部门","年龄"])

01ff98430a04901720b684fd92538948.png

添加列字段

pt.AddFields(ColumnFields=["部门","年龄"])

配置“值字段”

## 添加值字段 
pt.AddDataField(Field=pt.PivotFields("姓名"))

c1951637e98e69129ac306da10badcb4.png

关闭分类汇总

遍历每个域,逐个关闭分类汇总
for i in range(1,pt.RowFields.Count + 1):
	field = pt.PivotFields(i)
	subtotal_tuple = (field.Subtotals)
	subtotal_list = list(subtotal_tuple)
	for k in range(len(subtotal_tuple)):
		subtotal_list[k] = False
	field.Subtotals = subtotal_list

执行效果:

adcb5d0098b84bd93924b3ca15fd8428.png

设置表格形式显示

# 设置为表格形式显示 
pt.RowAxisLayout (constants.xlTabularRow)

2cf279628d0567f71503a31041e1dc3b.png

读取数据来透视表内容

读取rowfield的内容

可以直接通过读取sheet内容来读取透视表,还可以通过透视表的对象来读取。这里展示的是通过后者的方式

for pvtField in pt.RowFields:
	print(pvtField.Name)
	for item in pvtField.PivotItems():
		print('    '+item.Name)

示例中pvtField.Name为行field的标题栏,item.Name为行field的成员内容

执行结果为:

部门 
        采购 
        市场 
        行政 
        研发 
年龄 
        21 
        22 
        24 
        30 
        33 
        35 
        44

读取value field的内容

可以使用PivotValueCell直接读取透视表“值”的内容

print(pt.PivotValueCell(1, 1).Value)

这是读取第一个value单元格的内容,执行结果为:

1.0

筛选透视表

添加行标签筛选

pt_filter = pt.PivotFields("年龄").PivotFilters.Add2(Type=constants.xlCaptionIsLessThan,Value1="28")

参数还是写为立即数(即Valued=28),也OK。看起来对这个参数的数据类型比较宽泛。

筛选的效果:

b619a21f93d04257d5bcd3db577a9707.png

注意:过滤类型种有一个关于Value的筛选类型,这个是试用于“值筛选”的功能。

添加筛选标签(Pagefield)

c87065d030111baeb37c1ae7880bdd14.png

示例代码:

pt.PivotFields("日期").Orientation = constants.xlPageField

设置筛选值:

pt.PivotFields("日期").CurrentPage = '10/11/2022'

排序透视表

# 排序 
pt.ClearAllFilters()# 关闭所有的筛选 pt.PivotFields("年龄").AutoSort(Order=constants.xlAscending, Field='年龄')# 按照年龄升序排序
排序效果:

4636de661733c5afe0e4753aa396e7c1.png

排序效果使用的autosort方法的参数如下图:

2f75c5a917ac0f5a3ecc8d8da405d137.png

【python数据分析基础】—pandas透视表和交叉表 透视表是excel和其他数据分析软件中一种常见的数据汇总工具。它是根据一个或多个键对数据进行聚合,并根据行和列上的分组键将数据分配到各个矩形区域中。 阅读详情

相关推荐

【Python常用函数】一文让你彻底掌握Python中的pivot_table函数

python中的pivot_table函数详解

阿黎逸阳的博客 3389

python入门——Pandas透视表(pivot_table)

透视表是一种可以对数据动态排布并且分类汇总的表格格式。pivot_table是pandas中数据透视表的函数。本文简单实践一下pivot_table()函数的使用。

weixin_49249463的博客 2万+

渲染TA实战:冰面效果制作分享

这里画一张图:我们可以看到,如果深度图的范围没有进过缩放,那就是0-1,但是归一化的-viewDir的向量长度为1,如果-viewDir不和表面垂直(这是绝大多数的情况),那么viewDir.z的分量就是一个不定值,我们不好确定需要走多少步,viewDir才能和底面相交。然后我们需要冰面的Alpha图:因为冰是透明物体,所以相对于Albedo,我们更需要的是一张冰面裂纹的蒙版图,这张图需要记录冰面的裂纹走向和深浅、冰封的气泡、以及因为压力或气体等原因产生的类似雾的效果。

qq_41166022的博客 1027

Python如何构造数据透视表

数据透视表是一种分类汇总数据的方法。在 Python 中,我们可以使用 Pandas 库中的pivot_table 函数来创建和操作数据透视表,相比Excel,Python可以更多更快的处理数据

白帽阿叁的博客 3248

SpringBoot项目实战:5分钟搞定豆包大模型API接入(附完整代码)

本文详细介绍了如何在SpringBoot项目中快速集成豆包大模型API,仅需5分钟即可完成。从环境准备、依赖配置到核心服务封装和控制器层实现,提供了完整的代码示例和实战技巧,帮助开发者高效接入大模型能力,提升智能客服等应用的开发效率。

weixin_30566063的博客 439

从数据到图片:手把手构建FMCW雷达人体行为识别数据集(行走、跌倒、喝水等6类动作)

本文详细解析了如何利用FMCW雷达构建人体行为识别数据集,涵盖行走、跌倒、喝水等6类动作。通过多普勒特征可视化、图像标准化处理和自动化流水线设计,将原始雷达信号转化为高质量时频图像数据集,为智能家居和健康监护等应用提供可靠数据支持。

weixin_30706691的博客 384

揭秘jupyter_pivottablejs工作原理:Python与PivotTable.js的无缝集成

jupyter_pivottablejs是一款强大的开源工具,它实现了Python与PivotTable.js的无缝集成,为Jupyter/IPython Notebook用户提供了直观的拖放式数据透视表和图表功能。通过简单的Python代码调用,用户就能在Notebook环境中轻松创建交互式数据可视化报表,极大提升了数据分析效率。 ## 核心架构:三层桥梁连接Python与Web前端 ###

gitblog_00155的博客 758

NeurIPS‘25新研究!PINN+GNN强强联手,模型精度飙升50%!

物理图神经网络研究取得重大进展!UCLA团队提出的PhysGNN架构在NeurIPS'2025上引发关注,该模型成功融合PINN的物理约束优势与GNN的图结构处理能力,解决了工程仿真中的关键瓶颈。研究显示,PhysGNN在城市热网预测中误差降低42%,电网负荷模拟的物理规则违反率下降68%。同步解析的SyncTREE模型则创新性地将RC树物理特性融入GNN,实现毫秒级IC时序分析;HSPGNN模型通过嵌入偏微分方程,显著提升多变量时间序列填补精度。

m0_73122726的博客 1022

Python-如何使用PivotTable(透视表)

也许大多数人都有在Excel中使用数据透视表的经历,其实Pandas也提供了一个类似的功能,名为pivot_table。虽然pivot_table非常有用,但是我发现为了格式化输出我所需要的内容,经常需要记住它的使用语法。所以,本文将重点解释pandas中的函数pivot_table,并教大家如何使用它来进行数据分析。 如果你对这个概念不熟悉,wikipedia上对它做了详细的解释。顺便说一下,你知道微软为PivotTable(透视表)注册了商标吗?其实以前我也不知道。不用说,下面我将讨论的透视表并不是P

youyouxiong的博客 5930

鸿蒙ijkplayer播放器调优实战:从卡顿掉帧到流畅播放RTSP,我都调了哪些参数?

本文深入解析鸿蒙平台上ijkplayer播放器优化RTSP流媒体播放的关键参数,解决卡顿、掉帧等问题。通过调整缓冲区管理、帧处理策略和网络超时设置,实现流畅播放体验,特别适用于监控和直播等高实时性场景。

weixin_29304021的博客 241

Echats-wordcloud 文字云图的踩坑点【Unknown series wordCloud】

一直都是报 【ECharts Unknown series wordCloud】这玩意可能要刷脸,祝你好运吧~

Sky_Bug的博客 2418

python制作数据透视表pivot_table方法详解

数据透视表(Pivot Table)是一种交互式的表,可以进行某些计算,如求和与计数等。所进行的计算与数据跟数据透视表中的排列有关。 之所以称为数据透视表,是因为可以动态地改变它们的版面布置,以便按照不同方式分析数据,也可以重新安排行号、列标和页字段。每一次改变版面布置时,数据透视表会立即按照新的布置重新计算数据。另外,如果原始数据发生更改,则可以更新数据透视表。 函数详解 df.pivot_table(values=None, index=[列名],columns=[列名], aggfunc='me

Norsaa的博客 7603

AI + 药物临床试验研发赛道

研究日期:2026-07-09 | 研究主题:AI + 药物临床试验研发赛道 | 聚焦岗位:Agent 平台架构师 / AI 工程架构师。

AI天才研究院 146

python做数据透视表,使用python在Excel中创建数据透视表

I wrote the following code to create a pivot table in an existing excel sheet:import win32com.client as win32win32c = win32.constantsimport sysimport itertoolstablecount = itertools.count(1)def addpiv...

weixin_42131628的博客 942

R语言线性混合模型(LMM)分析

它将数据表示为固定效应和随机效应的线性组合,其中固定效应表示总体均值的影响,随机效应表示个体间的随机差异。LMM的目标是通过最大似然估计或最小二乘估计来估计模型中的固定效应和随机效应的参数。LMM结合了固定效应和随机效应,能够同时考虑个体间和个体内的变异,并适用于具有相关性的数据。目前在使用LMM的R语言包中,较常用的是lme4和nlme包,它们提供了丰富的函数和工具来拟合和分析线性混合模型。面板数据分析:LMM适用于分析具有面板结构的数据,如经济学中的面板数据或教育研究中的学生评估数据。

走向CTO的路上... 2969

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

python 生成数据透视表后写入 Excel

接 https://mp.youkuaiyun.com/mdeditor/103382996#。 如上贴中,得到数据透视表后,我们如何写入Excel呢? 如果我们将得到的返回值直接写入Excel,会发现,会出现丢失第一列(索引列)的数据。 解决方案: 方法1、将返回值转换成字符串,代码如下: # res 为上一篇帖子的返回值。 a = str(res).split('\n') newlist = [] for...

star565的博客 5659

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Jupyter PivotTable.js 终极指南:10个常见问题快速解决方案

Jupyter PivotTable.js 是一个强大的 Python 模块,专为 Jupyter/IPython Notebook 设计,提供拖放式数据透视表和图表功能,基于 PivotTable.js 库构建。这个工具让数据分析和可视化变得前所未有的简单和直观!🚀 ## 🔧 安装问题解决方案 ### pip 安装失败怎么办? 最常见的安装问题通常与网络环境或依赖关系有关。如果遇到 `p

gitblog_00151的博客 916

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

【xlwings api语言参考】Range.PivotTable 属性

功能: 返回一 个 PivotTable 对象,该对象代表包含指定单元格区域左上角的数据透视表。 语法: rng.PivotTable rng是一个表示 Range 对象的变量。 示例: 本示例将 Sheet1 上数据透视表的当前页设定为名为 Canada 的页面。 rng=sht.api.Range('C3') pvt=rng.PivotTable pvt.PivotFields('Country').CurrentPage='Canada' ...

DataLab的博客 462

Python数据分析——Pandas基础:dt.datetime与pivot_table()数据透视表

pandas——数据透视表+时间提取

pppgu‘s blog 3584

利用Python实现数据透视表和交叉表

1、透视表 pivot table   pd.pivot_table(data,values=None,index=None,columns=None,aggfunc='mean' ,fill_value=None,margins=False,dropna=True,margins_name='ALL') 其中, data:DataFrame对象 values:要聚合的列或列的列表 in...

浅笑古今的博客 4507

如何利用数据透视表统计某一列数据中每个数据出现的个数

案例:利用数据透视表统计a,b,c,d每个字母出现的次数

AI_ShortLegCork的博客 4739

python做数据透视表_Python Pandas Pivot_Table 如何在Python中实现数据透视表功能

数据透视表(Pivot Table)是一种交互式的表,可以进行某些计算,如求和与计数等,其所进行的计算与数据跟数据透视表中的排列有关。在Excel中我们可以轻而易举地实现数据透视表功能,“插入——数据透视表——拖动选项——完成透视表”。那么在Python中也能实现数据透视表功能吗?答案是肯定的。本文旨在介绍Python Pandas中实现数据透视表功能的函数Pivot_table,并用实例解析它的...

weixin_39750195的博客 1682

实战Kaggle泰坦尼克数据集,玩转Pandas透视表 | 强烈推荐

数据透视表(Pivot Table)是常用的数据汇总工具,可以通过控制数据的排列灵活地进行数据分析,进而挖掘出数据中最有价值的信息。掌握数据透视表,已经成为数据分析从业者...

算法channel 830

python数据透视表怎么存下来_Python3.9大熊猫将数据透视表框架保存为适当的csv

我有这个csv:Label,Visits,Actions,Maximum actions in one visit,Total time spent by visitors (in seconds),Bounces,Visits with Conversions,Unique visitors (daily sum),Users (daily sum),Metadata: segment,Meta...

weixin_31056947的博客 1168

pivottablejs|在Jupyter中尽情使用数据透视表!

公众号后台回复“图书“,了解更多号主新书内容作者:刘早起早起来源:早起Python大家好,在之前的很多介绍pandas与Excel的文章中,我们说过「数据透视表」是Excel完胜pand...

数据森麟 1465

python数据透视表对行数统计_python – 如何在数据透视表上添加总和和计数

这是我的数据集customer_id hour size1 0 11 1 182 1 7这是我的代码table = a.pivot_table(index=['customer_id'],columns='hour',fill_value=0,values='size')这就是我所...

weixin_39707693的博客 2181
上一篇: python在PPT中插入表格和设置格式
下一篇: 让VBA从excel文件中独立出来
flashman911
博客等级 码龄15年 225粉丝 26原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

flashman911

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值