如何在DataFrame中按model列添加分组求和列
问题描述
现有一个包含model和qty列的DataFrame,数据如下:
import pandas as pd df = pd.DataFrame({'model':['a','a','a','b', 'b','c','c','d','d','d'], 'qty':[1,2,1,3,1,5, 2,3,4,5]})
需要在DataFrame末尾新增一列,该列显示对应model分组下qty的总和——即每个相同model的行,都显示该组的qty合计值。
解决方案
可以使用pandas的groupby结合transform方法实现,该方法会将分组计算的结果映射回原DataFrame的每一行:
# 添加求和列 df['sum_qty'] = df.groupby('model')['qty'].transform('sum') # 查看最终结果 print(df)
执行后得到的结果如下:
| model | qty | sum_qty |
|---|---|---|
| a | 1 | 4 |
| a | 2 | 4 |
| a | 1 | 4 |
| b | 3 | 4 |
| b | 1 | 4 |
| c | 5 | 7 |
| c | 2 | 7 |
| d | 3 | 12 |
| d | 4 | 12 |
| d | 5 | 12 |
内容的提问来源于stack exchange,提问作者ghost_like
相关产品推荐
相关产品推荐

