Article Categories
- All Categories
-
Data Structure
-
Networking
-
RDBMS
-
Operating System
-
Java
-
MS Excel
-
iOS
-
HTML
-
CSS
-
Android
-
Python
-
C Programming
-
C++
-
C#
-
MongoDB
-
MySQL
-
Javascript
-
PHP
-
Economics & Finance
Selected Reading
Python Pandas - Create a BusinessDay offset
To create a BusinessDay offset, use the pd.tseries.offsets.BusinessDay() method in Pandas. This offset allows you to add business days (excluding weekends) to datetime objects with optional time offsets.
Creating a BusinessDay Offset
BusinessDay is a DateOffset subclass that skips weekends when adding days ?
import datetime
import pandas as pd
# Create the BusinessDay Offset with additional time offset
bdOffset = pd.tseries.offsets.BusinessDay(offset = datetime.timedelta(days = 7, hours = 7, minutes = 7))
print("BusinessDay Offset...\n", bdOffset)
BusinessDay Offset... <BusinessDay: offset=datetime.timedelta(days=7, seconds=25620)>
Applying BusinessDay Offset to Timestamp
Add the BusinessDay offset to a timestamp to get the next business day ?
import datetime
import pandas as pd
# Set the timestamp object in Pandas
timestamp = pd.Timestamp('2021-1-1 01:55:02.000045')
print("Original Timestamp...\n", timestamp)
# Create the BusinessDay Offset
bdOffset = pd.tseries.offsets.BusinessDay(offset = datetime.timedelta(days = 7, hours = 7, minutes = 7))
# Apply the offset
updated_timestamp = timestamp + bdOffset
print("\nUpdated Timestamp...\n", updated_timestamp)
Original Timestamp... 2021-01-01 01:55:02.000045 Updated Timestamp... 2021-01-11 09:02:02.000045
Simple BusinessDay Offset
You can also create a simple BusinessDay offset without additional time components ?
import pandas as pd
# Simple BusinessDay offset (1 business day)
simple_offset = pd.tseries.offsets.BusinessDay()
print("Simple BusinessDay Offset:", simple_offset)
# Multiple business days
multi_offset = pd.tseries.offsets.BusinessDay(2)
print("2 BusinessDay Offset:", multi_offset)
# Apply to a Friday timestamp
friday = pd.Timestamp('2021-1-1') # This is a Friday
print("\nFriday:", friday)
print("Friday + 1 BusinessDay:", friday + simple_offset)
print("Friday + 2 BusinessDays:", friday + multi_offset)
Simple BusinessDay Offset: <BusinessDay> 2 BusinessDay Offset: <2 * BusinessDays> Friday: 2021-01-01 00:00:00 Friday + 1 BusinessDay: 2021-01-04 00:00:00 Friday + 2 BusinessDays: 2021-01-05 00:00:00
Key Parameters
The BusinessDay() offset accepts several useful parameters ?
| Parameter | Description | Example |
|---|---|---|
n |
Number of business days | BusinessDay(3) |
offset |
Additional timedelta offset | offset=timedelta(hours=2) |
holidays |
List of holiday dates to exclude | holidays=['2021-01-01'] |
Conclusion
BusinessDay offset is useful for financial and business applications where weekends should be skipped. Use the offset parameter to add additional time components beyond just days.
Advertisements
