- Python廣告數(shù)據(jù)挖掘與分析實(shí)戰(zhàn)
- 楊游云 周健
- 551字
- 2021-04-02 14:21:24
3.2.4 數(shù)據(jù)聚合
數(shù)據(jù)聚合通常是要使每一個(gè)數(shù)組生成一個(gè)單一的數(shù)值,以便后續(xù)查看和分析結(jié)果,比如我們會(huì)查看每月的支出情況,計(jì)算當(dāng)月或每天的平均支出等。
數(shù)據(jù)聚合的一般流程如下:
1)按某字段對(duì)數(shù)據(jù)進(jìn)行分組拆分;
2)對(duì)不同組的數(shù)據(jù)應(yīng)用不同的聚合函數(shù)進(jìn)行轉(zhuǎn)換;
3)把不同組得到的結(jié)果合并起來。
總結(jié)來說,即“拆分→應(yīng)用→合并”這樣一個(gè)過程。我們可以通過groupby函數(shù)來完成此類操作,還是以前面的用戶畫像數(shù)據(jù)為例,部分?jǐn)?shù)據(jù)樣例如圖3-6所示。

圖3-6 廣告用戶畫像部分?jǐn)?shù)據(jù)樣例
例如現(xiàn)在要對(duì)System列進(jìn)行分組,計(jì)算Num列的平均值:
In [89]: grp = df.groupby('System')['Num'] In [90]: grp Out[90]: <pandas.core.groupby.SeriesGroupBy object at 0x00000000113B8080>
可以看到grp是Python中的groupby對(duì)象,也就是說它是我們數(shù)據(jù)拆分后的中間結(jié)果。如果需要計(jì)算平均值,可直接在groupby對(duì)象grp上調(diào)用mean方法:
In [91]: grp.mean() Out[91]: System android 50.120690 iOS 48.642857 Name: Num, dtype: float64
從輸出結(jié)果可以看到,System列有兩個(gè)分組,即android和iOS,以及每個(gè)分組下Num的平均值。
另外,如果需要按多個(gè)字段分組,我們可以將多個(gè)列名放到同一個(gè)list中,作為groupby的參數(shù):
In [92]: df.groupby(['System','Sex'])['Num'].mean() Out[92]: System Sex android F 48.861111 M 52.181818 iOS F 40.777778 M 60.500000 未知 24.750000 Name: Num, dtype: float64
Pandas提供了常用的聚合函數(shù)來幫助我們進(jìn)行聚合計(jì)算,具體如表3-7所示。
表3-7 常用的聚合函數(shù)

同時(shí),我們也可以自定義聚合函數(shù),如下所示:
In [93]: def myfun(obj): ...: return np.mean(obj ** 2 - 10) In [94]: df.groupby(['System'])['Num'].apply(myfun) Out[94]: System android 3338.500000 iOS 3183.738095 Name: Num, dtype: float64
通過apply函數(shù)來使用我們自定義的聚合函數(shù),可以理解為對(duì)我們拆分好的結(jié)果循環(huán)調(diào)用自定義聚合函數(shù)來進(jìn)行計(jì)算。
- SQL Server 2012數(shù)據(jù)庫技術(shù)與應(yīng)用(微課版)
- InfluxDB原理與實(shí)戰(zhàn)
- 新型數(shù)據(jù)庫系統(tǒng):原理、架構(gòu)與實(shí)踐
- 數(shù)據(jù)庫系統(tǒng)原理及應(yīng)用教程(第4版)
- Python金融實(shí)戰(zhàn)
- 企業(yè)級(jí)數(shù)據(jù)與AI項(xiàng)目成功之道
- 計(jì)算機(jī)應(yīng)用基礎(chǔ)教程上機(jī)指導(dǎo)與習(xí)題集(微課版)
- SQL應(yīng)用及誤區(qū)分析
- Hadoop集群與安全
- Visual FoxPro數(shù)據(jù)庫技術(shù)基礎(chǔ)
- Gideros Mobile Game Development
- 實(shí)現(xiàn)領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)
- Python 3爬蟲、數(shù)據(jù)清洗與可視化實(shí)戰(zhàn)
- 算力經(jīng)濟(jì):從超級(jí)計(jì)算到云計(jì)算
- Access 2016數(shù)據(jù)庫應(yīng)用基礎(chǔ)