My dataframe looks like below:
Subject Score
1 15
2 0
3 18
2 30
3 17
1 5
4 9
2 7
1 20
1 8
2 9
1 12
I want to get the previous 3 scores for each record grouped by Subject as a list in new column like below:
Subject Score Previous
1 15 []
2 0 []
3 18 []
2 30 [0]
3 17 [18]
1 5 [15]
4 9 []
2 7 [30,0]
1 20 [5,15]
1 8 [20,5,15]
2 9 [7,30,0]
1 12 [8,20,5]
Below code rolls all record not grouped by Subject
df['Previous']= [x.values.tolist()[:-1] for x in points['Score'].rolling(4)]
How do I get the above expected result?