【Python】Pandas中的宝藏函数-agg()
data = pd.DataFrame({"company":['百度', '阿里', '百度', '阿里', '百度', '腾讯', '腾讯', '阿里', '腾讯', '阿里'],'level': ['P7', 'P7', 'P8', 'P5', 'P8', 'P7', 'P8', 'P7', 'P5', 'P6'],"salary":[43000, 24000, 40000, 39000, 8000, 47000, 25000, 16000, 21000, 38000],"age":[25, 34, 49, 42, 28, 23, 45, 21, 34, 29]})
1、聚合Series 
只计算工资列的最小值 
data['salary'].agg('min')8000
求工资列列的最小值、最大值以及中位数 
data['salary'].agg(['min','max','median'])min 8000.0max 47000.0median 31500.0Name: salary, dtype: float64
2、聚合数据框 
data.agg({'level': ['max','min'], 'salary': ['mean','std']})level salarymax P8 NaNmin P5 NaNmean NaN 30100.000000std NaN 13016.655997
NaN的情况。3、聚合groupby()结果 
data.groupby(['company','level']).agg({'salary':['min','max','median']})salarymin max mediancompany level百度 P7 43000 43000 43000P8 8000 40000 24000腾讯 P5 21000 21000 21000P7 47000 47000 47000P8 25000 25000 25000阿里 P5 39000 39000 39000P6 38000 38000 38000P7 16000 24000 20000data.groupby(['company','level']).agg({'salary':['min','max','median']}).reset_index(drop=False)company level salarymin max median0 百度 P7 43000 43000 430001 百度 P8 8000 40000 240002 腾讯 P5 21000 21000 210003 腾讯 P7 47000 47000 470004 腾讯 P8 25000 25000 250005 阿里 P5 39000 39000 390006 阿里 P6 38000 38000 380007 阿里 P7 16000 24000 20000
data.groupby(['company','level']).agg(min_salary = pd.NamedAgg(column='salary', aggfunc='min'),max_salary = pd.NamedAgg(column='salary', aggfunc='max'),median = pd.NamedAgg(column='salary', aggfunc='median')).reset_index(drop=False)company level min_salary max_salary median0 百度 P7 43000 43000 430001 百度 P8 8000 40000 240002 腾讯 P5 21000 21000 210003 腾讯 P7 47000 47000 470004 腾讯 P8 25000 25000 250005 阿里 P5 39000 39000 390006 阿里 P6 38000 38000 380007 阿里 P7 16000 24000 20000
往期精彩回顾 本站qq群851320808,加入微信群请扫码: 
评论
