pandas DataFrame предоставляет вычисления скользящего окна для столбца DatetimeIndex или типа Datetime, например:
>>> df = pd.DataFrame({'B': [0, 1, 2, np.nan, 4]},
... index = [pd.Timestamp('20130101 09:00:00'),
... pd.Timestamp('20130101 09:00:02'),
... pd.Timestamp('20130101 09:00:03'),
... pd.Timestamp('20130101 09:00:05'),
... pd.Timestamp('20130101 09:00:06')])
>>> df.rolling('3s').sum()
B
2013-01-01 09:00:00 0.0
2013-01-01 09:00:02 1.0
2013-01-01 09:00:03 3.0
2013-01-01 09:00:05 2.0
2013-01-01 09:00:06 4.0
Функция moving
DolphinDB, а также функции движущегося семейства, такие как msum
, mavg
и т. Д. Рассчитывается на основе окна с фиксированным количеством элементов внутри. Но они не могут обрабатывать временные типы.
df = table(0 1 2 NULL 4 as B,
[2013.01.01 09:00:00,2013.01.01 09:00:02,2013.01.01 09:00:03,2013.01.01 09:00:05,2013.01.01 09:00:06] as index)
select index, msum(B, 3) as B from df
index B
------------------- -
2013.01.01T09:00:00
2013.01.01T09:00:02
2013.01.01T09:00:03 3
2013.01.01T09:00:05 3
2013.01.01T09:00:06 6
Я бы хотел выполнить скользящий расчет с окном, представляющим собой период времени, который может включать элементы переменного размера.