前言
對(duì)于聚合,指的是任何能夠從數(shù)組產(chǎn)生標(biāo)量值的數(shù)據(jù)轉(zhuǎn)換過程。
許多常見的聚合運(yùn)算(如表9-1所示)都有就地計(jì)算數(shù)據(jù)集統(tǒng)計(jì)信息的優(yōu)化實(shí)現(xiàn)。然而,并不是只能使用這些方法??梢允褂米约喊l(fā)明的聚合運(yùn)算,還可以調(diào)用分組對(duì)象上已經(jīng)定義好的任何方法。
調(diào)用現(xiàn)有函數(shù)進(jìn)行聚合運(yùn)算
舉例:使用quantile計(jì)算Series或DataFrame列的樣本分位數(shù)。
分析:雖然quantile并沒有明確地實(shí)現(xiàn)于GroupBy,但它是一個(gè)Series方法,所以這里是能用的。實(shí)際上,GroupBy會(huì)高校地對(duì)Series進(jìn)行切片,然后對(duì)各片調(diào)用),最后將這些結(jié)果組裝成最終結(jié)果。
使用自己的聚合函數(shù)
如果要使用自己的聚合函數(shù),只需將其傳入aggregate或agg方法即可:
In [18]: def peak_to_peak(arr):
...: return arr.max()
...:
In [19]: grou(peak_to_peak)
Out[19]:
data1 data2
key1
a 1.874977 1.498612
b 2.237080 0.569494
其他方法的使用
注意,有些方法(如describe)也是可以用在這里的,即使嚴(yán)格來講,它們并非聚合運(yùn)算:
In [20]: grou()
Out[20]:
data1 ... data2
count mean std ... 50% 75% max
key1 ...
a 3.0 0.460594 0.957985 ... -0.464503 -0.233841 -0.003179
b 2.0 -0.081939 1.581855 ... 0.444932 0.587306 0.729679
[2 rows x 16 columns]
注意:可能已經(jīng)注意到,自定義聚合函數(shù)要比表9-1中那些經(jīng)過優(yōu)化的函數(shù)慢得多。這是因?yàn)樵跇?gòu)造中間分組數(shù)據(jù)塊時(shí)存在非常大的開銷(函數(shù)調(diào)用、數(shù)據(jù)重排等)。
添加列
通過read_csv加載文件后,添加一個(gè)表示小費(fèi)比例的列tip_pct:
In [71]: tips=(r'C:\Users\lpt20\Desktop\aa\')
In [72]: tips['tip_pct']=tips['tip'] / tips['total_bill']
In [76]: tips[:6]
Out[76]:
total_bill tip smoker day time size tip_pct
0 16.99 1.01 No Sun Dinner 2 0.059447
1 10.34 1.66 No Sun Dinner 3 0.160542
2 21.01 3.50 No Sun Dinner 3 0.166587
3 23.68 3.31 No Sun Dinner 2 0.139780
4 24.59 3.61 No Sun Dinner 4 0.146808
5 25.29 4.71 No Sun Dinner 4 0.186240
1.《(聚合數(shù)據(jù)如何使用教程)聚合助手使用教程》援引自互聯(lián)網(wǎng),旨在傳遞更多網(wǎng)絡(luò)信息知識(shí),僅代表作者本人觀點(diǎn),與本網(wǎng)站無關(guān),侵刪請(qǐng)聯(lián)系頁(yè)腳下方聯(lián)系方式。
2.《(聚合數(shù)據(jù)如何使用教程)聚合助手使用教程》僅供讀者參考,本網(wǎng)站未對(duì)該內(nèi)容進(jìn)行證實(shí),對(duì)其原創(chuàng)性、真實(shí)性、完整性、及時(shí)性不作任何保證。
3.文章轉(zhuǎn)載時(shí)請(qǐng)保留本站內(nèi)容來源地址,http://f99ss.com/keji/3353142.html