版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第十二章数据聚合与分组运算
在此输入副标题·分组与聚合的原理·分组操作·数据聚合·分组级运算熟悉掌握掌握掌握
1234学习目标熟悉分组与聚合的原理掌握分组级运算掌握通过groupby()方法将数据分组掌握数据聚合12.112.212.312.4目录CONTENTS分组与聚合的原理
通过groupby()方法将数据拆分成组数据聚合分组级运算
第一部分PART0112.1分组与聚合的原理Pandas官方参考文档地址是http:///pandas-docs/stable/groupby.html。在Pandas中,分组是指使用特定的条件将原数据划分为多个组,聚合在这里指的是,对每个分组中的数据执行某些操作,最后将计算的结果进行整合。12.1分组与聚合的原理分组与聚合的过程大概分为以下三步:拆分将数据集按照一些标准拆分为若干个组。应用将某个函数或方法(内置和自定义均可)应用到每个分组。合并将产生的新值整合到结果对象中。12.1分组与聚合的原理分组与聚合的原理12.1分组与聚合的原理
第二部分PART0212.2通过groupby()方法将数据拆分成组在Pandas中,可以通过groupby()方法将数据集按照某些标准划分成若干个组。by:用于确定进行分组的依据。axis:表示分组轴的方向。sort:表示是否对分组标签进行排序,接收布尔值,默认为True。groupby(by=None,axis=0,level=None,as_index=True,sort=True,group_keys=True,squeeze=False,observed=False,**kwargs)12.2通过groupby()方法将数据拆分成组groupby()方法会返回一个GroupBy对象,该对象实际上并没有进行任何计算,只是包含一些关于分组键的中间数据而已。使用Series调用groupby()方法返回的是SeriesGroupBy对象。使用DataFrame调用groupby()方法返回的是DataFrameBy对象。12.2通过groupby()方法将数据拆分成组通过groupby()方法的by参数可以指定按什么标准分组,该参数可以接收的数据主要有以下4种:列表或数组DataFrame某列字典或Series对象函数12.2通过groupby()方法将数据拆分成组按列名进行分组
如果DataFrame对象的某一列数据符合划分成组的标准,则可以将该列当做分组键来拆分数据集。df.groupby(by='Key')<DataFrameGroupByobjectat
0x0000000006E274A8>12.2通过groupby()方法将数据拆分成组如果要查看每个分组的具体内容,则可以使用for循环遍历DataFrameGroupBy对象。group_obj=df.groupby('Key')#遍历分组对象foriingroup_obj:print(i)12.2通过groupby()方法将数据拆分成组按Series对象进行分组
还可以将自定义的Series类对象作为分组键进行分组。ser_obj=pd.Series(['a','b','c','a','b'])#按自定义Series对象进行分组group_obj=df.groupby(by=ser_obj)12.2通过groupby()方法将数据拆分成组思考:如果Series对象的长度与原数据的行索引长度不相等时,那么在分组时会怎么样呢?12.2通过groupby()方法将数据拆分成组如果Series对象与Pandas对象的索引长度不相同时,则只会将具有相同索引的部分数据进行分组。df=se=pd.Series(['a','a','b'])group_obj=df.groupby(se)['one','two','one','two','one'],'data1':[2,3,4,6,8],'data2':[3,5,6,3,7]})se=pd.Series(['a','a','b'])group_obj=df.groupby(se)12.2通过groupby()方法将数据拆分成组按字典进行分组
当使用字典对DataFrame进行分组时,则需要确定轴的方向及字典中的映射关系,即字典中的键为列名,字典的值为自定义的分组名。mapping={'a':'第一组','b':'第二组','c':'第一组','d':'第三组','e':'第二组'}by_column=num_df.groupby(mapping,axis=1)12.2通过groupby()方法将数据拆分成组按函数进行分组将函数作为分组键会更加灵活,任何一个被当做分组键的函数都会在各个索引值上被调用一次,返回的值会被用作分组名称。#使用内置函数len进行分组groupby_obj=df.groupby(len)12.2通过groupby()方法将数据拆分成组
第三部分PART0312.3数据聚合前面介绍过的Pandas统计方法,比如用于获取最大值和最小值的max()和mix(),这些方法常用于简单地聚合分组中的数据。#按key1进行分组,求每个分组的平均值df.groupby('key1').mean()12.3.1使用内置统计方法聚合数据如果内置方法无法满足聚合要求时,则可以自定义函数,将它作为参数传给agg()方法,实现Pandas对象的聚合运算。func:表示用于汇总数据的函数,可以为单个函数或函数列表。axis:表示函数作用于轴的方向,0或index表示将函数应用到每一列;1或columns表示将函数应用到每一行,该参数的默认值为0。agg(func,axis=0,*args,**kwargs)12.3.2面向列的聚合方法对每一列数据应用同一个函数通过agg()方法进行聚合,最简单的方式就是给该方法的func参数传入一个函数,这个函数既可以是内置的,也可以自定义的。defrange_data_group(arr):returnarr.max()-arr.min()#使用自定义函数聚合分组数据data_group.agg(range_data_group)
12.3.2面向列的聚合方法对某列数据应用不同的函数
可以将两个函数的名称放在列表中,之后在调用agg()方法进行聚合时作为参数传入即可。#对一列数据用两种函数聚合data_group.agg([range_data_group,sum])12.3.2面向列的聚合方法虽然每一列可以应用不同的函数,但是结果并不能很直观地辨别出每个函数代表的含义。12.3.2面向列的聚合方法为了能更好地反映出每列数据的信息,可以使用“(name,function)”元组将function(函数名)替换为name(自定义名称)。data_group.agg([("极差",range_data_group),("和",sum)])12.3.2面向列的聚合方法对不同列数据应用不同函数
如果希望对不同的列使用不同的函数,则可以在agg()方法中传入一个{"列名":"函数名"}格式的字典。data_group.agg({'a':'sum','b':'mean','c':range_data_group})12.3.2面向列的聚合方法agg()方法执行聚合操作时,会将一组标量值参与某些运算后转换为一个标量值。12.3.2面向列的聚合方法
第四部分PART0412.4
分组级运算思考:如果希望聚合后的数据与原数据保持一样的形状,应该怎么做呢?12.4数据转换如果希望保持与原数据集形状相同,那么可以通过transfrom()方法实现。上述方法中只有一个func参数,表示操作Pandas对象的函数。transfrom()方法会把func函数应用到各个分组中,并且将计算结果放在适当的位置上。transform(func,
*args,
**kwargs)12.4数据转换transform()方法返回的结果有两种,一种是可以广播的标量值(np.mean),另一种可以是与分组大小相同的结果数组。12.4数据转换apply()方法的使用是十分灵活的,它可以在许多标准用例中替代聚合和转换,另外还可以处理一些比较特殊的用例。func:表示应用于某一行或某一列的函数。axis:表示函数操作的轴向。broadcast:表示是否将数据进行广播。apply(func,axis=0,broadcast=None,r
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 机动车检测站运营与安全管理计划
- 企业职工大会发言稿写作技巧
- 汉语拼音教学辅助练习册设计
- 温泉工程设计合同范本及注意事项
- 边坡支护施工合同范本解析
- EPC项目-生态环境综合整治建设总承包项目-技术标
- 公司钉钉考勤管理制度
- 如何培养工匠精神
- IT企业软件开发流程标准化控制报告
- 小学六年级数学期末考试标准题库
- 远程培训教学案例设计小学数学
- 江苏省南京市联合体2024-2025学年七年级下学期第一次月考试卷 数学 (原卷版+解析版)
- 2025年亳州职业技术学院单招职业倾向性考试题库带答案
- 劳务公司劳务协议书范本
- 粪菌移植治疗
- 碳排放与碳减排
- 食品经营许可证全套规章制度
- DB22-T 3408-2022 建设用地项目节地评价论证规范
- 江南造船在线测评题
- 初中英语高频词汇表
- 癌症患者生活质量量表EORTC-QLQ-C30
评论
0/150
提交评论