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

作者:秋天中的一片叶 时间:2021-06-21 10:22:59 

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透视表使用方法解析

来源:https://www.cnblogs.com/liupengpengg/p/13559861.html

标签:Python,Pivot,table,透视表
0
投稿

猜你喜欢

  • 十幅图告诉你什么是PHP引用

    2023-10-04 06:16:56
  • 用Python读取几十万行文本数据

    2023-10-13 21:56:04
  • python实现把二维列表变为一维列表的方法分析

    2021-11-30 07:13:44
  • 提升网站可用性的3个忠告

    2008-01-31 13:48:00
  • python绘制多个曲线的折线图

    2021-08-01 13:58:52
  • optgroup、sub、sup和bdo标签

    2009-07-26 18:39:00
  • python 爬取B站原视频的实例代码

    2023-03-06 04:08:43
  • XML简易教程之二

    2008-09-05 17:19:00
  • python tqdm用法及实例详解

    2023-11-03 01:54:53
  • JAVA及PYTHON质数计算代码对比解析

    2023-08-29 23:41:31
  • HTML5 Canvas 起步(2) - 路径

    2009-05-12 12:06:00
  • python爬虫开发之PyQuery模块详细使用方法与实例全解

    2021-05-28 20:54:29
  • JS简单实现DIV相对于浏览器固定位置不变的方法

    2023-08-05 22:30:12
  • asp的日期转换星座函数

    2010-06-09 21:05:00
  • 用python的seaborn画数值箱型图

    2021-04-26 20:43:04
  • python排序函数sort()与sorted()的区别

    2023-09-08 23:38:08
  • django模型查询操作的实现

    2023-03-31 04:01:04
  • Wordpress 相册插件 NextGEN-Gallery 添加目录将中文转为拼音的解决办法

    2023-09-04 23:12:41
  • Oracle建立二进制文件索引的方法

    2010-07-18 13:29:00
  • Python实例方法、类方法、静态方法区别详解

    2021-05-31 21:35:58
  • asp之家 网络编程 m.aspxhome.com