У меня есть фрейм данных, в котором я хочу продолжать увеличивать значение до тех пор, пока val
не изменится, а когда id
изменения не сбросят count
значение
data = [['p1','1'],
['p1','1'],
['p1','2'],
['p2','3'],
['p2','5'],
['p3','2'],
['p2','3'],
['p2','4']]
df = pd.DataFrame(data = data,columns = ['id','val'])
Желаемый результат
id val count
0 p1 1 1
1 p1 1 1
2 p1 2 2
3 p2 3 1
4 p2 5 2
5 p3 2 1
6 p2 3 1
7 p2 4 2
Когда я делаю groupby, чем transform
df['count']=df.groupby('id').val.transform(lambda x : x.factorize()[0]+1)
, если вы видите, что проблема только с выходом - это последняя строка, вы увидите счетчик 3, поскольку он группируется, он суммируется с предыдущим p2, но я хочу игнорируйте это и позвольте полностью сбросить и увеличивать счет последовательно, а не целую группу.
id val count
0 p1 1 1
1 p1 1 1
2 p1 2 2
3 p2 3 1
4 p2 5 2
5 p3 2 1
6 p2 3 1
7 p2 4 3