Pandas分组函数和聚合函数

pandas中的分组函数groupby()可以完成各种分组操作,聚合函数agg()可以将多个函数的执行结果聚合到一起,这两类函数经常在一起使用。

groupby用法和参数介绍

groupby(self, by=None, axis=0, level=None, as_index=True, sort=True, group_keys=True, squeeze=no_default, observed=False, dropna=True):

by: 指定根据哪个/哪些字段分组,默认值是None,按多个字段分组时传入列表。by参数可以按位置参数的方式传入。

axis: 设置按列分组还是按行分组,0或index表示按列分组,1或columns表示按行分组,默认值为0。

level: 当DataFrame的索引为多重索引时,level参数指定用于分组的索引,可以传入多重索引中索引的下标(0,1…)或索引名,多个用列表传入。

level参数不能与by参数同时使用,如果两者同时存在,当by参数传入的是多重索引中的索引,则level不生效,当by参数传入的是DataFrame的列名,则报错。

as_index: 分组结果默认将分组列的值作为索引,如果按单列分组,结果默认是单索引,如果按多列分组,结果默认是多重索引。将as_index设置为False可以重置索引(0,1…)。

sort: 结果按分组列的值升序排列,将sort设置为False则不排序,可以提升性能。

dropna: 默认情况下,分组列的NaN在分组结果中不保留,将dropna设置为False,可以保留NaN分组。

其他三个参数不用关注,group_keys参数在源码中未使用,squeeze参数因为类型不兼容,官方已弃用,observed参数表示重设索引时,保留创建的全NaN行。

agg()参数和用法介绍

agg(self, func=None, axis=0, *args, **kwargs):

func: 用于聚合数据的函数,如max()、mean()、count()等,函数必须满足传入一个DataFrame能正常使用,或传递到DataFrame.apply()中能正常使用。

func参数可以接收函数的名字、函数名的字符串、函数组成的列表、行/列标签和函数组成的字典。

axis: 设置按列还是按行聚合。设置为0或index,表示对每列应用聚合函数,设置为1或columns,表示对每行应用聚合函数。

*args: 传递给函数func的位置参数。

**kwargs: 传递给函数func的关键字参数。

返回的数据分为三种:scalar(标量)、Series或DataFrame。

scalar: 当Series.agg()聚合单个函数时返回标量。

Series: 当DataFrame.agg()聚合单个函数时,或Series.agg()聚合多个函数时返回Series。

DataFrame: 当DataFrame.agg()聚合多个函数时返回DataFrame。

你可能感兴趣的:(python,pandas,人工智能,机器学习)