数据分析应用项目化教程(Python) 课件 项目7 使用pandas进行数据分组与聚合_第1页
数据分析应用项目化教程(Python) 课件 项目7 使用pandas进行数据分组与聚合_第2页
数据分析应用项目化教程(Python) 课件 项目7 使用pandas进行数据分组与聚合_第3页
数据分析应用项目化教程(Python) 课件 项目7 使用pandas进行数据分组与聚合_第4页
数据分析应用项目化教程(Python) 课件 项目7 使用pandas进行数据分组与聚合_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第七章使用pandas进行数据分组与聚合

任务7.1数据分组与聚合运算分组聚合原理分组过程使用内置统计方法聚合数据使用agg进行更灵活的聚合分组聚合原理

对数据集进行分组并对各分组应用函数是数据分析中的重要环节。在pandas中,分组运算主要通过groupby函数来完成,聚合操作主要通过agg函数来完成。分组与聚合的过程大概分三步:拆分:将数据集按照一些标准拆分为若干组应用:将某个函数或者方法应用到每个分组合并:将产生的新值整合到结果对象中分组聚合原理groupby对数据进行数据分组运算的过程分为三个阶段:分组、用函数处理分组和分组结果合并。

(1)分组。按照键(key)或者分组变量将数据分组。分组键可以有多种形式,且类型不必相同:①列表或数组,其长度与待分组的轴一样。②DataFrame对象的某个列名。③字典或Series,给出待分组轴上的值与分组名之间的对应关系。④函数,用于处理轴索引或索引中的各个标签。(2)用函数处理。对于每个分组应用我们指定的函数,这些函数可以是Python自带函数,可以是自定义的函数。groupby对象的agg,可在轴(列)上应用一或多个函数操作。(3)合并分组处理结果。把每个分组的计算结果合并起来。分组聚合原理-分组过程group=data.groupby('company')分组聚合原理-分组过程转换成列表的形式后,可以看到,列表由三个元组组成,每个元组中,第一个元素是组别(这里是按照company进行分组,所以最后分为了A,B,C),第二个元素的是对应组别下的DataFrame,整个过程如右图。使用内置统计方法聚合数据聚合函数直接应用到分组后的各列,注意分组字段列是以索引的形式存在的取分组后的某个列聚合以及聚合后的数据遍历分组对象,查看分组内部结构按多字段分组data.groupby(['company','age'])使用agg进行更灵活的聚合聚合Series,对每个分组的每个列都执行聚合函数聚合数据框,不同的列使用不同的聚合方案,使用字典的方式传入聚合方案使用pd.NamedAgg对不同的列使用聚合函数使用agg进行更灵活的聚合字典聚合方案可以使同一个列使用多个聚合函数聚合,但列索引二级也可以使用pd.NamedAgg对不同的列使用聚合函数,但是可以为聚合后的每一列赋予新的名字,这样列标签就一层了。使用agg进行更灵活的聚合聚合运算小结分组聚合原理分组过程使用内置统计方法聚合数据使用agg进行更灵活的聚合第七章使用pandas进行数据分组与聚合

任务7.2分组级apply和transform运算分组级transform运算分组级apply运算分组级transform运算如果希望聚合后的数据与原数据合并,如何办?比如:如何实现在原数据集中新增一列员工所在的公司的平均薪水avg_salary?分组级transform运算不使用transform的实现:需要先求得不同公司的平均薪水,然后按照员工和公司的对应关系填充到对应的位置。分组级transform运算transform:并不对数据进行聚合输出,而只是对每一行记录提供了相应聚合结果。agg:直接返回聚合结果。分组级apply运算apply相比agg和transform而言更加灵活,实现复杂的数据操作。对于groupby后的apply,以分组后的子DataFrame作为参数传入指定函数的,基本操作单位是DataFrame,可以对每个子DataFrame进行按列处理、按行处理或整个子DataFrame处理。分组级apply运算求DataFrame对象中年龄最大的员工数据小结DataFrame分组级transform:

GroupBy函数transform可在每个分组上产生一个与原DataFrame相同索引的DataFrame,整体返回与原来对象拥有相同索引且已填充了转换后值的DataFrame。DataFrame分组级apply:GroupBy函数apply可在不同分组上应用函数,然后将结果组合起来。传入函数参数的是每个子DataFrame,不仅可以按列处理分组的列数据,而且可以按行处理分组的行数据,还可以处理每个子分组。第七章使用pandas进行数据分组与聚合

任务7.3数据处理map、apply、applymap运算Series数据处理DataFrame数据处理Series数据处理-Series.map需求:数据集中gender列的男替换为1,女替换为0,Series.map()可以实现转换。Series数据处理-Series.map不论是利用字典还是函数进行映射,map方法都是把Series数据逐元素当作参数传入到字典或函数中,得到映射后的值。Series数据处理-Series.applyapply方法的作用和map方法类似,区别在于传入map的函数只能接收一个参数,即逐个Series数据,而传入apply的函数还可以接收另外参数,实现复杂功能。DataFrame数据处理-DataFrame.applyDataFrame.apply处理DataFrame数据-按列处理DataFrame数据处理-DataFrame.applyDataFrame.apply处理DataFrame数据-按列处理DataFrame数据处理-DataFrame.applyDataFrame.apply处理DataFrame数据-按行处理需求:每个人的BMI指数(体检时常用的指标,衡量人体肥胖程度和是否健康的重要标准),计算公式是:体重指数BMI=体重/身高的平方(国际单位kg/㎡)当apply设置了axis=1对行进行操作时,会默认将每一行数据以Series的形式(Series的索引为列名)传入指定函数,返回相应的结果。DataFrame数据处理-DataFrame.applyDataFrame.apply处理DataFrame数据-按行处理DataFrame数据处理-DataFrame.applymapDataFrame.applymap处理每个元素小结Series数据的map:对于Series数据,map可以解决绝大多数的数据处理需求,map把Series数据逐个当作参数传入。但如果还需要传递别的数据,则需要使用ap

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论