温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎样用pandas分组聚合

发布时间:2026-09-23 21:03:58 来源:亿速云 阅读:94 作者:小樊 栏目:编程语言

在 pandas 中,“分组聚合”通常指的是 groupby + 聚合函数 的使用。下面从基础到常见用法逐步说明。


一、基本语法

df.groupby(分组列)[聚合列].聚合函数()

二、最简单示例

假设有数据:

import pandas as pd

df = pd.DataFrame({
    '班级': ['A', 'A', 'B', 'B'],
    '性别': ['男', '女', '男', '女'],
    '成绩': [80, 90, 70, 85]
})

按“班级”分组,求平均成绩

df.groupby('班级')['成绩'].mean()

结果:

班级
A    85.0
B    77.5

三、多列分组

df.groupby(['班级', '性别'])['成绩'].mean()

四、对多列聚合

df.groupby('班级').agg({
    '成绩': 'mean',
    '性别': 'count'
})

五、常用聚合函数

函数 说明
mean() 均值
sum() 求和
count() 计数
max() 最大值
min() 最小值
std() 标准差
median() 中位数

六、使用 agg 一次多个聚合

df.groupby('班级')['成绩'].agg(['mean', 'max', 'min'])

七、自定义聚合函数

def my_func(x):
    return x.max() - x.min()

df.groupby('班级')['成绩'].agg(my_func)

八、分组后重置索引

groupby 默认返回 Series / DataFrame(带多级索引)

df.groupby('班级')['成绩'].mean().reset_index()

九、按条件分组(bins)

df['成绩区间'] = pd.cut(df['成绩'], [0, 80, 100])
df.groupby('成绩区间')['成绩'].count()

十、常见易错点

  1. 分组列有空值
    df.groupby('班级', dropna=False)
    
  2. 聚合后列名变化 用 rename 或 agg(new_name=('成绩','mean'))

如果你有 具体数据或业务场景(比如销售、日志、用户行为),可以直接发出来,我可以帮你写针对性的分组聚合代码。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手