Python Pivot table透视表使用方法解析


Posted in Python onSeptember 11, 2020

Pivot 及 Pivot_table函数用法

Pivot和Pivot_table函数都是对数据做透视表而使用的。其中的区别在于Pivot_table可以支持重复元素的聚合操作,而Pivot函数只能对不重复的元素进行聚合操作。

在一般的日常业务中,因为Pivot_table的功能更为强大,Pivot能做的不能做的Pivot_table都可做。所以只需要记住Pivot_table函数用法就好了。

Pivot函数的使用演示

#%%

import pandas as pd

df01 = pd.DataFrame(
  {
    "年份":[2019,2019,2019,2020,2020,2020],
    "平台":["京东","淘宝","拼多多","京东","淘宝","拼多多"],
    "销量":[100,200,300,400,500,600]
  }
)

df01

#%%

pd.pivot(df01,
     index = "年份",
     columns = "平台",
     values = "销量")

#%%

聚合后结果

Python Pivot table透视表使用方法解析

Pivot_table函数的使用演示

注释:index指定什么元素作为index显示,columns指定列,values指定统计的值。一般values都为int后者float类型的值。aggfunc为聚合函数可以指定(mean,sum,Min,Max等统计运算等函数,如果不指定默认为mean均值)

df02 = pd.DataFrame(
  {
    "年份":[2019,2019,2019,2019,2020,2020,2020,2020],
    "平台":["京东","淘宝","淘宝","拼多多","京东","淘宝","拼多多","拼多多"],
    "销量":[100,200,300,400,500,600,700,800]
  }
)
df02
#%%
#pivot_table用的很多.因为可以对重复的元素进行聚合操作.而pivot函数只能对不重复的行进行运算

pd.pivot_table(df02,
        index="年份",
        columns="平台",
        values="销量",
        aggfunc=sum #聚合函数来对销量进行运算.可以指定最大,最小,平均值等函数.默认为mean平均值
)
#%%

聚合结果

Python Pivot table透视表使用方法解析

对比结果:这里要强调一点的是,2020年平台为拼多多的数据出现了2次,而且2次的值不同。在pivot函数中是无法对这种重复平台的数据进行聚合的,但是Pivot_table则可以。

另外通过聚合函数aggfunc指定sum求和,可以把2次的值累加统计。

Pivot_table函数真实案例演示

1. 读取表格数据

#%%
df = pd.read_excel("./datas/result_datas.xlsx",
         ).convert_dtypes()  #读取数据并自动转化type
df.dtypes
#%%
df.head(3)
#%%

Python Pivot table透视表使用方法解析

2. 通过Pivot_table函数透视合并数据并对金额和数量做统计

因为涉及到敏感信息,因此服务卡卡号等敏感信息部分遮掩不显示。但是通过部分结果也可以看出是按照号码进行升序排序的

#按照自定义指定index,columns,values值
result = pd.pivot_table(df,
        index = ["姓名","服务卡卡号","明细","规格"],
        values = ["理赔金额(元)","数量"],
        aggfunc=sum
        )
result = result.sort_values("服务卡卡号") #按照指定values值排序
result

#%%

#输出到文件
result.to_excel("./datas/output_datas.xlsx")
print("Done!!!")

Python Pivot table透视表使用方法解析

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python原始套接字编程示例分享
Feb 21 Python
Python中的pygal安装和绘制直方图代码分享
Dec 08 Python
python机器学习实战之K均值聚类
Dec 20 Python
利用Python将每日一句定时推送至微信的实现方法
Aug 13 Python
Python中浅拷贝copy与深拷贝deepcopy的简单理解
Oct 26 Python
Python eval的常见错误封装及利用原理详解
Mar 26 Python
django 实现将本地图片存入数据库,并能显示在web上的示例
Aug 07 Python
Python 3.8正式发布重要新功能一览
Oct 17 Python
详解Python在使用JSON时需要注意的编码问题
Dec 06 Python
Python爬虫解析网页的4种方式实例及原理解析
Dec 30 Python
如何用python处理excel表格
Jun 09 Python
python 机器学习的标准化、归一化、正则化、离散化和白化
Apr 16 Python
Python extract及contains方法代码实例
Sep 11 #Python
python 利用zmail库发送邮件
Sep 11 #Python
浅析Python 责任链设计模式
Sep 11 #Python
详解python命令提示符窗口下如何运行python脚本
Sep 11 #Python
python实现邮件循环自动发件功能
Sep 11 #Python
Python 实现微信自动回复的方法
Sep 11 #Python
python 如何调用远程接口
Sep 11 #Python
You might like
详解PHP归并排序的实现
2016/10/18 PHP
PHP实现QQ登录的开原理和实现过程
2018/02/04 PHP
自己动手制作jquery插件之自动添加删除行功能介绍
2011/10/14 Javascript
3款实用的在线JS代码工具(国外)
2012/03/15 Javascript
js控制淡入淡出示例代码
2013/11/12 Javascript
用js+iframe形成页面的一种遮罩效果的具体实现
2013/12/31 Javascript
JavaScript类型检测之typeof 和 instanceof 的缺陷与优化
2016/01/13 Javascript
jquery判断对象是否为空并遍历对象的简单实例
2016/07/26 Javascript
Bootstrap的基本应用要点浅析
2016/12/19 Javascript
vue 封装自定义组件之tabal列表编辑单元格组件实例代码
2017/09/07 Javascript
Angular4学习笔记之根模块与Ng模块
2017/09/09 Javascript
JavaScript实现的3D旋转魔方动画效果实例代码
2019/07/31 Javascript
基于jquery ajax的多文件上传进度条过程解析
2019/09/11 jQuery
JavaScript定时器使用方法详解
2020/03/26 Javascript
vue动画—通过钩子函数实现半场动画操作
2020/08/09 Javascript
基于vue+echarts数据可视化大屏展示的实现
2020/12/25 Vue.js
[41:17]完美世界DOTA2联赛PWL S3 access vs CPG 第二场 12.13
2020/12/17 DOTA
Python实现读取邮箱中的邮件功能示例【含文本及附件】
2017/08/05 Python
对python opencv 添加文字 cv2.putText 的各参数介绍
2018/12/05 Python
Python3 sys.argv[ ]用法详解
2019/10/24 Python
解决pyCharm中 module 调用失败的问题
2020/02/12 Python
初学者学习Python好还是Java好
2020/05/26 Python
Django实现后台上传并显示图片功能
2020/05/29 Python
python进度条显示之tqmd模块
2020/08/22 Python
HTMl5的存储方式sessionStorage和localStorage详解
2014/03/18 HTML / CSS
基于 HTML5 WebGL 实现的医疗物流系统
2019/10/08 HTML / CSS
Pretty You London官网:英国拖鞋和睡衣品牌
2019/05/08 全球购物
Linux如何压缩可执行文件
2013/10/21 面试题
经理职责范文
2013/11/08 职场文书
农村婚礼证婚词
2014/01/10 职场文书
集体婚礼证婚词
2014/01/13 职场文书
民生工作实施方案
2014/05/31 职场文书
保卫工作个人总结
2015/03/03 职场文书
详解Redis主从复制实践
2021/05/19 Redis
缓存替换策略及应用(以Redis、InnoDB为例)
2021/07/25 Redis
使用CSS连接数据库的方式
2022/02/28 HTML / CSS