pandas-分组聚合


1.groupby分组

通过groupby方法对series或者dataframe对象进行分组,该方法会返回一个分组对象。但是无法直接打印查看该分组对象的信息。

groupby的一个属性二个方法:

  • groups:返回一个字典类型的对象,包含分组信息。
  • size():返回每组记录的数量。
  • describe():分组统计信息。

实例:
导入数据:
在这里插入图片描述
根据部门分组,返回一个分组对象,但是无法直接查看到分组的信息。
在这里插入图片描述
使用groups属性,返回一个字典。
在这里插入图片描述
使用size()方法,返回按照部门分组的每组的记录数量。
在这里插入图片描述
使用describe()方法,返回按照部门分组的每组的统计信息。
在这里插入图片描述
分组信息不像列表那样,我们可以直接输出查看。(类似于迭代器的机制,是需要时,才进行动态计算的。)
我们可以通过for循环来查看分组对象的数据。类似字典的形式,key-> 分组列的值。 value-> 分组对应的数据记录。
在这里插入图片描述

1.1 分组的方式

在使用groupby分组时,分组的参数有以下4种形式:

  • 单个索引名:根据该索引进行分组。
  • 索引名组成的数组:根据数组进行分组。
  • 字典或series:key指定索引,value指定分组依据,即value值相等的分为一组。
  • 函数:接收索引,返回分组依据的value值。

导入数据:
在这里插入图片描述
以单个部门列进行分组,for循环查看分组数据。
在这里插入图片描述
按照多列(部门,小组)进行分组。
在这里插入图片描述
自定义字典行索引为0,3分到组1,行索引为1,2分到组2。
在这里插入图片描述
自定义列名分组,都是字典形式。
在这里插入图片描述
函数方式。
在这里插入图片描述

2.agg聚合

1、可以在groupby分组后的对象上进行聚合处理(多个值变一个值)。例如mean(),sum()。
2、可以直接使用dataframe.agg方法调用来实现聚合,默认是接收一列,返回该列的聚合结果。

agg方法接收的参数类型:

  • sum、mean、max、min、std等单个函数字符串。
  • 函数字符串构成的列表。
  • 字典:key是列名,value是函数字符串,可根据不同列提供不同聚合信息。
  • 函数:默认是接收一列(axis=0),返回聚合结果;也可按照行(axis=1)来返回聚合结果。

导入数据:
在这里插入图片描述

2.1 dataframe.agg方法

单个函数字符串
在这里插入图片描述
多个函数字符串构成的列表[]
在这里插入图片描述
字典
在这里插入图片描述
函数
在这里插入图片描述

2.2 分组对象的agg方法

按照上面导入的数据,使用取模的方式分组。
0%2=0、1%2=1、2%2=0、3%2=1
值为0的分为一组,值为1的分为一组。
在这里插入图片描述
字典和函数的形式进行聚合。
在这里插入图片描述

发布了56 篇原创文章 · 获赞 34 · 访问量 3641

猜你喜欢

转载自blog.csdn.net/MicoOu/article/details/103957365
今日推荐