Временные ряды: как настроить pd.date_range(freq='B') с учетом субботы. (Питон)

Это мой пример кода:

q=pd.date_range('05/13/2019',periods=100, freq='B')

Очевидно, в нем будет указано 100 рабочих дней с 13.05.2019 без субботы и воскресенья. Однако в некоторых азиатских странах они действительно работают по субботам. Как я могу это исправить ? так что в результате должно получиться 100 дней с 13.05.2019 только без воскресенья.

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
2
0
229
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Попробуйте сделать два date_range и удалить воскресенья из первого:

>>> q = pd.date_range('05/13/2019', periods=100, freq='D')
>>> q2 = pd.date_range('05/13/2019',periods=100, freq='W')
>>> q[~q.isin(q2)]
DatetimeIndex(['2019-05-13', '2019-05-14', '2019-05-15', '2019-05-16',
               '2019-05-17', '2019-05-18', '2019-05-20', '2019-05-21',
               '2019-05-22', '2019-05-23', '2019-05-24', '2019-05-25',
               '2019-05-27', '2019-05-28', '2019-05-29', '2019-05-30',
               '2019-05-31', '2019-06-01', '2019-06-03', '2019-06-04',
               '2019-06-05', '2019-06-06', '2019-06-07', '2019-06-08',
               '2019-06-10', '2019-06-11', '2019-06-12', '2019-06-13',
               '2019-06-14', '2019-06-15', '2019-06-17', '2019-06-18',
               '2019-06-19', '2019-06-20', '2019-06-21', '2019-06-22',
               '2019-06-24', '2019-06-25', '2019-06-26', '2019-06-27',
               '2019-06-28', '2019-06-29', '2019-07-01', '2019-07-02',
               '2019-07-03', '2019-07-04', '2019-07-05', '2019-07-06',
               '2019-07-08', '2019-07-09', '2019-07-10', '2019-07-11',
               '2019-07-12', '2019-07-13', '2019-07-15', '2019-07-16',
               '2019-07-17', '2019-07-18', '2019-07-19', '2019-07-20',
               '2019-07-22', '2019-07-23', '2019-07-24', '2019-07-25',
               '2019-07-26', '2019-07-27', '2019-07-29', '2019-07-30',
               '2019-07-31', '2019-08-01', '2019-08-02', '2019-08-03',
               '2019-08-05', '2019-08-06', '2019-08-07', '2019-08-08',
               '2019-08-09', '2019-08-10', '2019-08-12', '2019-08-13',
               '2019-08-14', '2019-08-15', '2019-08-16', '2019-08-17',
               '2019-08-19', '2019-08-20'],
              dtype='datetime64[ns]', freq=None)

Вы можете сделать это, используя метод .bdate_range и частоту 'C' (Пользовательская). Затем мы передаем то, что хотим, в недельной маске

import pandas as pd
weekmask = 'Mon Tue Wed Thu Fri Sat'
pd.bdate_range(start = "11-May-2019", periods=10, freq='C', weekmask=weekmask)

ВЫХОД:

DatetimeIndex(['2019-05-11', '2019-05-13', '2019-05-14', '2019-05-15',
               '2019-05-16', '2019-05-17', '2019-05-18', '2019-05-20',
               '2019-05-21', '2019-05-22'],
              dtype='datetime64[ns]', freq='C')

Как видите, сюда не входят 12 и 19 мая, которые были воскресеньями! :)

Другие вопросы по теме