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.
# 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 :
# 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 :
# 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 :
# 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 :