gpt4 book ai didi

python - 如果列值大于其他值,如何在python中创建累积总和列

转载 作者:行者123 更新时间:2023-12-03 21:10:29 24 4
gpt4 key购买 nike

我现在正在使用 Pandas 获取累积总和列。但是,仅当其他列值大于其他列值时,此列才包括累积总和。这是我当前数据的示例:

Index     A       B       C
0 1 20 3
1 10 15 11
2 20 12 25
3 30 18 32
4 40 32 17
5 50 12 4
那我要 cumsum()栏目 一个 如果列 大于 C ,如果不是,则值为零。结果栏 D 原版 df应该看起来像:
Index     A       B       C      D
0 1 20 3 1
1 10 15 11 11
2 20 12 25 0
3 30 18 32 0
4 40 32 17 40
5 50 12 4 90
我提前感谢任何支持。

最佳答案

可能有更优雅的解决方案,但这也有效。
我们首先创建两个虚拟列 - x 和 x_shift。
df.x 是有条件的,我们保留 df.A 的值,其中 df.B > df.C。
df.x_shift 是我们将值向下移动一行并用 0 填充 na 的地方。
在最后一步,我们有条件地添加 df.A 和 df.x_shift,然后删除 df.x 和 df.x_shift

df['x'] = pd.DataFrame(np.where(df.B>df.C, df.A ,0))
df['x_shift'] = df.x.shift(1).fillna(0)
df['D'] = pd.DataFrame(np.where(df.B >df.C, df.A+df.x_shift,0))
df= df.drop(['x','x_shift'], axis=1

关于python - 如果列值大于其他值,如何在python中创建累积总和列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64127733/

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