pandas中groupby函数的使用

groupby() 函数是 Pandas 中用于分组数据的函数,它允许你根据指定的列对数据进行分组,然后对每个分组应用聚合函数。以下是一些 groupby() 函数的用法示例:

假设我们有一个包含学生姓名、班级和成绩的 DataFrame:

import pandas as pd

# 创建 DataFrame
data = {  '姓名': ['小明', '小红', '小明', '小红', '小明', '小红', '小明'],
    '班级': ['A', 'A', 'B', 'B', 'A', 'B', 'B'],
    '成绩': [80, 90, 85, 88, 92, 95, 89]}
df = pd.DataFrame(data)

基本用法

# 按班级分组
grouped = df.groupby('班级')

这会将 DataFrame 按照班级进行分组。

 对分组进行聚合操作

# 计算每个班级的平均成绩
average_score = grouped['成绩'].mean()
print(average_score)

这会计算每个班级的平均成绩。

同时应用多个聚合函数

# 计算每个班级的平均成绩和总成绩
agg_result = grouped['成绩'].agg(['mean', 'sum'])
print(agg_result)

这会计算每个班级的平均成绩和总成绩。

 按多列分组

# 按照班级和姓名分组,计算平均成绩
grouped_multi = df.groupby(['班级', '姓名'])
average_score_multi = grouped_multi['成绩'].mean()
print(average_score_multi)

这会按照班级和姓名两列进行分组,并计算每个分组的平均成绩。

 自定义聚合函数

# 定义自定义聚合函数,计算成绩的极差
def range_score(x):
    return x.max() - x.min()

# 按班级分组,应用自定义聚合函数
range_result = grouped['成绩'].agg(range_score)
print(range_result)

这会按班级分组,并应用自定义的聚合函数计算每个班级成绩的极差。

这些示例展示了 groupby() 函数的常见用法,可以根据实际需求选择不同的聚合函数来对数据进行分组分析。

  • 10
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值