Python Pandas CustomBusinessHour - Roll provided date backward


To roll provided date backward, use the CustomBusinessHour.rollback() 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 −

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 backward if not on offset −

roll_back = cbhOffset.rollback(pd.Timestamp('2021-12-18 08:35:10'))

Display the result −

print("\nRoll Backward Result...\n",roll_back)

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 backward if not on offset
roll_back = cbhOffset.rollback(pd.Timestamp('2021-12-18 08:35:10'))

# display the result
print("\nRoll Backward Result...\n",roll_back)

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 Backward Result...
 2021-12-17 17:00:00

Updated on: 22-Oct-2021

69 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements