您可以执行groupby / apply(shift)操作:
In [15]: df['Data_lagged'] = df.groupby(['Group'])['Data'].shift(1)In [16]: dfOut[16]: Date Group Data Data_lagged2014-05-14 09:10:00 A 1 NaN2014-05-14 09:20:00 A 2 12014-05-14 09:30:00 A 3 22014-05-14 09:40:00 A 4 32014-05-14 09:50:00 A 5 42014-05-14 10:00:00 B 1 NaN2014-05-14 10:10:00 B 2 12014-05-14 10:20:00 B 3 22014-05-14 10:30:00 B 4 3[9 rows x 4 columns]
为了获得
ORDER BY Date ASC效果,您必须首先对Dataframe进行排序:
df['Data_lagged'] = (df.sort_values(by=['Date'], ascending=True) .groupby(['Group'])['Data'].shift(1))



