gpt4 book ai didi

python - pandas 中的条件 cumsum

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

我在 pandas 中有以下数据框

   code     rank    quant       sales
123 1 0 2
123 1 12 2
123 1 0 2
123 2 0 1
123 2 10 1

我想按排名对销售分组进行条件累加。如果 quant 不为零,则将其添加到同一行的累积和中。

   code     rank    quant       sales      cumsum
123 1 0 2 2
123 1 12 2 16
123 1 0 2 18
123 2 0 1 1
123 2 10 1 12

如何在 pandas 中做到这一点。

最佳答案

先添加列,然后使用 GroupBy.cumsumdf['rank']系列:

df['cumsum'] = df['quant'].add(df['sales']).groupby(df['rank']).cumsum()

或者对两列使用sum:

df['cumsum'] = df[['quant', 'sales']].sum(axis=1).groupby(df['rank']).cumsum()

替代方案是在groupby之前创建新列:

df['cumsum'] = (df.assign(cumsum=df['quant'].add(df['sales']))
.groupby('rank')['cumsum'].cumsum())

print (df)
code rank quant sales cumsum
0 123 1 0 2 2
1 123 1 12 2 16
2 123 1 0 2 18
3 123 2 0 1 1
4 123 2 10 1 12

关于python - pandas 中的条件 cumsum,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57625422/

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