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 = "销量") #%%
聚合后结果
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平均值 ) #%%
聚合结果
对比结果:这里要强调一点的是,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) #%%
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!!!")
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。
B.1 创建数据透视表 尽管数据透视表的功能非常强大,但是创建的过程却是非常简单。 将光标点在表格数据源中任意有内容的单元格,或者将整个数据区域选中。 “插入”选项卡,单击“数据透视表”命令。 3. 在弹出的“创建数据透视表”对话框中,“请选择要分析的数据”一项已经自动选中了光标所处位置的整个连续数据区域,也可以在此对话框中重新选择想要分析的数据区域(还可以使用外部数据源,请参阅后面内容)。“选择
问题内容: 我有两个表三元组和标签 三元组表具有以下列 标签表具有以下列 我正在尝试编写sql创建带有动态标题的数据透视表 输出应该是这样的 编写SQL的任何帮助将不胜感激。我在网上看到了示例,但无法弄清楚这一示例 问题答案: 为了 转动 在MySQL中的数据,您需要同时使用聚合函数和表达。 如果您知道已知的列数,则可以对查询进行硬编码: 参见带有演示的SQL Fiddle 但是,如果您的列数未知
我试图创建一个关系,通过一个名为年级的模型访问一个名为注释的表,通过年级中的学生加载 年级模型和学生模型都属于其他模型 根据我的理解,不可能访问需要透视表的hasManyThrough关系(注释没有年级标识符,只有学生标识符) 我为Laravel 4@HasManyThrough找到了这些函数,它们具有一对多关系,但它给了我一个错误类“App\illumb\Database\Eloquent\Re
我是vba新手,正在尝试使用vba和Excel创建。 我想创建像下面的图像作为输入表。 我试图添加、、、的行标签,值为、和。不为SHEET1生成任何透视表。
A 数据透视表介绍 B.1 什么是数据透视表? 数据透视表是一种可以快速汇总、分析大量数据表格的交互式工具。使用数据透视表可以按照数据表格的不同字段从多个角度进行透视,并建立交叉表格,用以查看数据表格不同层面的汇总信息、分析结果以及摘要数据。使用数据透视表可以深入分析数值数据,以帮助用户发现关键数据,并做出有关企业中关键数据的决策。 数据透视表是针对以下用途特别设计的:以友好的方式,查看大量的数据
数据透视表显示二维交集的度量值,并在表格视图中表示数据。 图表属性 选择图表类型后,可以更改其属性来自定义图表: 选项 描述 常规 背景颜色 设置图表区域的背景颜色。 不透明度 设置背景颜色的不透明度。 显示边框 显示图表外部边框。 边界颜色 设置图表外部边框的颜色。 显示标题 显示图表的主要标题。 标题 指定图表的标题。 标题字体 设置标题的字体样式。 位置 设置标题的位置。 对齐 设置标题的水