У меня есть фрейм данных:
c1 Lag Val1
A 3 10
A 1 5
A 2 20
A 2 15
A 1 10
B 1 25
B 2 10
Я хочу создать новое поле val2 так, чтобы каждое значение в val2 было значением в val2, смещенным на число строк Lag.Сложность здесь заключается в том, что сдвиг должен происходить в группах, определенных в поле c1, так что вывод выглядит примерно так:
c1 Lag Val1 Val2
A 3 10 15
A 1 5 20
A 2 20 10
A 2 15 NaN
A 1 10 NaN
B 1 25 10
B 2 10 NaN
, с которыми я пытался в соответствии с
df['Val2'] = df.groupby(['c1'])['Val1'].apply(lambda x:x.shift(df.Lag))
безрезультатно и получение «Истинная ценность Серии неоднозначна»ошибка.Ценю любую помощь.Спасибо!