我有一个包含多个列的巨大数据框,如下所示。当 b 中的值为 -1 时,我试图找到时间的累积总和,它前面是 1。我尝试了累积总和,但它不起作用。
仅当 b 中的值仅针对该组为 -1 时,我才在寻找值的累积总和。一旦 b 中的值更改为 0,我希望累积和重置为 0
我的累积总和值应与 cummulative_sum_column 中的值匹配
**date time** **id** **value** **time** **a****b** **cummulative sum**
11/1/2021 0:05 v01111 4 0 0 0
11/1/2021 1:30 v01111 11 57.302 1 1
11/1/2021 4:19 v01111 1 10129.88 0 -1
11/1/2021 4:19 v01111 1 0.49 0 -1 10130.37
11/1/2021 9:30 v01111 2 0.202 0 0
11/1/2021 9:31 v01111 11 58.699 1 1
11/1/2021 10:31 v01111 1 3573.728 0 -1
11/1/2021 10:31 v01111 1 0.29 0 -1 3574.018
11/2/2021 21:15 v01111 2 0.2 0 0
12/9/2021 20:17 v01112 11 58.525 1 0
12/9/2021 20:53 v01113 11 2145.745 0 -1
12/9/2021 20:53 v01114 1 0.016 0 -1 2146
12/9/2021 22:05 v01150 0 0.01 0 0
12/9/2021 22:05 v01151 0 1.188 0 0
12/9/2021 22:05 v01152 1 0.312 0 0
12/9/2021 22:05 v01153 1 1.49 0 -1
12/9/2021 22:09 v01153 1 4 1 0
12/10/2021 22:07 v01153 1 6 0 -1 6
我在下面尝试过,但是当 b == -1 中的值时,代码计算所有值的累积总和,一旦 b 中的值为 0,它就不会重置为 0
df['test']= df.loc[(df['b'] == -1) & (df['b'].shift(+1) == 1), 'time'].cumsum()