有时候aggregate不能满足需求,因为我们要对分组数据进行多种计算,比如要同时计算各组数据的平均数、标准差、总数等等,这时候用a爿讥旌护gg()就比较好了。
先引入必要的变量,并且创建一个DataFrame
我们可以看一下DataFrame包含哪些数据![pandas教程:[13]agg分组多种计算](https://exp-picture.cdn.bcebos.com/423041db3620b93afb26f476ad0f8835dc8a8a06.jpg)
按照颜色将数据分组:![pandas教程:[13]agg分组多种计算](https://exp-picture.cdn.bcebos.com/c6b994775ddd884cafe5fb946cef28066a01f606.jpg)
计算各组数据的总数、平均数、标准差
计算结果为:![pandas教程:[13]agg分组多种计算](https://exp-picture.cdn.bcebos.com/ff5c88d818196120c462d8dd70f202b374d7df06.jpg)
假如我们只需要对a列数据进行计算,可以选择a列:
计算结果为:![pandas教程:[13]agg分组多种计算](https://exp-picture.cdn.bcebos.com/ba274f598540102a794dea11b142a07aa110c506.jpg)
假如我们需要定制显示的标题,也可以如此设置:
输出结果为:![pandas教程:[13]agg分组多种计算](https://exp-picture.cdn.bcebos.com/c8373cbc7dc5cf67b1f001f58e96b814f5d02607.jpg)
另外,我们还可以通过lambda匿名函数来进行特殊的计算:
计算各组数据的绝对值的平均数(离均差):![pandas教程:[13]agg分组多种计算](https://exp-picture.cdn.bcebos.com/5a5a00def4dca039a6b01a5f58d96975f3c40d07.jpg)
我们还可以使用字符串作为一个function,要正确使用字符串,必须先学习groupby对象有哪些可用的方法。这种方式可以实现一些更高级的功能,比如定制计算方法,不建议新手使用。
计算结果为:
![pandas教程:[13]agg分组多种计算](https://exp-picture.cdn.bcebos.com/82eff6d7592ae3ef3cd7c08254b6326c56666407.jpg)