【发布时间】:2019-12-21 22:48:08
【问题描述】:
我有一个带有两列的 pandas 数据框,
Item Value
0 A 7
1 A 2
2 A -6
3 A -70
4 A 8
5 A 0
我想在 Value 列上累积总和。但是,如果值变为负数,则在创建累积和时,我想将其重置回 0。
我目前正在使用如下所示的循环来执行此操作,
sum_ = 0
cumsum = []
for val in sample['Value'].values:
sum_ += val
if sum_ < 0:
sum_ = 0
cumsum.append(sum_)
print(cumsum) # [7, 9, 3, 0, 8, 8]
我正在寻找一种更有效的方法来在纯熊猫中执行此操作。
【问题讨论】:
-
我想我们没有pandas方法可以实现这个
-
我也有同样的想法,最终解决了我在问题中发布的循环的解决方案。我想知道我错过了一些可以施展魔法的熊猫把戏
-
你所做的更像我可以提供的,只是我可能使用 numba 略有不同
-
stackoverflow.com/questions/56904390/… 你可以从那里得到一些解决方案,即使那不是 100% 相同
-
好问题,将此作为improvement suggestion 发布到 GitHub 上的
pandas@WeNYoBen