У меня есть фрейм данных с временными индексами, и мне нужно разбить его на перекрывающиеся сегменты (скажем, 5 дней с смещением в 1 день).
Вот пример фрейма данных:
import pandas as pd
i=pd.date_range('05-01-2015', '21-05-2018', freq='D')
x=pd.DataFrame(index=i, data = np.random.randint(0, 100, len(i)))
После разбиения индексы сегментов должны изменяться соответственно от 2015-05-01
до 2015-05-05
, от 2015-05-02
до 2015-05-06
, от 2015-05-03
до 2015-05-08
и c. Я предполагаю, что должен быть какой-то трюк с groupby
, чтобы сделать это, но не смог придумать эффективную реализацию.
В качестве справки, это реализовано в mathematica :
Partition[list,n,d]
- генерирует подсписки со смещением d.
Буду очень признателен за любую проницательность Вы, ребята, можете предоставить.