Pandas数据聚合:探索groupby与agg/aggregate的强大功能

在数据分析与处理的广阔领域中,Pandas以其高效的数据处理能力和丰富的功能库成为了无数数据科学家和分析师的首选工具。其中,groupby结合agg或aggregate方法更是实现数据聚合分析的利器。本文将深入探讨Pandas中groupby与agg/aggregate的使用,帮助读者更好地理解和运用这一强大功能,从而在数据分析中事半功倍。

一、Pandas聚合简介

在Pandas中,数据聚合是指将数据按照特定条件(如某列的值)进行分组,并对每个分组内的数据进行汇总计算的过程。这一过程类似于SQL中的GROUP BY语句结合聚合函数的使用。Pandas通过groupby方法实现数据分组,并通过agg或aggregate方法应用聚合函数,从而得到每个分组的汇总统计结果。

二、groupby方法的基本使用

groupby方法是Pandas中实现数据分组的关键。它接受一个或多个列名作为参数,根据这些列中的值将数据分为不同的组。使用groupby后,返回一个GroupBy对象,该对象支持多种聚合操作。

python

import pandas as pd 


# 示例数据 

data = { 

    'Name': ['Alice', 'Bob', 'Carol', 'David', 'Emily', 'Bob', 'Carol'], 

    'Age': [25, 30, 35, 40, 45, 30, 35], 

    'City': ['Beijing', 'London', 'Paris', 'Tokyo', 'London', 'London', 'Paris'], 

    'Salary': [8000, 6000, 5500, 7000, 4500, 6000, 5500] 

df = pd.DataFrame(data) 


# 按照'City'列进行分组 

grouped = df.groupby('City') 


# 对分组后的数据进行迭代输出 

for city, group in grouped: 

    print(f"City: {city}") 

    print(group) 

    print()

三、agg/aggregate方法的聚合操作

agg和aggregate方法是Pandas中用于对分组后的数据进行聚合计算的函数,它们功能相似,但agg方法更常用且灵活。这两个方法可以接受多种形式的参数,包括内置聚合函数、其他库中的函数以及自定义函数。

1. 内置聚合函数

Pandas提供了丰富的内置聚合函数,如count、sum、mean、median、std(标准差)、var(方差)、min、max等。这些函数可以直接应用于agg或aggregate方法中。

python

# 使用内置函数进行聚合 

grouped_agg = df.groupby('City').agg({ 

    'Age': ['mean', 'min', 'max'], 

    'Salary': 'sum' 

}) 

print(grouped_agg)

2. 自定义函数

除了内置函数,用户还可以定义自己的聚合函数,并将其传递给agg或aggregate方法。这使得聚合操作更加灵活和强大。

python

def my_mean(values): 

    return sum(values) / len(values) 


grouped_custom = df.groupby('City').agg(my_mean_salary=('Salary', my_mean)) 

print(grouped_custom)

3. 传入多个函数

为了对同一个序列应用多个聚合函数,可以将这些函数放入一个列表中,然后将列表传递给agg方法。

python

grouped_multi = df.groupby('City')['Salary'].agg([np.mean, np.std, np.count_nonzero]) 

print(grouped_multi)

四、高级分组技巧

除了基于列值进行分组外,Pandas还支持基于计算结果的分组。这意味着可以首先对数据应用某个函数或表达式,然后根据其结果进行分组。

python

# 示例:基于年龄是否大于30分组 

def age_group(age): 

    return 'Over 30' if age > 30 else 'Under 30' 

http://zulin.china-bbs.com/news/0724.pdf

http://zulin.china-bbs.com/news/724.pdf

http://www.china-bbs.com/news/2354.pdf

http://www.china-bbs.com/news/1654.pdf

http://sh.news-618.cn/news/sh1.pdf

http://ss.news-618.cn/news/ss1.pdf

http://jd.news-618.cn/news/jd1.pdf

http://zf.news-618.cn/news/zf1.pdf

http://ls.news-618.cn/news/ls1.pdf

http://rk.news-618.cn/news/rk1.pdf

http://sk.news-618.cn/news/sk1.pdf

http://gx.news-618.cn/news/gx1.pdf

http://sd.news-618.cn/news/sd1.pdf

http://xx.news-618.cn/news/xx1.pdf

http://zhejiang.shtcxxw.cn/news/2.pdf

http://gx.news-618.cn/news/6.pdf

http://yuansen.hftcbmw.cn/news/1.pdf

http://mirui.zjtcbmw.cn/news/3.pdf

http://henan.jxtcbmw.cn/news/4.pdf

http://hunan.sctcbmw.cn/news/5.pdf

http://hntcxxw.cn/gushi/g5_20240226210443.pdf

http://hntcxxw.cn/gushi/5_20240227101146.pdf

https://bbs.tiancebbs.cn/

http://zulin.china-bbs.com/

http://www.china-bbs.com/

http://360.njtcbmw.cn/

http://shenma.sctcbmw.cn/

http://sogou.jxtcbmw.cn/

http://toutiao.lstcxxw.cn/

http://baidu.cqtcxxw.cn/

http://sina.tjtcbmw.cn/

http://douyin.shtcxxw.cn/

http://kuaishou.zjtcbmw.cn/

http://wz.cqtcxxw.cn/

http://mirui.zjtcbmw.cn/

http://fenglin.hftcbmw.cn/

http://suzhou.ahtcbmw.cn/

https://www.tiancebbs.cn/

https://bbs.tiancebbs.cn/sitemap.xml

http://zulin.china-bbs.com/sitemap.xml

http://www.china-bbs.com/sitemap.xml

http://360.njtcbmw.cn/sitemap.xml

http://shenma.sctcbmw.cn/sitemap.xml

http://sogou.jxtcbmw.cn/sitemap.xml

http://toutiao.lstcxxw.cn/sitemap.xml

http://baidu.cqtcxxw.cn/sitemap.xml

http://sina.tjtcbmw.cn/sitemap.xml

http://douyin.shtcxxw.cn/sitemap.xml

http://kuaishou.zjtcbmw.cn/sitemap.xml

http://wz.cqtcxxw.cn/sitemap.xml

http://mirui.zjtcbmw.cn/sitemap.xml

http://fenglin.hftcbmw.cn/sitemap.xml

http://suzhou.ahtcbmw.cn/sitemap.xml

http://xx.news-618.cn/sitemap.xml

http://sd.news-618.cn/sitemap.xml

http://gx.news-618.cn/sitemap.xml

http://sk.news-618.cn/sitemap.xml

http://rk.news-618.cn/sitemap.xml

http://ls.news-618.cn/sitemap.xml

http://zf.news-618.cn/sitemap.xml

http://ss.news-618.cn/sitemap.xml

http://jd.news-618.cn/sitemap.xml

http://sh.news-618.cn/sitemap.xml

http://www.news-618.cn/sitemap.xml

http://www.618xxw.cn/sitemap.xml

http://gs.ahtcbmw.cn/sitemap.xml

http://nx.ahtcbmw.cn/sitemap.xml

http://qh.ahtcbmw.cn/sitemap.xml

http://xj.ahtcbmw.cn/sitemap.xml

http://gz.ahtcbmw.cn/sitemap.xml

http://sd.tjtcbmw.cn/sitemap.xml

http://gd.zjtcbmw.cn/sitemap.xml

http://zhejiang.shtcxxw.cn/sitemap.xml

http://fujian.lstcxxw.cn/sitemap.xml

http://hebei.cqtcxxw.cn/sitemap.xml

http://henan.jxtcbmw.cn/sitemap.xml

http://hunan.sctcbmw.cn/sitemap.xml

http://njtcbmw.cn/sitemap.xml

http://hftcbmw.cn/sitemap.xml

http://www.ahtcbmw.cn/sitemap.xml

http://hztcbmw.cn/sitemap.xml

http://cd.ahtcbmw.cn/sitemap.xml

http://tianjin.hztcbmw.cn/sitemap.xml

http://beijing.hftcbmw.cn/sitemap.xml

http://xibai.hftcbmw.cn/sitemap.xml

http://yuansen.hftcbmw.cn/sitemap.xml

http://zhaohang.hftcbmw.cn/sitemap.xml

http://hanyu.hftcbmw.cn/sitemap.xml

http://jinyuana.njtcbmw.cn/sitemap.xml

http://kexing.hftcbmw.cn/sitemap.xml

http://defan.hftcbmw.cn/sitemap.xml

http://hlj.tjtcxxw.cn/sitemap.xml

http://yn.hntcxxw.cn/sitemap.xml

http://xz.xztcxxw.cn/sitemap.xml

http://nmg.jstcbmw.cn/sitemap.xml

http://shanxi.gstcxxw.cn/sitemap.xml

http://hubei.lztcxxw.cn/sitemap.xml

http://gx.lztcxxw.cn/sitemap.xml

http://hn.sytcxxw.cn/sitemap.xml

http://ah.hntcxxw.cn/sitemap.xml

https://www.tiancebbs.cn/fang/

https://www.tiancebbs.cn/swhf/

https://www.tiancebbs.cn/qdyc/

https://www.tiancebbs.cn/mayi-info.xml

https://www.tiancebbs.cn/mayi-category.xml

https://www.tiancebbs.cn/mayi-news.xml

https://www.tiancebbs.cn/mayi-store.xml

https://www.tiancebbs.cn/sitemap.xml

http://www.wooking.com.cn/topic/673

http://www.wooking.com.cn/topic/672

http://www.wooking.com.cn/topic/671

http://www.wooking.com.cn/topic/670

http://www.wooking.com.cn/topic/669

http://www.wooking.com.cn/topic/668

http://www.wooking.com.cn/topic/667

http://www.wooking.com.cn/topic/666

http://www.wooking.com.cn/topic/665

https://www.acfun.cn/a/ac45658824

https://www.acfun.cn/a/ac45658096

https://www.acfun.cn/a/ac45657610

https://www.acfun.cn/a/ac45657369

https://www.acfun.cn/a/ac45657192

https://www.acfun.cn/a/ac45657106

https://www.acfun.cn/a/ac45656932

https://www.acfun.cn/a/ac45656345

https://weibo.com/ttarticle/p/show?id=2309405061232716546279

https://weibo.com/ttarticle/p/show?id=2309405061228992266833

https://weibo.com/ttarticle/p/show?id=2309405061226018505703

https://weibo.com/ttarticle/p/show?id=2309405061224307229203

https://weibo.com/ttarticle/p/show?id=2309405061221266358463

https://weibo.com/ttarticle/p/show?id=2309405061218594587337

https://weibo.com/ttarticle/p/show?id=2309405061214647746579

https://weibo.com/ttarticle/p/show?id=2309405061206192030885

https://www.toutiao.com/item/7396688446414144051/

grouped_age = df.groupby(df['Age'].apply(age_group)) 

# 接下来可以进行聚合操作

五、

Pandas的groupby与agg/aggregate方法为实现复杂的数据聚合分析提供了强大的支持。通过灵活运用这些方法,可以轻松地处理各种数据分析任务,从简单的平均值计算到复杂的自定义聚合操作,无所不能。希望本文能够帮助读者更好地理解和应用这些功能,从而在数据分析的道路上越走越远。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,830评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,992评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,875评论 0 331
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,837评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,734评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,091评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,550评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,217评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,368评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,298评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,350评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,027评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,623评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,706评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,940评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,349评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,936评论 2 341

推荐阅读更多精彩内容