Python Pandas CustomBusinessHour - Roll provided date forward to next offset only if not on offset


To roll provided date forward to next offset only if not on offset, use the CustomBusinessHour.rollforward() method in Pandas.

At first, import the required libraries −

import pandas as pd

Set the timestamp object in Pandas −

timestamp = pd.Timestamp('2021-12-20 08:35:10')

Create the CustomBusinessHour Offset. CustomBusinessHour is the DateOffset subclass. Weekmask of valid business days −

cbhOffset = pd.tseries.offsets.CustomBusinessHour(n = 5, weekmask = 'Mon Tue Wed Fri')

Add the offset to the Timestamp and display the Updated Timestamp −

print("\nUpdated Timestamp...\n",timestamp + cbhOffset)

Roll forward if not on offset −

roll = cbhOffset.rollforward(pd.Timestamp('2021-12-30 08:35:10'))

Display the result −

print("\nRoll forward Result...\n",roll)

Example

Following is the code −

import pandas as pd

# Set the timestamp object in Pandas
timestamp = pd.Timestamp('2021-12-20 08:35:10')

# Display the Timestamp
print("Timestamp...\n",timestamp)

# Create the CustomBusinessHour Offset
# CustomBusinessHour is the DateOffset subclass
# Weekmask of valid business days
cbhOffset = pd.tseries.offsets.CustomBusinessHour(n = 5, weekmask = 'Mon Tue Wed Fri')

# Display the CustomBusinessHour Offset
print("\nCustomBusinessHour Offset...\n",cbhOffset)

# Add the offset to the Timestamp and display the Updated Timestamp
print("\nUpdated Timestamp...\n",timestamp + cbhOffset)

# roll forward if not on offset
roll = cbhOffset.rollforward(pd.Timestamp('2021-12-30 08:35:10'))

# display the result
print("\nRoll forward Result...\n",roll)

Output

This will produce the following code −

Timestamp...
 2021-12-20 08:35:10

CustomBusinessHour Offset...
 <5 * CustomBusinessHours: CBH=09:00-17:00>

Updated Timestamp...
 2021-12-20 14:00:00

Roll forward Result...
 2021-12-31 09:00:00

Updated on: 22-Oct-2021

118 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements