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之不要红头文件(1)
Sep 28 Python
Python基本语法经典教程
Mar 11 Python
python 循环while和for in简单实例
Aug 16 Python
Python使用matplotlib绘制随机漫步图
Aug 27 Python
对python3中, print横向输出的方法详解
Jan 28 Python
详解Numpy中的数组拼接、合并操作(concatenate, append, stack, hstack, vstack, r_, c_等)
May 27 Python
Python pandas实现excel工作表合并功能详解
Aug 29 Python
python 计算两个列表的相关系数的实现
Aug 29 Python
python 协程 gevent原理与用法分析
Nov 22 Python
关于Numpy中的行向量和列向量详解
Nov 30 Python
kafka-python 获取topic lag值方式
Dec 23 Python
python 下载文件的几种方式分享
Apr 07 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
几种显示数据的方法的比较
2006/10/09 PHP
PHP 读取大文件并显示的简单实例(推荐)
2016/08/12 PHP
深入解析Laravel5.5中的包自动发现Package Auto Discovery
2017/09/13 PHP
thinkPHP框架实现多表查询的方法
2018/06/14 PHP
PHP大文件分片上传的实现方法
2018/10/28 PHP
ext checkboxgroup 回填数据解决
2009/08/21 Javascript
javascript 哈希表(hashtable)的简单实现
2010/01/20 Javascript
Jquery+ajax请求data显示在GridView上(asp.net)
2010/08/27 Javascript
关于JavaScript定义类和对象的几种方式
2010/11/09 Javascript
jquery实现简单的拖拽效果实例兼容所有主流浏览器(优化篇)
2013/06/28 Javascript
nodejs教程之入门
2014/11/21 NodeJs
解决同一页面中两个iframe互相调用jquery,js函数的方法
2016/12/12 Javascript
Bootstrap路径导航与分页学习使用
2017/02/08 Javascript
Vue.js实现网格列表布局转换方法
2017/08/25 Javascript
用react-redux实现react组件之间数据共享的方法
2018/06/08 Javascript
JavaScript变速动画函数封装添加任意多个属性
2019/04/03 Javascript
详解JavaScript 事件流
2020/09/02 Javascript
Vue-cli打包后如何本地查看的操作
2020/09/02 Javascript
[02:49]2014DOTA2电竞也是体育项目! 势要把荣誉带回中国!
2014/07/20 DOTA
[26:40]DOTA2上海特级锦标赛A组资格赛#1 Secret VS MVP.Phx第一局
2016/02/25 DOTA
可用于监控 mysql Master Slave 状态的python代码
2013/02/10 Python
Python读取ini文件、操作mysql、发送邮件实例
2015/01/01 Python
介绍Python的@property装饰器的用法
2015/04/28 Python
Python实现计算最小编辑距离
2016/03/17 Python
Python实现快速排序的方法详解
2019/10/25 Python
Whittard官方海外旗舰店:英国百年茶叶品牌
2018/02/22 全球购物
C语言基础笔试题
2013/04/27 面试题
战友聚会邀请函
2014/01/18 职场文书
超市促销活动方案
2014/03/05 职场文书
市场营销方案范文
2014/03/11 职场文书
环境保护与污染治理求职信
2014/07/16 职场文书
中班下学期个人工作总结
2015/02/12 职场文书
医院党建工作总结2015
2015/05/26 职场文书
高质量“欢迎词”
2019/04/03 职场文书
怎样评估创业计划书是否有可行性?
2019/08/07 职场文书
python3 sqlite3限制条件查询的操作
2021/04/07 Python