基本信息
文件名称:Python数据分析基础与应用(微课版)课件 6.3 Pandas数据聚合与分组运算.pptx
文件大小:255.77 KB
总页数:12 页
更新时间:2025-06-20
总字数:约2.08千字
文档摘要

Python数据分析基础与应用模块6Pandas统计计算与数据分析

6.3Pandas数据聚合与分组运算

分组与聚合是数据分析中比较常见的操作,其个过程主要包含以下三步:(1)拆分(Split):表示将数据集按照一定的规则进行拆分为若干个组,拆分操作是在指定轴上进行的,既可以对横轴方向上的数据进行分组,也可以对纵轴上的数据进行分组。(2)应用(Apply):将某个函数或方法应用到每个分组,进行相应计算。(3)合并(Combine):最后汇总计算结果,将产生的新值整合到结果对象中。

6.3.1Pandas数据分组Pandas通过gropby()方法将数据拆分成组,该方法的语法格式如下:.groupby(by=None,axis=0,level=None,as_index=True,sort=True,group_keys=True,squeeze=False,observed=False,**kwargs)gropby()方法主要函数参数说明如下:?by:用于确定分组的依据。?axis:表示分组轴的方向,可以为0(表示按行分组)或1(表示按列分组),默认值为0。?level:如果某个轴是一个MultiIndex对象,则会按照特定级别或多个级别分组。?as_index:表示聚合后的数据是否以组标签作为索引的DataFrame对象输出,接受布尔值,默认值为True。?sort:表示是否对分组标签进行排序,接受布尔值,默认值为True

6.3.1Pandas数据分组在进行分组时,可以通过gropby()方法的by参数指定按什么标准分组,by参数接收的数据,也就是常见的分组方式有以下4种:?列表或数组,其长度必须与待分组的轴一样。?DataFrame对象中某列的名称。?字典或者series对象,给出待分组轴上的值与分组名称之间的对应关系。?函数,用于处理索引中的各个标签。通过groupby()方法执行分组操作,会返回一个GropBy对象,该对象实际上并没有进行任何计算,只是包含一些关于分组键的中间数据。

6.3.1Pandas数据分组使用groupby()方法可以沿着任意轴分组,可以把分组时指定的键(key)作为每组的组名,形式如下所示:?df.groupby(key)?df.groupby(key,axis=1)?df.groupby([key1,key2])

6.3.2Pandas数据聚合一般对分组中的数据执行某些操作,例如求平均值、求最大值等,并且操作后会得到一个结果集,这些实现聚合的操作称为数据聚合。在创建groupby对象时,通过agg()函数可以对分组对象应用多个聚合函数。

6.3.3Pandas分组的转换操作使用agg()方法进行聚合运算时,返回数据集的形状(shape)与被分组数据集的形状通常是不同的,如果希望保持与原数据集形状相同,可以通过transform()方法在组的行或列上可以执行转换操作,最终会返回一个与组大小相同的索引对象。(1)使用transform()方法将mean()函数应用到每一个分组中示例代码如下:#分组求均值#对可执行计算的数值列求均值print(df.groupby(group).transform(np.mean))

6.3.3Pandas分组的转换操作(2)应用apply()方法apply()函数是Pandas所有函数中自由度最高的函数,该函数的功能是在DataFrame对象指定的轴方向应用自定义函数,函数的语法格式如下:DataFrame.apply(func,axis,broadcast,row,reduce,args=(),**kwds)该函数参数说明如下:?DataFrame:表示DataFrame对象名称;?func:表示要应用在DataFrame对象的行或列的自定义函数名称;

6.3.3Pandas分组的转换操作?axis:用于控制是将DataFrame对象的行数据,还是列数据传入func函数。如果设置axis=1,则将DataFrame对象的行数据作为Series的数据结构传入func函数。其默认值为0;?broadcast:为布尔数据类型,默认值为False。对于聚合函数,返回具有传播值的相同大小的对象;?row:为布尔数据类型,默认值为False。其作用是将每行或每列转换为一个系列。如果设置row=True,则传递的函数将接收ndarray对象;?reduce:默认值为None,表示尽量减少应用程序;?args=():为元组数据类型,表示传入func函数的参数;?**kwds:表示传入func函数的其他参数。

6.3.4Pandas分组的数据过滤操作P