pandas.tseries.offsets.CustomBusinessDay#
- class pandas.tseries.offsets.CustomBusinessDay#
DateOffset subclass representing possibly n custom business days.
In CustomBusinessDay we can use custom weekmask, holidays, and calendar.
Attributes
Return the count of the number of periods.
Return boolean whether the frequency can align with midnight.
Return the weekmask used for custom business day calculations.
Return the holidays used for custom business day calculations.
Return the calendar used for business day calculations.
Return the time offset applied to the business day.
See also
DateOffsetStandard kind of date increment.
Examples
In the example below the default parameters give the next business day.
>>> ts = pd.Timestamp(2022, 8, 5, 16) >>> ts + pd.offsets.CustomBusinessDay() Timestamp('2022-08-08 16:00:00')
Business days can be specified by
weekmaskparameter. To convert the returned datetime object to its string representation the function strftime() is used in the next example.>>> import datetime as dt >>> freq = pd.offsets.CustomBusinessDay(weekmask="Mon Wed Fri") >>> pd.date_range(dt.datetime(2022, 12, 10), dt.datetime(2022, 12, 21), ... freq=freq).strftime('%a %d %b %Y %H:%M') Index(['Mon 12 Dec 2022 00:00', 'Wed 14 Dec 2022 00:00', 'Fri 16 Dec 2022 00:00', 'Mon 19 Dec 2022 00:00', 'Wed 21 Dec 2022 00:00'], dtype='object')
Using NumPy business day calendar you can define custom holidays.
>>> import datetime as dt >>> bdc = np.busdaycalendar(holidays=['2022-12-12', '2022-12-14']) >>> freq = pd.offsets.CustomBusinessDay(calendar=bdc) >>> pd.date_range(dt.datetime(2022, 12, 10), dt.datetime(2022, 12, 25), freq=freq) DatetimeIndex(['2022-12-13', '2022-12-15', '2022-12-16', '2022-12-19', '2022-12-20', '2022-12-21', '2022-12-22', '2022-12-23'], dtype='datetime64[ns]', freq='C')
If you want to shift the result on n day you can use the parameter
offset.>>> pd.Timestamp(2022, 8, 5, 16) + pd.offsets.CustomBusinessDay(1) Timestamp('2022-08-08 16:00:00')
>>> import datetime as dt >>> ts = pd.Timestamp(2022, 8, 5, 16) >>> ts + pd.offsets.CustomBusinessDay(1, offset=dt.timedelta(days=1)) Timestamp('2022-08-09 16:00:00')
Attributes
baseReturns a copy of the calling offset object with n=1 and all other attributes equal.
Return the calendar used for business day calculations.
Return a string representing the frequency.
Return the holidays used for custom business day calculations.
Return a dict of extra parameters for the offset.
Return the count of the number of periods.
Return a string representing the base frequency.
Returns an integer of the total number of nanoseconds for fixed frequencies.
Return boolean whether the frequency can align with midnight.
Return the time offset applied to the business day.
Return a string representing the base frequency.
Return the weekmask used for custom business day calculations.
Methods
copy()Return a copy of the frequency.
is_month_end(ts)Return boolean whether a timestamp occurs on the month end.
is_month_start(ts)Return boolean whether a timestamp occurs on the month start.
is_on_offset(dt)Return boolean whether a timestamp intersects with this frequency.
is_quarter_end(ts)Return boolean whether a timestamp occurs on the quarter end.
is_quarter_start(ts)Return boolean whether a timestamp occurs on the quarter start.
is_year_end(ts)Return boolean whether a timestamp occurs on the year end.
is_year_start(ts)Return boolean whether a timestamp occurs on the year start.
rollback(dt)Roll provided date backward to next offset only if not on offset.
rollforward(dt)Roll provided date forward to next offset only if not on offset.