Как создать диапазон дат с интервалом 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)
→ Ссылка