Pandas’ grouped objects have a groupby.DataFrameGroupBy.shift
method, which will shift a specified column in each group n periods
, just like the regular dataframe’s shift
method:
df['prev_value'] = df.groupby('object')['value'].shift()
For the following example dataframe:
print(df)
object period value
0 1 1 24
1 1 2 67
2 1 4 89
3 2 4 5
4 2 23 23
The result would be:
object period value prev_value
0 1 1 24 NaN
1 1 2 67 24.0
2 1 4 89 67.0
3 2 4 5 NaN
4 2 23 23 5.0