本文转载自微信公众号「尤而小屋」,作者Peter 。转载本文请联系Peter的公众号。
大家好,我是Peter~
本文给大家介绍的是Pandas中非常实用的SAC过程。首先我们需要明白什么是SAC机制
SAC
SAC指的是分组操作中的 Split-Apply-Combine 3个过程,分别代表的数据的切割、应用和组合。
1、Split:切割的过程,就是通过某个指定的信息进行分组,生成不同的组别
2、Apply:应用的过程,对不同的组别使用不同的功能函数,比如求和、求均值、最值等;函数可以python、pandas等内置函数,也可以是自定义的函数来实现各种功能等
3、Combine:组合的过程,将Apply应用之后的结果再次组合在一起,得到最终的结果
通常情况下,SAC过程都是需要和groupby函数联合使用。
图解SAC
下面有两张图能够解释SAC的过程。
图1
图1中,我们将数据进行group分组操作,切分成3种颜色,3种颜色代表3个不同的组别;对3个不同的组别使用函数foo(),函数可以内置或者自定义。
最终将3个组别应用了foo函数之后的结果进行组合。下面给了一个例子:
图2
- key是待切分的字段,data是待应用的数据
- Split过程:通过ABC分成3个组别
- Apply过程:3个组别应用某个函数规则
- Combine过程:将求和(sum就是指定规则)的结果组合在一起
Pandas应用SAC
在这里我们使用鸢尾花iris数据集来解释:
这个数据集总共是150条,我们随机取出10条
下面是SAC过程:
df1中我们使用的求和,df2中使用的是求均值。
在后面的文章会介绍:
- groupby对象的内部机制
- 如何通过agg函数来实现对不同的字段指定不同的函数
- 如何对分组数据实现过滤filter