I have a data frame as shown below.
Place Bldng_Id Num_Bed_Rooms Contract_date Rental_value
Bangalore 1 4 2016-02-16 100
Bangalore 1 4 2016-05-16 150
Bangalore 1 4 2017-01-18 450
Bangalore 1 4 2017-02-26 550
Bangalore 5 4 2015-02-26 120
Bangalore 5 4 2016-05-18 180
Bangalore 2 3 2015-03-06 150
Bangalore 2 3 2016-05-14 150
Bangalore 2 3 2017-07-26 220
Bangalore 2 3 2017-09-19 200
Chennai 3 4 2016-02-16 100
Chennai 3 4 2016-05-16 150
Chennai 3 4 2017-01-18 450
Chennai 3 4 2017-02-26 550
Chennai 4 3 2015-03-06 150
Chennai 4 3 2016-05-14 150
Chennai 4 3 2017-07-26 220
Chennai 4 3 2017-09-19 200
Chennai 6 3 2018-07-26 250
Chennai 6 3 2019-09-19 280
From the above I would like to prepare the below dataframe.
Expected output:
Place Num_Bed_Rooms Year Avg_Rental_value
Bangalore 3 2015 150
Bangalore 3 2016 150
Bangalore 3 2017 210
Bangalore 4 2015 120
Bangalore 4 2016 143.3
Bangalore 4 2017 500
Chennai 3 2015 150
Chennai 3 2016 150
Chennai 3 2017 210
Chennai 3 2018 250
Chennai 3 2019 280
Chennai 4 2016 150
Chennai 4 2017 210
I tried following code to achieve this.
df.groupby(['Place', 'Year', 'Num_Bed_Rooms']).Rental_value.mean()
But above does not work properly.
From the above expected output I would like to write a time series code to forecast the next year rental_value for each case separatly.