pandas教程:[11]aggregate分组计算
一旦对数据分组,接下来一定是对各组数据进行计算,这是通过groupby.aggregate()实现的,我们来看一下今天的例子:
先引入必要的模块,然后创建一个DataFrame对象,如果你看了前几篇文章,应该已经知道这个DataFrame了。
这是内部数据:![pandas教程:[11]aggregate分组计算](https://exp-picture.cdn.bcebos.com/d2987775f2c4ec99e723d5b2c3fe1e425c6b07f4.jpg)
根据两个索引color、food进行分组![pandas教程:[11]aggregate分组计算](https://exp-picture.cdn.bcebos.com/92174dbbf82064fb406be0928e6104a354e96ff4.jpg)
计算各组总和:
计算结果为:![pandas教程:[11]aggregate分组计算](https://exp-picture.cdn.bcebos.com/49701aebf6a75f0f754ba55d97324b18502c4cf4.jpg)
计算结果默认使用了两个分组索引color和food作为新的DataFrame的索引(注意计算结果为一个DataFrame对象),可以使用reset_index()来将两个索引转化为列变量
结果为:![pandas教程:[11]aggregate分组计算](https://exp-picture.cdn.bcebos.com/f367139a310e1799cb4b6b0bc9406afec214a3f4.jpg)
在分组是也可以使用as_index参数达到reset_index()的效果:
计算结果为:![pandas教程:[11]aggregate分组计算](https://exp-picture.cdn.bcebos.com/95bd4e8c9bcec7f8c0168c6e034ce54a2e27fbf4.jpg)
另外我们经常用到的一个方法为size()返回各组数据量
结果为:![pandas教程:[11]aggregate分组计算](https://exp-picture.cdn.bcebos.com/db196cdade49610ffa377cb7a56817e950e1d2f4.jpg)
最后,还有一个经常用到的方法为describe(),对各组数据进行描述性统计:
计算结果为:![pandas教程:[11]aggregate分组计算](https://exp-picture.cdn.bcebos.com/b442d6d246fe474e64e2e20cb0ef354f51b81ff5.jpg)