【发布时间】:2021-05-22 15:36:49
【问题描述】:
我无法想出一种方法来对列执行累积求和并在达到某个值时创建一个标志。
所以给定一个数据框:
df = pd.DataFrame([[5,1],[6,1],[30,1],[170,0],[5,1],[10,1]],columns = ['a','b'])
a b
0 5 1
1 6 1
2 30 1
3 170 0
4 5 1
5 10 1
对于 A 列,如果达到最大值,我想执行累积和并将“标志”列值设置为 1。达到最大值后,它将重置为 0。在这种情况下,最大值为 40。任何超过 40 的累积总和都会触发重置
Desired Output
a b Flag
0 5 1 0
1 11 1 0
2 41 1 1
3 170 0 1
4 5 1 0
5 15 1 0
任何帮助将不胜感激!
【问题讨论】:
-
我认为这不可能通过矢量化:看看Restart cumsum and get index if cumsum more than value
-
知道了。感谢您的参考!
标签: pandas cumulative-sum