gpt4 book ai didi

python - Pandas :一列的累计总和基于另一列的值

转载 作者:太空狗 更新时间:2023-10-30 02:02:36 31 4
gpt4 key购买 nike

我正在尝试从 Pandas 数据框中计算一些统计数据。它看起来像这样:

id     value     conditional
1 10 0
2 20 0
3 30 1
1 15 1
3 5 0
1 10 1

因此,我需要为每个 id 从上到下计算列 value 的累计和,但仅当 conditional 为1.

所以,这应该给我这样的东西:

id     value     conditional   cumulative sum
1 10 0 0
2 20 0 0
3 30 1 30
1 15 1 15
3 5 0 30
1 10 1 25

所以id=1的和只有在第4行和第6行的conditional=1时才取,第1行的值不算。我如何在 Pandas 中执行此操作?

最佳答案

您可以创建一个 Series,它是 valueconditional 的乘积,并为每个 id 组取其累加和:

df['cumsum'] = (df['value']*df['conditional']).groupby(df['id']).cumsum()
df
Out:
id value conditional cumsum
0 1 10 0 0
1 2 20 0 0
2 3 30 1 30
3 1 15 1 15
4 3 5 0 30
5 1 10 1 25

关于python - Pandas :一列的累计总和基于另一列的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40159490/

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