Панды: среднее значение за последние n дней

у меня естьPandas фрейм данных так:

test = pd.DataFrame({ 'Date' : ['2016-04-01','2016-04-01','2016-04-02',
                             '2016-04-02','2016-04-03','2016-04-04',
                             '2016-04-05','2016-04-06','2016-04-06'],
                      'User' : ['Mike','John','Mike','John','Mike','Mike',
                             'Mike','Mike','John'],
                      'Value' : [1,2,1,3,4.5,1,2,3,6]
                })

Как вы можете видеть ниже, набор данных не обязательно должен иметь наблюдения за каждым днем:

         Date  User  Value
0  2016-04-01  Mike    1.0
1  2016-04-01  John    2.0
2  2016-04-02  Mike    1.0
3  2016-04-02  John    3.0
4  2016-04-03  Mike    4.5
5  2016-04-04  Mike    1.0
6  2016-04-05  Mike    2.0
7  2016-04-06  Mike    3.0
8  2016-04-06  John    6.0

Я хотел бы добавить новый столбец, который показывает среднее значение для каждого пользователя за последние n дней (в данном случае n = 2), если доступен хотя бы один день, иначе он будет иметьnan значение. Например, на2016-04-06 Джон получаетnan потому что у него нет данных для2016-04-05 а также2016-04-04, Таким образом, результат будет примерно таким:

         Date  User  Value  Value_Average_Past_2_days
0  2016-04-01  Mike    1.0                        NaN
1  2016-04-01  John    2.0                        NaN
2  2016-04-02  Mike    1.0                       1.00
3  2016-04-02  John    3.0                       2.00
4  2016-04-03  Mike    4.5                       1.00
5  2016-04-04  Mike    1.0                       2.75
6  2016-04-05  Mike    2.0                       2.75
7  2016-04-06  Mike    3.0                       1.50
8  2016-04-06  John    6.0                        NaN

Кажется, что я должен сочетаниеgroup_by и подгонятьrolling_mean Прочитав несколько постов на форуме, но я не мог понять, как это сделать.

Ответы на вопрос(2)

Ваш ответ на вопрос