2、groupby分组聚合的原理说明
1)原理图
2)原理说明
split:按照指定规则分组,由groupby实现;
apply:针对每个小组,使用函数进行操作,得到结果,由agg()函数实现;
combine:将每一组得到的结果,汇总起来,得到最终结果;
注意:combine这一步是自动完成的,因此针对pandas中的分组聚合,我们只需要学习两个内容,① 学习怎么分组;② 学习如何针对每个分组中的数据,进行对应的逻辑操作;
3、groupby分组对象的相关操作
我们可以通过groupby方法来对Series或DataFrame对象实现分组操作,该方法会返回一个分组对象。但是,如果直接查看(输出)该对象,并不能看到任何的分组信息。
1)groupby()函数语法
① 语法如下
groupby(by=[“字段1”,“字段2”,…],as_index=True)
② 参数说明
by参数传入的分组字段,当只有一个字段的时候,可以直接写by=“字段1”。当多字段联合分组的时候,就写成列表形式by=[“字段1”,“字段2”]。
as_index参数的使用如图所示
③ 参数as_index的使用说明
x = {"name":["a","a","b","b","c","c","c"],"num":[2,4,0,5,5,10,15]} df = pd.DataFrame(x) display(df) df.groupby("name",as_index=True).agg({"num":"sum"}) df.groupby("name",as_index=False).agg({"num":"sum"})
结果如下:
2)groupby分组对象的常用方法或属性。
① groups属性:返回一个字典,key表示组名,value表示这一组中的所有记录;
② size()方法:返回每个分组的记录数;
x = {"name":["a","a","b","b","c","c","c"],"num":[2,4,0,5,5,10,15]} df = pd.DataFrame(x) display(df) df.groupby("deptno").groups df.groupby("deptno").size()
结果如下: