groupby相关知识
-
Spark DataFrame 的 groupBy vs groupByKey在使用 Spark SQL 的过程中,经常会用到 groupBy 这个函数进行一些统计工作。但是会发现除了 groupBy 外,还有一个 groupByKey(注意RDD 也有一个 groupByKey,而这里的 groupByKey 是 DataFrame 的 ) 。这个 groupByKey 引起了我的好奇,那我们就到源码里面一探究竟吧。所用 spark 版本:spark 2.1.0先从使用的角度来说,groupBy:groupBy类似于传统SQL语言中的group by子语句,但比较不同的是groupBy()可以带多个列名,对多个列进行group。比如想根据 "id" 和 "name" 进行 groupBy 的话可以df.goupBy("id","name")groupBy返回的类型是RelationalGroupedDataset。groupByKey:groupByKey则更加灵活,可以根据用户自己对列的组合来进行gr
-
Spark DataFrame 的 groupBy vs groupByKey在使用 Spark SQL 的过程中,经常会用到 groupBy 这个函数进行一些统计工作。但是会发现除了 groupBy 外,还有一个 groupByKey(注意RDD 也有一个 groupByKey,而这里的 groupByKey 是 DataFrame 的 ) 。这个 groupByKey 引起了我的好奇,那我们就到源码里面一探究竟吧。 所用 spark 版本:spark 2.1.0 先从使用的角度来说, groupBy:groupBy类似于传统SQL语言中的group by子语句,但比较不同的是groupBy()可以带多个列名,对多个列进行group。比如想根据 "id" 和
-
Python数据分析之dataframe的groupby大家都知道数据库有groupby函数,今天给大家讲讲dataframe的groupby函数。groupby函数还是以上文的数据为例子,进行讲解,首先读入数据,通过groupby聚合数据。(该数据为简书it互联网一段时间的文章收录信息)import pandas as pdimport pymysql conn = pymysql.connect(host='localhost', user='root', passwd='123456', db='test', port=3306, charset='utf8') jianshu = pd.read_sql('select * from jianshu1',conn) group_user =&n
-
给妹子讲python-S02E19GroupBy实现分割、应用和组合1.GroupBy的使用场景和使用方法2.GroupBy分割、应用和组合的操作内涵3.GroupBy对象的遍历今天这一集我们开始介绍Pandas中对数据进行处理的一个高逼格的方法:GroupBy。【妹子说】别说的这么厉害,我只问,这个是干嘛滴好,我举一个使用场景吧,科学家用不同的测量方法,测出了行星的质量、距离、轨道周期等等,就如同下面的代码所示:注意一下,这里的seaborn库是一个新的第三方库,我们用它来获取数据,我们在命令行下用pip3 install seaborn就能实现自动安装。好的,我问你,我要你对使用相同method测出来的distance进行求平均值,你要怎么求?【妹子说】额,莫不是就要用到你说的GroupBy?对,我们来做个示范:可以类比的是,他得到了一个SeriesGroupBy对象,也是一个中间变量。回到前面提的问题,获取了分组,如果我们想在此基础上求各个不同方法测得的distance的平均值,就非常简单了。这里可以使用的方法很广,包含了一般的统计方法:求和、求均值、求中位数、方差、
groupby相关课程
groupby相关教程
- 4. 小结 本节课程我们主要学习了 Pandas 对数据进行分组和聚合操作的内容,通过分组操作可以将数据根据不同的组类进行分组,通过聚合函数可以达到对每组数据的不同分析需要。本节课程的重点如下:了解分组和聚合之间的关系;掌握分组操作 groupby () 函数的使用方法;掌握常用的聚合操作函数的使用方法。
- 2. 分组操作 Pandas 中的分组操作主要通过函数 groupby () 实现,该函数对数据进行分组,并不会产生运算,分组后会返回一个 groupby 对象,该对象并不能展示数据,要通过具体的操作函数才能看到数据结果。首先我们通过 Pandas 解析 Excel 数据,得到 DataFrame 数据对象:# 导入pandas包import pandas as pddata_path="C:/Users/13965/Documents/myFuture/IMOOC/pandasCourse-progress/data_source/第19小节/execl数据demo.xlsx"# 解析数据data = pd.read_excel(data_path)print(data)# --- 输出结果 --- 编程语言 技术方向 推出时间 年均销售数量 价格 主要创始人0 java 后端 1995年 230 45.6 James Gosling1 HTML 前端 1990年 124 55.3 Daniel W. Connolly2 C 后端 1972年 35 33.9 Dennis MacAlistair Ritchie3 js 前端 1995年 678 59.5 Brendan Eich4 C++ 后端 1983年 125 75.0 Bjarne Stroustrup5 CSS 前端 1990年 254 24.6 Tim Berners-Lee接下来我们进行分组操作:# data 为上面解析的数据对象# 这里依据技术方向列进行分组data.groupby('技术方向')# --- 输出结果 ---<pandas.core.groupby.generic.DataFrameGroupBy object at 0x000001D618583070># 结果解析:这里我们使用的是单个索引‘技术方向’进行分组,也可以传入一个列表进行分组。这里可以看到输出的是一个 DataFrameGroupBy 对象
- 1. 操作符函数的分类 筛选类操作符(Filtering operations):slice、filter系列、drop系列、take系列;并集类操作符(Aggregate operations):any、all、count、none、fold系列、forEach系列、max系列、min系列、reduce系列、sum系列;映射类操作符(Mapping operations):flatMap系列、groupBy系列、map系列;元素类操作符(Element operations):elementAt系列、first系列、find系列、indexOf系列、last系列、single系列;排序类操作符(Ordering operations):reverse、sort系列;生成类操作符(Generation operations):partition、plus系列、zip系列。Tips:由于篇幅问题,本节课我们会先将筛选类的操作符函数介绍完毕,其他操作函数后续文章进行讲解。
- 1. 前言 上一节我们学习了 Pandas 对数据的重塑操作,可以满足我们对数据集不同结构的分析需要,而有时候我们还需要对数据依据某个类别进行分组的需要,以及在分组后对每组数据进行分析的需要,那 Pandas 中的数据分组操作又是怎么实现的呢?Pandas 库中提供了友好的数据分组聚合操作,分组聚合的过程包括数据的拆分、应用和聚合,如下图所示的过程。数据的分组操作主要涉及函数 groupby (),而聚合函数则有很多,在下面的学习中我们会列举一些聚合函数的具体使用方法。
- 3. 聚合操作 聚合操作是分组的目的,通过聚合操作对各组数据进行聚合,得到一定的分析效果,Pandas 中提供了大量的聚合操作函数,我们下面列举了部分,用以展示数据分组后进行聚合操作的效果。函数名说明 count 各分组中非 NaN 值的数量 sum 各分组中非 NaN 值的和 mean 各分组中非 NaN 值的平均值下面我们通过代码详细介绍聚合函数的使用:1. sum() 函数该函数用于求各组数值数据的和,非数值数据不进行该聚合操作。data.groupby(['技术方向','推出时间']).sum()# --- 输出结果 --- 年均销售数量 价格技术方向 推出时间 前端 1990年 378 79.9 1995年 678 59.5 后端 1972年 35 33.9 1983年 125 75.0 1995年 230 45.6# 结果解析:这里我们指定分组索引依据为列表,传入‘技术方向’,‘推出时间’,则分组是先以技术方向分为“前端”和“后端”,再以推出时间进行分组,带分组之后,进行 sum() 各组求和的聚合运算,得到各组的年均销售数量和价格的数据结果。在这里我们要补充一个下 groupby () 函数中的一个参数:as_index ,该参数默认为 True,是用来指定是否用分组索引作为聚合结果数据集的行索引,上面的代码中,默认 as_index=True ,因此行索引会有两层,分别为技术方向和推出时间,下面我们通过指定 as_index=False , 默认行索引会从 0 开始生成序列:# data 为上面解析的数据对象# 指定 as_index=Falsedata.groupby(['技术方向','推出时间'],as_index=False).sum()# --- 输出结果 --- 技术方向 推出时间 年均销售数量 价格0 前端 1990年 378 79.91 前端 1995年 678 59.52 后端 1972年 35 33.93 后端 1983年 125 75.04 后端 1995年 230 45.6# 结果解析:可以看到聚合后的数据集行索引为默认生成。2. count() 函数该函数用于计算分组后各组数据的数量。# data 为上面解析的数据对象# count() 函数data.groupby(['技术方向','推出时间'],as_index=False)['编程语言','年均销售数量','价格'].count()# --- 输出结果 --- 技术方向 推出时间 编程语言 年均销售数量 价格0 前端 1990年 2 2 21 前端 1995年 1 1 12 后端 1972年 1 1 13 后端 1983年 1 1 14 后端 1995年 1 1 1结果解析:这里我们通过 count () 进行聚合,并指定只聚合 “编程语言”,“年均销售数量”,“价格” 列的数据数量。3. mean() 函数该函数用于进行各分组数据的平均值的计算,该函数只对数值数据进行聚合。# data 为上面解析的数据对象# mean() 函数data.groupby(['技术方向'],as_index=False).mean()# --- 输出结果 --- 技术方向 年均销售数量 价格0 前端 352 46.4666671 后端 130 51.500000结果解析:通过 groupby 指定以技术方向进行分组,分为前端和后端,然后进行平均值的聚合操作。
- 4-4 函数的变长参数 深度剖析C语言知识体系
groupby相关搜索
-
g area
gamma函数
gcc 下载
generic
genymotion
gesture
getattribute
getchar
getdocument
getelementbyid
getelementsbytagname
getmonth
getproperty
gets
getty
git clone
git pull
git push f
git 命令
git 使用