Учитывая приведенную ниже таблицу, в которой указаны только столбцы date
и number
, я хочу вывести столбец avg_last_2m
(который рассчитывает среднее значение для столбца number
за последние 2 месяца), который представлен следующим образом:
Например, учитывая дату 20190909
, последние 2 месяца будут начинаться с даты 20190709
до даты 20190908
в течение этого периода, у нас есть дата 20190805
(с номером = 1
), поэтому среднее значение за последние 2 месяца будет 1/1=1.0
.
Другой пример будет 20190930
, последние 2 месяца будут начинаться с даты 20190730
до даты 20190929
, у нас есть дата 20190805
(с номером = 1) и дата 20190909
(с номером = 0), поэтому среднее значение за последние 2 месяца будет (1+0)/2=0.5
.
Как вычислить столбец avg_last_2m
на основе столбцов date
и number
? Эффективность здесь очень важна, поскольку в реальности у меня будет около 100 тыс. Строк данных.
Это код для фрейма данных
test_data=pd.DataFrame({'date':['20190606','20190610','20190708','20190805','20190909','20190930'],'number':[3,5,4,1,0,0],\
'avg_last_2m':[None,3,4,4,1,0.5]})
.