Open In App

Python | Pandas tseries.offsets.DateOffset

Last Updated : 26 Dec, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

Dateoffsets are a standard kind of date increment used for a date range in Pandas. It works exactly like relative delta in terms of the keyword args we pass in. DateOffsets work as follows, each offset specifies 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 the 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.DateOffset is used to create a standard kind of date increment used for a date range.

Python Pandas tseries.offsets.DateOffset Syntax

Below is the syntax by which we can use DateOffset objects in Pandas.

Syntax:
pandas.tseries.offsets.DateOffset(n=1, normalize=False, **kwds)

Parameters:

  • n : The number of time periods the offset represents.
  • normalize : Whether to round the result of a DateOffset addition down to the previous midnight.
  • level : int, str, default None
  • **kwds : Temporal parameter that adds to or replaces the offset value. Parameters that add to the offset (like Timedelta): years, months etc.

Returns : DateOffsets

Pandas tseries.offsets.DateOffset Examples

Below are the examples by which we can use Pandas tseries.offsets DateOffset objects in Pandas in Python:

Example 1: Create Dateoffsets of 2 Days

In this example, we will create DateOffsetss objects in Pandas of 2 days using pandas.tseries.offsets.DateOffset() function.

Python3




# importing pandas as pd
import pandas as pd
 
# Creating Timestamp
ts = pd.Timestamp('2019-10-10 07:15:11')
 
# Create the DateOffset
do = pd.tseries.offsets.DateOffset(n=2)
 
# Print the Timestamp
print(ts)
 
# Print the DateOffset
print(do)


Output :

2019-10-10 07:15:11
<2 * DateOffsets>

Now we will add the dateoffset to the given timestamp object to create an offset of 2 days from the given date. 

Python3




# Adding the dateoffset to the given timestamp
new_timestamp = ts + do
 
# Print the updated timestamp
print(new_timestamp)


Output :

2019-10-12 07:15:11

As we can see in the output, we have successfully created an offset of 2 days and added it to the given timestamp object to move the date forward by 2 days.

Example 2: Create DateOffsets of 10 Days and 2 Hours Using DateOffset Objects in Python

In this example, we will create DateOffsets of 10 Days and 2 Hours using DateOffset Objects in Python.

Python3




# importing pandas as pd
import pandas as pd
 
# Creating Timestamp
ts = pd.Timestamp('2019-10-10 07:15:11')
 
# Create the DateOffset
do = pd.tseries.offsets.DateOffset(days = 10, hours = 2)
 
# Print the Timestamp
print(ts)
 
# Print the DateOffset
print(do)


Output :

2019-10-10 07:15:11
<DateOffset: days=10, hours=2>

Now we will add the dateoffset to the given timestamp object to create an offset of 10 days and 2 hours from the given date. 

Python3




# Adding the dateoffset to the given timestamp
new_timestamp = ts + do
 
# Print the updated timestamp
print(new_timestamp)


Output :

2019-10-20 09:15:11

As we can see in the output, we have successfully created an offset of 10 days and 2 hours and added it to the given timestamp object to move the date forward by 10 days and 2 hours.

Example 3: Subtracting Months from a Date

In this example, a certain number of months are subtracted from a date using the DateOffset functionality.

Python3




import pandas as pd
 
date = pd.Timestamp('2023-12-22')
offset = pd.DateOffset(months=-2)
new_date = date + offset
print(new_date) 


Output:

Subtracting Months from a Date: 2023-10-22 00:00:00

Example 4: Applying the Offset to a Series

In this example, a sequence of dates is shifted forward or backward by a set number of days using the DateOffset mechanism.

Python3




import pandas as pd
 
dates = pd.date_range('2023-12-20', periods=5, freq='D')
offset = pd.DateOffset(days=3)
new_dates = dates + offset
print(new_dates)


Output:

Applying the Offset to a Series: 
DatetimeIndex(['2023-12-23', '2023-12-24', '2023-12-25', '2023-12-26',
'2023-12-27'],
dtype='datetime64[ns]', freq=None)

Example 5: Using Custom Frequency

In this example, a specific date is determined by adding a combination of weeks and days to a starting date using the DateOffset.

Python3




import pandas as pd
 
date = pd.Timestamp('2023-12-22')
# 2 weeks and 3 days
offset = pd.DateOffset(weeks=2, days=3
new_date = date + offset
print(new_date)


Output:

Using Custom Frequency: 2024-01-08 00:00:00


Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads