Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Python Pandas: Tạo BusinessDay offset

Để 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)