agg是什么

2024-10-17 百科达人 阅读 本站作者

来源:AI入门学习JLx闻科网 - 专业百科问答知识网站!

作者:小伍哥JLx闻科网 - 专业百科问答知识网站!

利用agg()函数可以进行更灵活的聚合操作JLx闻科网 - 专业百科问答知识网站!

Pandas中的的agg()函数为aggregate的缩写,总数、合计、聚合的意思,是一个功能非常强大的函数,在Pandas中可以利用agg()对Series、DataFrame以及groupby()后的结果进行聚合操作。JLx闻科网 - 专业百科问答知识网站!

该函数传入的参数为字典,键为变量名,值为对应的聚合函数字符串,譬如JLx闻科网 - 专业百科问答知识网站!

{'value1':['sum','max'], 'value2':['median','max','min]}JLx闻科网 - 专业百科问答知识网站!

就代表对数据框中的value1列进行求和、最大值操作,对value2列进行中位数、最大值、最小值操作。JLx闻科网 - 专业百科问答知识网站!

下面用几个简单的例子演示其具体使用方式,先构建一个基础的数据,用于下面的实验。JLx闻科网 - 专业百科问答知识网站!

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

在对Series进行聚合时,因为只有1列,所以可以不使用字典的形式传递参数,直接传入函数名列表即可:JLx闻科网 - 专业百科问答知识网站!

只计算工资列的最小值

data['salary'].agg('min')8000

求工资列列的最小值、最大值以及中位数

data['salary'].agg(['min','max','median'])min 8000.0max 47000.0median 31500.0Name: salary, dtype: float642、聚合数据框

对数据框进行聚合时因为有多列,所以要使用字典的方式传入聚合方案:JLx闻科网 - 专业百科问答知识网站!

data.agg({'level': ['max','min'], 'salary': ['mean','std']}) level salarymax P8 NaNmin P5 NaNmean NaN 30100.000000std NaN 13016.655997

值得注意的是,因为上例中对于不同变量的聚合方案不统一,所以会出现NaN的情况。JLx闻科网 - 专业百科问答知识网站!

3、聚合groupby()结果

求每个公司-每个层级工资的最大值、最小值、中位数JLx闻科网 - 专业百科问答知识网站!

data.groupby(['company','level']).agg({'salary':['min','max','median']})salary min 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 salary min 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

可以注意到虽然我们使用reset_index()将索引列还原回变量,而在pandas 0.25.0以及之后的版本中,可以使用pd.NamedAgg()来为聚合后的每一列赋予新的名字:JLx闻科网 - 专业百科问答知识网站!

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 2000

猜你感兴趣
agg是什么

agg是什么

来源:AI入门学习作者:小伍哥利用agg()函数可以进行更灵活的聚合操作Pandas中的的agg()函数为aggregate的缩写,总数、合计、聚合的意思,是一个功能非常强大的函数,在Pandas中可以

10-17 0阅读
世界医学院排名

世界医学院排名

上篇整理了国内医学专业与医学院综合排名,今天再来看看医学专业的世界大学排名吧,希望可以给对医学感兴趣的学子和家长提供升学目标参考~世界大学医学专业Top5 临床医学全球Top

10-17 0阅读
影视大学排名

影视大学排名

01 中国传媒大学历史沿革:中国传媒大学戏剧影视学院成立于2002年,是学校艺术学科中规模较大的学院。多年来,学院注重理论与实践相结合,形成了鲜明的办学特色和优势。2017年,戏剧

10-17 0阅读
南京大学qs排名

南京大学qs排名

4月6日,QS全球教育集团发布了第十二次世界大学学科排名。在此次QS世界大学学科排名中,中国内地共有93所高校上榜,数量排名全球第三。其中,南京大学总上榜学科数量为33个,位居中国

10-17 0阅读
通信学校排名

通信学校排名

导读通信工程专业近年来可谓是热得发烫,尤其是在信息技术飞速发展的今天,家长和考生们都对这个专业趋之若鹜。你知道?北京邮电大学和西安电子科技大学这两所高校在通信领域可是

10-17 0阅读
coe是什么职位

coe是什么职位

上一篇文章提到,集团化企业财经管理需要承担的核心职能,若集团化企业采用财经三支柱管理模型,则需要将财经管理核心职能分解至每个支柱,本文承接上篇,基于财经体系16项核心职能、

10-17 0阅读