pandas resample by date, начиная с конечной даты
Как можно разделить датафрейм с помощью метода resample, вычитая интервал из end_date, а не из start_date
import pandas as pd
index = pd.date_range('1/1/2000', periods=10, freq='T')
series = pd.Series(range(10), index=index)
[t for _, t in series.resample('4T')][-1]
2000-01-01 00:08:00 8
2000-01-01 00:09:00 9
Freq: T, dtype: int64
Ожидаю:
2000-01-01 00:06:00 6
2000-01-01 00:07:00 7
2000-01-01 00:08:00 8
2000-01-01 00:09:00 9
Freq: T, dtype: int64
Разделяет на промежутки 0, 4 и 8 минут. Необходимо, чтобы разделял на промежутки 0, 2, 6 минут (то есть чтобы последним был промежуток длиной 4T)
Ответы (1 шт):
Автор решения: strawdog
→ Ссылка
Можно указать атрибут offset в методе resample:
import pandas as pd
import math
index = pd.date_range('1/1/2000', periods=10, freq='T')
series = pd.Series(range(10), index=index)
interval=4
offset=interval*math.ceil(len(index)/interval)- len(index)
[t for _, t in series.resample(f"{interval}T", offset=f"-{offset}T")]
[2000-01-01 00:00:00 0
2000-01-01 00:01:00 1
Freq: T, dtype: int64,
2000-01-01 00:02:00 2
2000-01-01 00:03:00 3
2000-01-01 00:04:00 4
2000-01-01 00:05:00 5
Freq: T, dtype: int64,
2000-01-01 00:06:00 6
2000-01-01 00:07:00 7
2000-01-01 00:08:00 8
2000-01-01 00:09:00 9
Freq: T, dtype: int64]