РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
471 of 687 menu

Функция bdate_range

Функция bdate_range создаёт индекс с рабочими датами (исключая субботу и воскресенье). Это удобно для финансовых и бизнес-задач, где нужны только будние дни. Первым параметром можно передать начальную дату start, вторым - конечную end, либо указать количество периодов periods. Также можно задать частоту freq (по умолчанию 'B') и смещение tz для часового пояса.

Синтаксис

pd.bdate_range(start=None, end=None, periods=None, freq='B', tz=None, normalize=False, name=None, weekmask=None, holidays=None, closed=None, inclusive=None, **kwargs)

Пример

Создадим диапазон рабочих дат с указанием начала и конца:

import pandas as pd dates = pd.bdate_range(start='2026-01-01', end='2026-01-10') print(dates)

Результат выполнения кода:

DatetimeIndex(['2026-01-01', '2026-01-02', '2026-01-05', '2026-01-06', '2026-01-07', '2026-01-08', '2026-01-09'], dtype='datetime64[ns]', freq='B')

В выходные дни (суббота и воскресенье) даты не включаются.

Пример

Укажем количество периодов вместо конечной даты:

import pandas as pd dates = pd.bdate_range(start='2026-01-01', periods=5) print(dates)

Результат выполнения кода:

"DatetimeIndex(['2026-01-01', '2026-01-02', '2026-01-05', '2026-01-06', '2026-01-07'], dtype='datetime64[ns]', freq='B')"

Пример

Исключим праздничные дни с помощью параметра holidays:

import pandas as pd holidays = ['2026-01-01', '2026-01-02'] dates = pd.bdate_range(start='2026-01-01', end='2026-01-10', holidays=holidays) print(dates)

Результат выполнения кода:

DatetimeIndex(['2026-01-05', '2026-01-06', '2026-01-07', '2026-01-08', '2026-01-09'], dtype='datetime64[ns]', freq='B')

Первого и второго января (праздничные дни) исключены из диапазона.

Пример

Создадим DataFrame с индексом из рабочих дат:

import pandas as pd dates = pd.bdate_range(start='2026-01-01', periods=5) df = pd.DataFrame({ 'a': [1, 2, 3, 4, 5], 'b': [10, 20, 30, 40, 50] }, index=dates) print(df)

Результат выполнения кода:

a b 2026-01-01 1 10 2026-01-02 2 20 2026-01-05 3 30 2026-01-06 4 40 2026-01-07 5 50

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

Пример

Используем параметр closed для управления включением границ:

import pandas as pd dates = pd.bdate_range(start='2026-01-01', end='2026-01-05', closed='left') print(dates)

Результат выполнения кода:

"DatetimeIndex(['2026-01-01', '2026-01-02'], dtype='datetime64[ns]', freq='B')"

Значение closed='left' исключает правую границу (2026-01-05).

Смотрите также

  • функция date_range,
    которая создаёт диапазон календарных дат
  • функция to_datetime,
    которая преобразует данные в даты и время
  • функция to_timedelta,
    которая преобразует данные в промежутки времени
  • функция period_range,
    которая создаёт диапазон периодов времени
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить