pandas.tseries.offsets.BusinessHour — pandas 3.0.0rc0+33.g1fd184de2a documentation (original) (raw)
class pandas.tseries.offsets.BusinessHour#
DateOffset subclass representing possibly n business hours.
Parameters:
nint, default 1
The number of hours represented.
normalizebool, default False
Normalize start/end dates to midnight before generating date range.
startstr, time, or list of str/time, default “09:00”
Start time of your custom business hour in 24h format.
endstr, time, or list of str/time, default: “17:00”
End time of your custom business hour in 24h format.
offsettimedelta, default timedelta(0)
Time offset to apply.
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
Methods