Pandas實用技巧:SAC機制!
本文轉載自微信公眾號「尤而小屋」,作者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?