Để tạo một BusinessDay offset trong Pandas, sử dụng phương thức pd.tseries.offsets.BusinessDay(). Offset này đại diện cho ngày làm việc (Thứ 2 - Thứ 6), bỏ qua thứ 7 và chủ nhật.
Cú pháp cơ bản
pd.tseries.offsets.BusinessDay(n=1, offset=timedelta(0), normalize=False)
| Tham số | Mô tả |
|---|---|
n |
Số ngày làm việc (mặc định 1) |
offset |
Timedelta bổ sung thêm vào mỗi ngày làm việc |
normalize |
Chuẩn hóa về 00:00:00 (mặc định False) |
Các bước thực hiện
1. Import thư viện
import datetime
import pandas as pd
2. Tạo BusinessDay Offset
bdOffset = pd.tseries.offsets.BusinessDay(offset=datetime.timedelta(days=7, hours=7, minutes=7))
3. Hiển thị BusinessDay Offset
print("BusinessDay Offset...\n", bdOffset)
4. Thiết lập timestamp
timestamp = pd.Timestamp('2021-1-1 01:55:02.000045')
5. Hiển thị timestamp cập nhật
print("\nUpdated Timestamp...\n", timestamp + bdOffset)
Ví dụ hoàn chỉnh
import datetime
import pandas as pd
timestamp = pd.Timestamp('2021-1-1 01:55:02.000045')
print("Timestamp...\n", timestamp)
bdOffset = pd.tseries.offsets.BusinessDay(offset=datetime.timedelta(days=7, hours=7, minutes=7))
print("BusinessDay Offset...\n", bdOffset)
print("\nUpdated Timestamp...\n", timestamp + bdOffset)
Kết quả đầu ra
Timestamp...
2021-01-01 01:55:02.000045
BusinessDay Offset...
<BusinessDay: offset=datetime.timedelta(days=7, seconds=25620)>
Updated Timestamp...
2021-01-11 09:02:02.000045
Lưu ý: Tham số offset ở đây là timedelta(days=7, hours=7, minutes=7) - đây là offset bổ sung cho mỗi ngày làm việc, không phải tổng cộng. Với n=1 (mặc định), tổng offset = 1 ngày làm việc + 7 ngày 7 giờ 7 phút.
Ví dụ khác
# 3 ngày làm việc đơn giản
bd1 = pd.tseries.offsets.BusinessDay(n=3)
print(timestamp + bd1) # 2021-01-06 01:55:02.000045 (Thứ 4)
# Có normalize
bd2 = pd.tseries.offsets.BusinessDay(n=2, normalize=True)
print(timestamp + bd2) # 2021-01-05 00:00:00 (Thứ 3, giờ 00:00)