pandas.tseries.offsets.BusinessHour#

class pandas.tseries.offsets.BusinessHour#

DateOffset subclass representing possibly n business hours.

BusinessHour is a date offset that advances time by a number of business hours. By default, business hours are from 9:00 AM to 5:00 PM on weekdays. The start and end parameters can be used to customize the business hours window, and multiple intervals can be specified by passing lists.

Attributes

n

Return the count of the number of periods.

normalize

Return boolean whether the frequency can align with midnight.

start

Return the start time(s) of the business hour.

end

Return the end time(s) of the business hour.

offset

Return the time offset applied to the business day.

See also

CustomBusinessHour

DateOffset subclass with custom weekmask and holidays.

BusinessDay

DateOffset subclass representing possibly n business days.

Examples

You can use the parameter n to represent a shift of n hours.

>>> ts = pd.Timestamp(2022, 12, 9, 8)
>>> ts + pd.offsets.BusinessHour(n=5)
Timestamp('2022-12-09 14:00:00')

You can also change the start and the end of business hours.

>>> ts = pd.Timestamp(2022, 8, 5, 16)
>>> ts + pd.offsets.BusinessHour(start="11:00")
Timestamp('2022-08-08 11:00:00')
>>> from datetime import time as dt_time
>>> ts = pd.Timestamp(2022, 8, 5, 22)
>>> ts + pd.offsets.BusinessHour(end=dt_time(19, 0))
Timestamp('2022-08-08 10:00:00')

Passing the parameter normalize equal to True, you shift the start of the next business hour to midnight.

>>> ts = pd.Timestamp(2022, 12, 9, 8)
>>> ts + pd.offsets.BusinessHour(normalize=True)
Timestamp('2022-12-09 00:00:00')

You can divide your business day hours into several parts.

>>> import datetime as dt
>>> freq = pd.offsets.BusinessHour(start=["06:00", "10:00", "15:00"],
...                                end=["08:00", "12:00", "17:00"])
>>> pd.date_range(dt.datetime(2022, 12, 9), dt.datetime(2022, 12, 13), freq=freq)
DatetimeIndex(['2022-12-09 06:00:00', '2022-12-09 07:00:00',
               '2022-12-09 10:00:00', '2022-12-09 11:00:00',
               '2022-12-09 15:00:00', '2022-12-09 16:00:00',
               '2022-12-12 06:00:00', '2022-12-12 07:00:00',
               '2022-12-12 10:00:00', '2022-12-12 11:00:00',
               '2022-12-12 15:00:00', '2022-12-12 16:00:00'],
               dtype='datetime64[ns]', freq='bh')

Attributes

base

Returns a copy of the calling offset object with n=1 and all other attributes equal.

calendar

Return the calendar used for business day calculations.

end

Return the end time(s) of the business hour.

freqstr

Return a string representing the frequency.

holidays

Return the holidays used for custom business day calculations.

kwds

Return a dict of extra parameters for the offset.

n

Return the count of the number of periods.

name

Return a string representing the base frequency.

nanos

Returns an integer of the total number of nanoseconds for fixed frequencies.

next_bday

Used for moving to next business day.

normalize

Return boolean whether the frequency can align with midnight.

offset

Return the time offset applied to the business day.

rule_code

Return a string representing the base frequency.

start

Return the start time(s) of the business hour.

weekmask

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(other)

Roll provided date backward to next offset only if not on offset.

rollforward(other)

Roll provided date forward to next offset only if not on offset.