У меня есть groupedBy Series, и я пытаюсь выполнить смену для каждой группы. Но требуемый сдвиг для каждой группы не всегда одинаков, поэтому я создал поисковый запрос, из которого я хочу извлечь сдвиг каждого соответствующего элемента.
Мой код:
shifted = shifted.groupby(by=["itemID", "date"]).shift(lookUp[shifted["itemID"]][expectedLagName])
Это не работает, поскольку shift ["itemID"] возвращает фрейм данных, он изменяемый, но поскольку его groupedBy должно быть только одно значение, и я не знаю, как его получить. Есть идеи?
Код воспроизведения:
data=range(1,101)
df=pd.DataFrame(data=data)
df.columns=["a"]
df["b"]= round(df["a"]/5)
lookUp={}
for i in range(1,21):
lookUp[i] = round(i/2)
df = df.groupby(by=["b"]).shift(lookUp[df["b"]])
print(df)