pandas.bdate_range#

pandas.bdate_range(start=None, end=None, periods=None, freq='B', tz=None, normalize=True, name=None, weekmask=None, holidays=None, closed=_NoDefault.no_default, inclusive=None, **kwargs)[source]#

Return a fixed frequency DatetimeIndex with business day as the default.

Parameters
startstr or datetime-like, default None

Left bound for generating dates.

endstr or datetime-like, default None

Right bound for generating dates.

periodsint, default None

Number of periods to generate.

freqstr or DateOffset, default ‘B’ (business daily)

Frequency strings can have multiples, e.g. ‘5H’.

tzstr or None

Time zone name for returning localized DatetimeIndex, for example Asia/Beijing.

normalizebool, default False

Normalize start/end dates to midnight before generating date range.

namestr, default None

Name of the resulting DatetimeIndex.

weekmaskstr or None, default None

Weekmask of valid business days, passed to numpy.busdaycalendar, only used when custom frequency strings are passed. The default value None is equivalent to ‘Mon Tue Wed Thu Fri’.

holidayslist-like or None, default None

Dates to exclude from the set of valid business days, passed to numpy.busdaycalendar, only used when custom frequency strings are passed.

closedstr, default None

Make the interval closed with respect to the given frequency to the ‘left’, ‘right’, or both sides (None).

Deprecated since version 1.4.0: Argument closed has been deprecated to standardize boundary inputs. Use inclusive instead, to set each bound as closed or open.

inclusive{“both”, “neither”, “left”, “right”}, default “both”

Include boundaries; Whether to set each bound as closed or open.

New in version 1.4.0.

**kwargs

For compatibility. Has no effect on the result.

Returns
DatetimeIndex

Notes

Of the four parameters: start, end, periods, and freq, exactly three must be specified. Specifying freq is a requirement for bdate_range. Use date_range if specifying freq is not desired.

To learn more about the frequency strings, please see this link.

Examples

Note how the two weekend days are skipped in the result.

>>> pd.bdate_range(start='1/1/2018', end='1/08/2018')
DatetimeIndex(['2018-01-01', '2018-01-02', '2018-01-03', '2018-01-04',
           '2018-01-05', '2018-01-08'],
          dtype='datetime64[ns]', freq='B')