Pandas實(shí)用技巧:SAC機(jī)制!
本文轉(zhuǎn)載自微信公眾號「尤而小屋」,作者Peter 。轉(zhuǎn)載本文請聯(lián)系Peter的公眾號。
大家好,我是Peter~
本文給大家介紹的是Pandas中非常實(shí)用的SAC過程。首先我們需要明白什么是SAC機(jī)制

SAC
SAC指的是分組操作中的 Split-Apply-Combine 3個(gè)過程,分別代表的數(shù)據(jù)的切割、應(yīng)用和組合。
1、Split:切割的過程,就是通過某個(gè)指定的信息進(jìn)行分組,生成不同的組別
2、Apply:應(yīng)用的過程,對不同的組別使用不同的功能函數(shù),比如求和、求均值、最值等;函數(shù)可以python、pandas等內(nèi)置函數(shù),也可以是自定義的函數(shù)來實(shí)現(xiàn)各種功能等
3、Combine:組合的過程,將Apply應(yīng)用之后的結(jié)果再次組合在一起,得到最終的結(jié)果
通常情況下,SAC過程都是需要和groupby函數(shù)聯(lián)合使用。
圖解SAC
下面有兩張圖能夠解釋SAC的過程。

圖1
圖1中,我們將數(shù)據(jù)進(jìn)行g(shù)roup分組操作,切分成3種顏色,3種顏色代表3個(gè)不同的組別;對3個(gè)不同的組別使用函數(shù)foo(),函數(shù)可以內(nèi)置或者自定義。
最終將3個(gè)組別應(yīng)用了foo函數(shù)之后的結(jié)果進(jìn)行組合。下面給了一個(gè)例子:

圖2
- key是待切分的字段,data是待應(yīng)用的數(shù)據(jù)
- Split過程:通過ABC分成3個(gè)組別
- Apply過程:3個(gè)組別應(yīng)用某個(gè)函數(shù)規(guī)則
- Combine過程:將求和(sum就是指定規(guī)則)的結(jié)果組合在一起
Pandas應(yīng)用SAC
在這里我們使用鳶尾花iris數(shù)據(jù)集來解釋:

這個(gè)數(shù)據(jù)集總共是150條,我們隨機(jī)取出10條

下面是SAC過程:

df1中我們使用的求和,df2中使用的是求均值。
在后面的文章會介紹:
- groupby對象的內(nèi)部機(jī)制
- 如何通過agg函數(shù)來實(shí)現(xiàn)對不同的字段指定不同的函數(shù)
- 如何對分組數(shù)據(jù)實(shí)現(xiàn)過濾filter?























