python?pandas中的agg函數(shù)用法
pandas中的agg函數(shù)
python中的agg函數(shù)通常用于調(diào)用groupby()函數(shù)之后,對數(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ù)分析中,分組聚合二者缺一不可。對數(shù)據(jù)聚合(求和、平均值等)通常是不可避免的。pd.agg()很方便進(jìn)行聚合操作。
1. 創(chuàng)建DataFrame對象
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í)現(xiàn)簡單生成驗(yàn)證碼功能【基于random模塊】
這篇文章主要介紹了Python實(shí)現(xiàn)簡單生成驗(yàn)證碼功能,結(jié)合實(shí)例形式分析了Python基于random模塊生成隨機(jī)字符串的相關(guān)操作技巧,需要的朋友可以參考下2018-02-02
python 文本單詞提取和詞頻統(tǒng)計(jì)的實(shí)例
今天小編就為大家分享一篇python 文本單詞提取和詞頻統(tǒng)計(jì)的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12
Python實(shí)現(xiàn)提取或替換PPT中文本與圖片的示例代碼
這篇文章主要為大家詳細(xì)介紹了Python如何實(shí)現(xiàn)提取保存ppt中的圖片和替換ppt模板的文本,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2023-01-01
jupyter 中文亂碼設(shè)置編碼格式 避免控制臺輸出的解決
這篇文章主要介紹了jupyter 中文亂碼設(shè)置編碼格式 避免控制臺輸出的解決,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04
基于Python實(shí)現(xiàn)簡易的動(dòng)漫圖片轉(zhuǎn)換器
本文旨在利用Python語言制作一個(gè)將普通照片轉(zhuǎn)換成動(dòng)漫圖片的小工具,其中使用opencv的非標(biāo)準(zhǔn)庫實(shí)現(xiàn)對圖片完成轉(zhuǎn)換,感興趣的可以嘗試一下2022-08-08

