Skip to content
Related Articles
Open in App
Not now

Related Articles

Python | Pandas tseries.offsets.BusinessDay.rollback

Improve Article
Save Article
  • Last Updated : 08 Sep, 2022
Improve Article
Save Article

Dateoffsets are a standard kind of date increment used for a date range in Pandas. It works exactly like relativedelta in terms of the keyword args we pass in. DateOffsets work as follows, each offset specify a set of dates that conform to the DateOffset. For example, Bday defines this set to be the set of dates that are weekdays (M-F). DateOffsets can be created to move dates forward a given number of valid dates. For example, Bday(2) can be added to date to move it two business days forward. If the date does not start on a valid date, first it is moved to a valid date and then offset is created. Pandas tseries.offsets.BusinessDay.rollback() function rolls the provided date backward to next offset only if not on offset.

Syntax: pandas.tseries.offsets.BusinessDay.rollback(dt) Parameter : dt : dt Returns : Timestamp

Example #1: Use pandas.tseries.offsets.BusinessDay.rollback() function to roll the provided date backward to next offset if not on the offset. 

Python3




# importing pandas as pd
import pandas as pd
 
# Creating Timestamp
ts = pd.Timestamp('2019-10-10 07:15:11')
 
# Create an offset of 5 Business days
bd = pd.tseries.offsets.BusinessDay(n = 5)
 
# Print the Timestamp
print(ts)
 
# Print the DateOffset
print(bd)

Output : Now we will add the Business day offset to the given timestamp object to increment the datetime value. We will also roll the provided date backward to next offset if not on the offset. 

Python3




# Adding the Business day offset to the given timestamp
new_timestamp = ts + bd
 
# Print the updated timestamp
print(new_timestamp)
 
# roll the provided date backward
# if not on the offset
date = bd.rollback(dt = pd.to_datetime('2010-02-13'))
 
# print the date
print(date)

Output : As we can see in the output, we have successfully created an offset of 5 Business days and added it to the given timestamp. We have also roll the provided date backward to next offset if not on the offset. Example #2 : Use pandas.tseries.offsets.BusinessDay.rollback() function to roll the provided date backward to next offset if not on the offset. 

Python3




# importing pandas as pd
import pandas as pd
 
# Creating Timestamp
ts = pd.Timestamp('2019-10-10 07:15:11')
 
# Create an offset of 10 Business days and 10 hours
bd = pd.tseries.offsets.BusinessDay(offset = datetime.timedelta(days = 10, hours = 10))
 
# Print the Timestamp
print(ts)
 
# Print the DateOffset
print(bd)

Output : Now we will add the Business day offset to the given timestamp object to increment the datetime value. We will also roll the provided date backward to next offset if not on the offset. 

Python3




# Adding the Business day offset to the given timestamp
new_timestamp = ts + bd
 
# Print the updated timestamp
print(new_timestamp)
 
# roll the provided date backward if not
# on the offset
date = bd.rollback(dt = pd.to_datetime('2010-02-13'))
 
# print the date
print(date)

Output : As we can see in the output, we have successfully created an offset of 10 Business days & 10 hours and added it to the given timestamp. We have also roll the provided date backward to next offset if not on the offset.


My Personal Notes arrow_drop_up
Related Articles

Start Your Coding Journey Now!