python?pandas中的agg函數(shù)用法
pandas中的agg函數(shù)
python中的agg函數(shù)通常用于調(diào)用groupby()函數(shù)之后,對(duì)數(shù)據(jù)做一些聚合操作,包括sum,min,max以及其他一些聚合函數(shù)
如下所示:
>>> df = pd.read_excel(r"D:/myExcel/1.xlsx") >>> df ? ? ? ? A ? B ? C 0 ? ? bob ?12 ?45 1 ?millor ?15 ?23 2 ? ? bob ?34 ?88 3 ? ? bob ?98 ?23
(1)獲取按A分組后B列的最大值
>>> df.groupby(by='A').agg({'B':'max'}) ? ? ? ? ?B A ? ? ? ?? bob ? ? 98 millor ?15
(2)獲取按A分組后B列的最大值和最小值
>>> df.groupby(by='A').agg({'B':['max','min']}) ? ? ? ? ?B ? ? ? ? ? ?max min A ? ? ? ? ? ?? bob ? ? 98 ?12 millor ?15 ?15
(3)獲取按A分組后B列的最大值和最小值以及C列的最大值
>>> df.groupby(by='A').agg({'B':['max','min'], 'C':'min'}) ? ? ? ? ?B ? ? ? C ? ? ? ?max min min A ? ? ? ? ? ? ? ?? bob ? ? 98 ?12 ?23 millor ?15 ?15 ?23
(4)默認(rèn)是以函數(shù)名稱命名的,可以修改
>>> df.groupby(by='A').agg( b_min=pd.NamedAgg(column='B', aggfunc='min'), b_max=pd.NamedAgg(column='B', aggfunc='max')) ? ? ? ? b_min ?b_max A ? ? ? ? ? ? ? ? ?? bob ? ? ? ?12 ? ? 98 millor ? ? 15 ? ? 15
通常在調(diào)用完agg函數(shù)后需要reset_index,因?yàn)閜andas會(huì)默認(rèn)將groupby()的列也做為index傳到結(jié)果中
>>> df.groupby('A').B.agg(['min', 'max']) ? ? ? ? min ?max A ? ? ? ? ? ? ?? bob ? ? ?12 ? 98 millor ? 15 ? 15 >>> df.groupby('A').B.agg(['min', 'max']).reset_index() ? ? ? ? A ?min ?max 0 ? ? bob ? 12 ? 98 1 ?millor ? 15 ? 15
這就是python小工具關(guān)于agg函數(shù)的介紹,挺有用 的一個(gè)函數(shù)。
pandas詳解 聚合運(yùn)算agg()
在數(shù)據(jù)分析中,分組聚合二者缺一不可。對(duì)數(shù)據(jù)聚合(求和、平均值等)通常是不可避免的。pd.agg()很方便進(jìn)行聚合操作。
1. 創(chuàng)建DataFrame對(duì)象
import pandas as pd df1 = pd.DataFrame({'sex':list('FFMFMMF'),'smoker':list('YNYYNYY'),'age':[21,30,17,37,40,18,26],'weight':[120,100,132,140,94,89,123]})
grouped = df1.groupby(['sex','smoker']) # sex有 F M 二值,smoker有 Y N 二值,故分成四組。
2. 單列聚合
grouped['age'].agg('mean')
sex smoker F N 30.0 Y 28.0 M N 40.0 Y 17.5 Name: age, dtype: float64
3. 多列聚合
grouped.agg('mean')
4. 多種聚合運(yùn)算
grouped['age'].agg(['min','max'])
5. 多種聚合運(yùn)算并更改列名
grouped['age'].agg([('A','mean'),('B','max')])
6. 不同的列運(yùn)用不同的聚合函數(shù)
grouped.agg({'age':['sum','mean'], 'weight':['min','max']})
7. 使用自定義的聚合函數(shù)
def Max_cut_Min(group): return group.max()-group.min() grouped.agg(Max_cut_Min)
8. 方便的descibe
grouped.describe()
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python中函數(shù)的創(chuàng)建與調(diào)用你了解嗎
這篇文章主要為大家詳細(xì)介紹了Python中函數(shù)的創(chuàng)建與調(diào)用,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-03-03Django?ORM?事務(wù)和查詢優(yōu)化的操作方法
這篇文章主要介紹了Django?ORM?事務(wù)和查詢優(yōu)化,包括事務(wù)操作、ORM 惰性查詢及only與defer相關(guān)知識(shí),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-09-09OpenCV-Python實(shí)現(xiàn)通用形態(tài)學(xué)函數(shù)
本文將結(jié)合實(shí)例代碼,介紹OpenCV-Python實(shí)現(xiàn)通用形態(tài)學(xué)函數(shù),包含開運(yùn)算,閉運(yùn)算等復(fù)雜的形態(tài)學(xué)運(yùn)算,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-06-06Python浮點(diǎn)數(shù)四舍五入問題的分析與解決方法
這篇文章主要給大家介紹了關(guān)于Python中浮點(diǎn)數(shù)四舍五入問題的分析與解決方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11梅爾倒譜系數(shù)(MFCC)實(shí)現(xiàn)
這篇文章主要為大家詳細(xì)介紹了梅爾倒譜系數(shù)(MFCC)實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-06-06基于Python實(shí)現(xiàn)微博抓取GUI程序
在前面的分享中,我們制作了一個(gè)天眼查 GUI 程序,今天我們?cè)谶@個(gè)的基礎(chǔ)上,繼續(xù)開發(fā)新的功能,微博抓取工具,感興趣的可以了解一下2022-09-09Python3 加密(hashlib和hmac)模塊的實(shí)現(xiàn)
本篇文章主要介紹了Python3 加密(hashlib / hmac)模塊的實(shí)現(xiàn),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-11-11