在 pandas 中,分组聚合最常用的方式是 groupby() 配合聚合函数。下面从基础到进阶给你一个清晰的使用指南。
groupby + 聚合import pandas as pd
df = pd.DataFrame({
'部门': ['销售', '销售', '技术', '技术', '技术'],
'姓名': ['张三', '李四', '王五', '赵六', '钱七'],
'工资': [8000, 9000, 12000, 11000, 13000],
'年龄': [25, 30, 28, 35, 32]
})
df.groupby('部门')['工资'].mean()
结果:
部门
技术 12000.0
销售 8500.0
df.groupby('部门').agg({
'工资': 'mean',
'年龄': 'max'
})
df.groupby('部门')['工资'].agg(['mean', 'sum', 'count'])
df.groupby(['部门', '年龄'])['工资'].sum()
groupby 后默认是 Index:
df.groupby('部门')['工资'].sum().reset_index()
def salary_range(x):
return x.max() - x.min()
df.groupby('部门')['工资'].agg(salary_range)
df.groupby('部门').agg(
平均工资=('工资', 'mean'),
最高工资=('工资', 'max')
)
df.groupby('部门').filter(lambda x: x['工资'].mean() > 10000)
groupby 默认 不修改原 DataFramesum / mean.reset_index() 转回普通表如果你有 具体业务场景(如时间序列、透视表、性能优化),我可以给你更针对性的示例。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。