1.分组聚合
1.1拆分数据
groupby
方法的参数及其说明:
#该方法提供的是分组聚合步骤中的拆分功能,
#能根据索引或字段对数据进行分组。其常用参数与使用格式如下:
DataFrame.groupby(by=None, axis=0, level=None, as_index=True, sort=True,
group_keys=True, squeeze=False, **kwargs)
groupby方法的参数及其说明——by参数的特别说明:
1、如果传入的是一个函数则对索引进行计算并分组。
2、如果传入的是一个字典或者Series则字典或者Series的值用来做分组依据。
3、如果传入一个NumPy数组则数据的元素作为分组依据。
4、如果传入的是字符串或者字符串列表则使用这些字符串所代表的字段作为分组依据。
GroupBy对象常用的描述性统计方法:
用 groupby 方法分组后的结果并不能直接查看,而是被存在内存中,输出的是内存地址。
实际上分组后的数据对 象GroupBy类似Series与DataFrame,是pandas提供的一种对象。GroupBy对象常用的描述性统计方法如下。
1.2 聚合数据
agg和aggregate函数参数及其说明:
agg,aggregate方法都支持对每个分组应用某函数,包括Python内置函数或自定义函数。同时这两个方法也能够直接对DataFrame进行函数应用操作。
在正常使用过程中,agg函数和aggregate函数对DataFrame对象操作时功能几乎完全相同,因此只需要 掌握其中一个函数即可。它们的参数说明如下表。
DataFrame.agg(func, axis=0, *args, **kwargs)
DataFrame.aggregate(func, axis=0, *args, **kwargs)
agg方法求统计量:
1、可以使用agg方法一次求出当前数据中所有菜品销量和售价的总和与均值,如:
detail[['counts','amounts']].agg([np.sum,np.mean]))
2、对于某个字段希望只做求均值操作,而对另一个字段则希望只做求和操作,可以使用字典的方式,
将两个 字段名分别作为key,然后将NumPy库的求和与求均值的函数分别作为value,如:
detail.agg({'counts':np.sum,'amounts':np.mean}))。
3、在某些时候还希望求出某个字段的多个统计量,某些字段则只需要求一个统计量,
此时只需要将字典对应 key 的 value 变为列表,列表元素为多个目标的统计量即可,如 :
detail.agg({'counts':np.sum,'amounts':[np.mean,np.sum]}))
agg方法与自定义的函数:
1、在agg方法可传入读者自定义的函数。
2、使用自定义函数需要注意的是NumPy库中的函数
np.mean,np.median,np.prod,np.sum,np.std