Допустим, у меня есть кое-что, похожее на это
df = pd.DataFrame({'Event':['A','A','A','A', 'A' ,'B','B','B','B','B'], 'Number':[1,2,3,4,5,6,7,8,9,10],'Ref':[False,False,False,False,True,False,False,False,True,False]})
Что я хочу сделать, это создать новый столбец, который будет отличаться от Number от True в ref. Таким образом, для группы A значение True является последним, поэтому в столбце будет указано -4, -3, -2, -1,0. Я думал сделать следующее:
for col in df.groupby('Event'):
temp = col[1]
reference = temp[temp.Ref==True]
dist1 = temp.apply(lambda x:x.Number-reference.Number,axis=1)
Кажется, это правильно рассчитать для каждой группы, но я не уверен, как объединить результат в df.