Не уверен, если я поставил правильный заголовок для моего вопроса, пожалуйста, предложите изменить
У меня есть следующий фрейм данных:
df_dict={'startDate':
['2015-01-01','2015-01-05','2015-01-18','2015-01-25',
'2015-02-02','2015-02-03','2015-02-04','2015-02-17',
'2015-03-03','2015-03-04','2015-03-07','2015-03-11',
'2015-04-04','2015-04-05','2015-04-17','2015-04-19'],
'price':[200,250,270,240,100,120,130,140,300,310,330,370,400,410,420,440],
'250_index': [1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2]}
df=pd.DataFrame(df_dict)
мне нужно найти первую доступную дату в моем наборе данныхкоторый в данном случае равен 2015-01-01
, затем создайте 30day
интервалы, например: 2015-01-01
, 2015-01-31
, 2015-03-02
, 2015-04-01
, затем для каждого интервала и 250_index
комбинация вычисляет прошлое 30day
60_day
и 90day
средняя цена.
результирующий фрейм данных должен выглядеть примерно так: средние значения за первый интервал равны 0
, поскольку у нас нет информации о том, что произошло, но для второго интервала 2015-01-31
нам необходимо рассчитатьpast_30_avg
на основе цен, которые мы имеем между 2015-01-01
и 2015-01-31
, то же самое для других интервалов:
time_interval index past_30_avg past_60_avg past_90_avg
'2015-01-01' 1 0 0 0
2 0 0 0
'2015-01-31' 1 235 0 0
2 245 0 0
'2015-03-02' 1 115 175 0
2 130 187 0
'2015-04-01' 1 315 240 221
2 340 235 238
Я искал обобщенный подход, так как это всего лишь часть моего набора данных