为了账号安全,请及时绑定邮箱和手机立即绑定

Pandas Groupby函数:高效数据分组与聚合

标签:
杂七杂八

Pandas GroupBy用法详解

在Python中,pandas库是一种强大的数据处理和分析工具,它提供了许多用于数据操作和分析的方法。其中,groupby是pandas库中一个非常重要的功能,它可以帮助我们对数据进行分组和聚合运算。本文将详细介绍groupby的用法,并通过实际案例帮助大家更好地理解和掌握这一功能。

groupby基础用法

groupby的基本用法是将数据按照某个或多个字段进行分组,然后对每个分组应用一个函数。其基本语法如下:

df.groupby(by=['column1', 'column2'])

其中,df表示需要处理的DataFrame,by参数用于指定分组的列名。

例如,我们有一个包含学生信息的DataFrame,如下所示:

df = pd.DataFrame({
    '姓名': ['张三', '李四', '王五', '赵六', '孙七'],
    '班级': ['一班', '二班', '三班', '一班', '二班'],
    '成绩': [80, 90, 70, 85, 92]
})

如果我们想按照班级对学生进行分组并计算每个班级的平均成绩,可以使用以下代码:

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

输出结果:

班级
一班    82.5
二班    91.0
三班    70.0
Name: 成绩, dtype: float64

在这个例子中,我们首先使用groupby函数按照’班级’列对数据进行分组,然后使用mean函数计算每个分组的平均成绩。

groupby进阶用法

除了基本的分组和聚合运算外,groupby还有许多其他高级用法。

多级分组

groupby支持多级分组,即根据多个字段对数据进行分组。其基本语法如下:

df.groupby([['column1', 'column2'], ['column3', 'column4']])

例如,我们有一个包含学生信息和课程信息的DataFrame,如下所示:

df = pd.DataFrame({
    '姓名': ['张三', '李四', '王五', '赵六', '孙七'],
    '班级': ['一班', '二班', '三班', '一班', '二班'],
    '课程': ['数学', '英语', '语文', '数学', '英语'],
    '成绩': [80, 90, 70, 85, 92]
})

如果我们想按照班级和课程对学生进行分组并计算每个班级每门课程的平均成绩,可以使用以下代码:

average_score = df.groupby(['班级', '课程'])['成绩'].mean()
print(average_score)

输出结果:

班级   课程
一班    英语    85.0
       数学    82.5
二班    英语    91.0
       数学    90.0
Name: 成绩, dtype: float64

在这个例子中,我们首先使用groupby函数按照’班级’和’课程’列对数据进行多级分组,然后使用mean函数计算每个分组的平均成绩。

分组运算

groupby还支持在分组上应用各种运算,如求和、最大值、最小值等。这些运算可以通过agg函数实现。其基本语法如下:

df.groupby('column1')['column2'].agg([func1, func2, ...])

例如,我们有一个包含商品销售信息的DataFrame,如下所示:

df = pd.DataFrame({
    '商品': ['商品A', '商品B', '商品C', '商品D', '商品E'],
    '销售额': [100, 200, 150, 80, 120
点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消