相关文章推荐
打篮球的拐杖  ·  df.iloc[:,:2].values ...·  1 月前    · 
谦虚好学的火柴  ·  Spark ...·  4 天前    · 
近视的橙子  ·  python ...·  7 小时前    · 
严肃的围巾  ·  linux ...·  5 月前    · 
纯真的蚂蚁  ·  Python ...·  1 年前    · 
听话的楼房  ·  【无标题】React-hook + ...·  1 年前    · 
文雅的数据线  ·  Java 操作 Neo4J ...·  1 年前    · 

2、groupby分组聚合的原理说明

1)原理图

image.png


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参数的使用如图所示

image.png

③ 参数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"})


结果如下:

image.png


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()


结果如下:

image.png

Python应用专题 | 14:pandas分组之后对相同group内的字段进行合并
本文主要介绍在pandas中对数据进行分组后,如何对相同组的数据进行其他字段的合并。类似场景:有2个字段,分别是文本内容和标签值。先根据文本内容进行分组,再对同一个组内的标签值进行合并,从而得到多标签值。
【Python学习】一文总结:数据分析库pandas基础
pandas是一款优秀的用于数据分析/挖掘的第三方库,在数据分析场景中非常常用,本文基于《Python 数据分析库 Pandas 快速入门》视频,对pandas的基础用法进行了总结。
DataFrame(14):对比MySQL学习“Pandas的groupby分组聚合”(超详细)(五)
DataFrame(14):对比MySQL学习“Pandas的groupby分组聚合”(超详细)(五)
DataFrame(14):对比MySQL学习“Pandas的groupby分组聚合”(超详细)(四)
DataFrame(14):对比MySQL学习“Pandas的groupby分组聚合”(超详细)(四)
DataFrame(14):对比MySQL学习“Pandas的groupby分组聚合”(超详细)(三)
DataFrame(14):对比MySQL学习“Pandas的groupby分组聚合”(超详细)(三)