Pandas date_range еженедельно, начиная с определенного дня недели - PullRequest
0 голосов
/ 19 декабря 2018

Ищете сложный способ циклически проходить через диапазон дат и запускаться только каждое воскресенье.

import pandas

for da in pandas.date_range("20181101","20181217",freq='B'):
    runJob()

Но есть ли варианты, которые запускают цикл для каждого воскресенья в диапазоне дат?

1 Ответ

0 голосов
/ 19 декабря 2018

Установите freq='W-SUN', чтобы указать только воскресенья:

pd.date_range("20181101", "20181217", freq='W-SUN')

DatetimeIndex(['2018-11-04', '2018-11-11', '2018-11-18', '2018-11-25',
               '2018-12-02', '2018-12-09', '2018-12-16'],
              dtype='datetime64[ns]', freq='W-SUN')

Выполните небольшую перекрестную проверку ...

dt = pd.date_range("20181101", "20181217", freq='W-SUN')
assert dt.strftime('%A').unique().tolist() == ['Sunday']

Вы можете указать привязку на любой день недели, если заданное смещение имеет вид "W-<day_of_week>".

В этом случае по умолчанию используется воскресенье, поэтому достаточно использовать freq='W'.

pd.date_range("20181101","20181217", freq='W')

См. Раздел документации на Смещенные даты привязки для получения дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...