Я создаю фрейм данных
df = pd.DataFrame({"b": ['A','A','A','A','B', 'B','B','C','C','D','D', 'D','D','D','D','D','D','D','D','D'],"a": [-3,-4,2, -1, -3, -1,-7,-6, 1, 1, -1, 1,4,5,-3,2,3,4, -1, -2]})
проверка на отрицательные значения
df['val'] = df.a < 0
Добавить столбец накопленной суммы подсчета, в котором счетчик увеличивается, если предыдущие значения не являются отрицательными. (это означает, что для каждого отрицательного значения счетчик увеличивается на 1, но если существует несколько значений -ve, предполагается, что они являются единичным отрицательным значением, а счетчик все еще увеличивается на 1)
df['val_1'] = (((df['val']) & (df['val'] != df['val'].shift())).cumsum()). the table is as below
b a val val_1
0 A -3 True 1
1 A -4 True 1
2 A 2 False 1
3 A -1 True 2
4 B -3 True 2
5 B -1 True 2
6 B -7 True 2
7 C -6 True 2
8 C 1 False 2
...
Я хочу возобновить подсчет нового значения в поле «b». Счетчик должен начинаться со значения «B». Любые вклады в этом отношении будут полезны