在 pandas 中,分组聚合最常用的是 groupby + 聚合函数。下面从基础到进阶给你系统讲一下。
groupby + aggimport pandas as pd
df = pd.DataFrame({
'部门': ['销售', '销售', '技术', '技术', '技术'],
'姓名': ['张三', '李四', '王五', '赵六', '钱七'],
'工资': [5000, 6000, 8000, 9000, 10000],
'年龄': [25, 30, 28, 35, 40]
})
df.groupby('部门')['工资'].mean()
df.groupby(['部门', '年龄'])['工资'].sum()
df.groupby('部门').agg({
'工资': 'sum',
'年龄': 'mean'
})
内置聚合函数:
summeancountmax / minstd / varmediandf.groupby('部门')['工资'].agg(['sum', 'mean', 'max'])
或:
df.groupby('部门').agg(
工资总和=('工资', 'sum'),
工资均值=('工资', 'mean')
)
df.groupby('部门')['工资'].sum().reset_index()
df.groupby('部门')['工资'].agg(
lambda x: x.max() - x.min()
)
for name, group in df.groupby('部门'):
print(name)
print(group)
agg + 多列多函数df.groupby('部门').agg({
'工资': ['sum', 'mean'],
'年龄': 'max'
})
apply(慢),能用 agg 就别用 apply如果你有 具体业务场景(如按时间、按条件分组、多级索引),可以贴代码,我可以帮你写完整示例。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。