gpt4 book ai didi

python - 基于ID的累积SUM

转载 作者:行者123 更新时间:2023-12-01 01:15:51 25 4
gpt4 key购买 nike

问题:

我有一个从带有 pandas 的“csv”文件导入的数据框,如下所示(简化示例):

id  amount 
1 50
1 10
1 5
2 10
2 15
2 25
2 40

所以我们的想法是对金额进行求和并将结果添加到具有相同 id 的所有记录中,如下所示:

 id  amount total
1 50 65
1 10 65
1 5 65
2 10 90
2 15 90
2 25 90
2 40 90

因此,生成的数据帧应包含一个额外的列,总计与每个 ID 对应的金额,但保留原始数据帧,为了使其正常工作,每个 ID 不可能有一个包含该金额的记录。

我正在使用 pandas 并操作 csv 文件。

谢谢!

最佳答案

使用pandas.join

df.join(df.groupby('id').amount.sum(), rsuffix='_', on = 'id')

输出:

   id  amount  amount_
0 1 50 65
1 1 10 65
2 1 5 65
3 2 10 90
4 2 15 90
5 2 25 90
6 2 40 90

或者更好(感谢 W-B ):

df.assign(total = df.groupby('id').amount.transform('sum'))

输出

   id  amount  total
0 1 50 65
1 1 10 65
2 1 5 65
3 2 10 90
4 2 15 90
5 2 25 90
6 2 40 90

关于python - 基于ID的累积SUM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54355095/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com