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,因為pandas會默認(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ù)的介紹,挺有用 的一個函數(shù)。
pandas詳解 聚合運算agg()
在數(shù)據(jù)分析中,分組聚合二者缺一不可。對數(shù)據(jù)聚合(求和、平均值等)通常是不可避免的。pd.agg()很方便進行聚合操作。
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. 多種聚合運算
grouped['age'].agg(['min','max'])
5. 多種聚合運算并更改列名
grouped['age'].agg([('A','mean'),('B','max')])
6. 不同的列運用不同的聚合函數(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()
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python中函數(shù)的創(chuàng)建與調(diào)用你了解嗎
這篇文章主要為大家詳細(xì)介紹了Python中函數(shù)的創(chuàng)建與調(diào)用,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-03-03Django?ORM?事務(wù)和查詢優(yōu)化的操作方法
這篇文章主要介紹了Django?ORM?事務(wù)和查詢優(yōu)化,包括事務(wù)操作、ORM 惰性查詢及only與defer相關(guān)知識,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-09-09OpenCV-Python實現(xiàn)通用形態(tài)學(xué)函數(shù)
本文將結(jié)合實例代碼,介紹OpenCV-Python實現(xiàn)通用形態(tài)學(xué)函數(shù),包含開運算,閉運算等復(fù)雜的形態(tài)學(xué)運算,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-06-06Python3 加密(hashlib和hmac)模塊的實現(xiàn)
本篇文章主要介紹了Python3 加密(hashlib / hmac)模塊的實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-11-11