Что я хочу сделать, это взять набор данных, состоящий из значения x
для каждой минуты в течение нескольких лет, и создать данные "типичных недель", чтобы кадр данных с (60 * 24 * 7) = 10080 строк , Где каждая строка имеет определенные значения квантиля / процентиля, например, [0,1, 0,25, 0,5, 0,75, 0,9]. Квантили рассчитываются по значению x для этой минуты недели во всем историческом наборе данных, а также за пять минут до и пять минут после этой минуты A.
Таким образом, выходные данные будут для каждой минуты недели, значений x для этой минуты и значений для этих данных, включая минуты до и минуты после в расчете процентиля, например,
входные данные:
x dow hour minute
time
2016-10-18 07:55:00 29.500000 0 7 55
2016-10-18 07:56:00 35.000000 0 7 56
2016-10-18 07:57:00 24.666667 0 7 57
2016-10-18 07:58:00 31.833333 0 7 58
2016-10-18 07:59:00 35.500000 0 7 59
2016-10-18 08:00:00 35.500000 0 8 00
2016-10-18 08:01:00 33.500000 0 8 01
... ... ... ... ...
2018-10-18 10:01:00 32.500000 6 10 01
2018-10-18 10:02:00 34.500000 6 10 02
2018-10-18 10:03:00 39.500000 6 10 03
выходные данные:
dow hour minute percentile1 percentile2 percentile3 percentile4 percentile5
3 4 58 25 28 33 44 50
...
...
Как я мог достичь такого в пандах. Похоже, что это шаг в правильном направлении, но я не уверен, включает ли прокат минуты за и до и после, как и планировалось:
df.groupby([df.dow, df.hour, df.minute]).rolling(5).apply(pd.quantile, [0.25, 0.30, 0.50])