gpt4 book ai didi

python - 如何在 pandas 中重置 cumsum streak

转载 作者:行者123 更新时间:2023-12-01 09:07:40 26 4
gpt4 key购买 nike

我有以下数据框:

df = pd.DataFrame({'col1':['A','A','A','A','A','A','A','B','B','B','B','B','B','B'],'col2':[1,1,1,0,1,1,1,1,0,1,1,0,0,0],'col3':[.5,.5,.3,.2,.1,.4,.7,.4,.5,.3,.2,.4,.5,.6]})

我需要 col3 的运行总和,但只要 col1 发生变化或 col2 中有零,总和就应该重置。我应该返回如下内容: mock output

我尝试了以下方法:

df['cum'] = df.groupby([df.col1, df.col2]).col3.cumsum()

但是,它没有正确重置。它重置但继续对后续行求和。

最佳答案

在这里拍照

zeros = df.col2.eq(0)
vals = df.groupby(['col1', df.col2.ne(df.col2.shift()).cumsum()]).col3.cumsum()

df['id'] = np.where(zeros, 0, vals)
<小时/>

说明:

每当col20时,只需设置0。否则,只需设置分组值的cumsum

关于python - 如何在 pandas 中重置 cumsum streak,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51914153/

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