Как создать диапазон дат с интервалом 1 минута, но только для рабочих дней?
Необходимо создать диапазон дат с интервалом 1 минута, но только для рабочих дней.
Есть замечательный инструмент:
pd.date_range('2020-01-01', '2020-12-31', freq='min')
Интервал задается параметром freq. Если нужна 1 минут, то freq='min'. Если нужен интервал день, то freq='D'. Если интервал рабочий день, то freq='B'.
А как создать интервал 1 минуту, но только для рабочих дней?
Ответы (2 шт):
Автор решения: Danis
→ Ссылка
import pandas as pd
for date in pd.date_range("2020-01-01", "2020-12-31", freq = "B"):
start = str(date)
end = start.replace("00:00:00", "23:59:00")
print(pd.date_range(start, end, freq = "min"))
Автор решения: MaxU
→ Ссылка
векторизированный вариант:
res = pd.date_range('2020-01-01', '2020-12-31', freq="1T")
res = res[res.weekday < 5]
результат:
In [131]: res
Out[131]:
DatetimeIndex(['2020-01-01 00:00:00', '2020-01-01 00:01:00', '2020-01-01 00:02:00', '2020-01-01 00:03:00',
'2020-01-01 00:04:00', '2020-01-01 00:05:00', '2020-01-01 00:06:00', '2020-01-01 00:07:00',
'2020-01-01 00:08:00', '2020-01-01 00:09:00',
...
'2020-12-30 23:51:00', '2020-12-30 23:52:00', '2020-12-30 23:53:00', '2020-12-30 23:54:00',
'2020-12-30 23:55:00', '2020-12-30 23:56:00', '2020-12-30 23:57:00', '2020-12-30 23:58:00',
'2020-12-30 23:59:00', '2020-12-31 00:00:00'],
dtype='datetime64[ns]', length=375841, freq=None)