Мой DataFrame выглядит так:
df = pd.DataFrame({"ID":['A','B','A','A','B','B','C','D','D','C'],
'count':[1,1,2,2,2,2,1,1,1,2]})
print(df)
ID count
0 A 1
1 B 1
2 A 2
3 A 2
4 B 2
5 B 2
6 C 1
7 D 1
8 D 1
9 C 2
У меня будет только столбец ID
, и я хочу вычислить столбец count
. Лог c - я хочу кумулятивно подсчитать появление ID
. Если его сразу же повторить, как index 2 & 3
, они оба должны получить одинаковый счет. Как я могу этого добиться?
Моя попытка, которая не дает точных результатов:
df['x'] = df['ID'].eq(df['ID'].shift(-1)).astype(int)
df.groupby('ID')['x'].transform('cumsum')+1
0 1
1 1
2 2
3 2
4 2
5 2
6 1
7 2
8 2
9 1
Name: x, dtype: int32
Вопрос не имеет прямого отношения к групповому кумулятивному подсчету, но он другой.