Computer >> Máy Tính >  >> Lập trình >> Python

Python Pandas CustomBusinessHour - Ngày cung cấp cuộn được chuyển tiếp sang ngày bù tiếp theo chỉ nếu không có bù đắp

Để chuyển ngày đã cung cấp về phía trước chỉ đến ngày bù tiếp theo nếu không có ngày bù, hãy sử dụng phương thức CustomBusinessHour.rollosystem () trong Pandas.

Đầu tiên, hãy nhập các thư viện được yêu cầu -

import pandas as pd

Đặt đối tượng dấu thời gian trong Pandas -

timestamp = pd.Timestamp('2021-12-20 08:35:10')

Tạo phần bù CustomBusinessHour. CustomBusinessHour là lớp con của DateOffset. Weekmask ngày làm việc hợp lệ -

cbhOffset = pd.tseries.offsets.CustomBusinessHour(n = 5, weekmask = 'Mon Tue Wed Fri')

Thêm phần bù vào Dấu thời gian và hiển thị Dấu thời gian đã cập nhật -

print("\nUpdated Timestamp...\n",timestamp + cbhOffset)

Cuộn về phía trước nếu không bù đắp -

roll = cbhOffset.rollforward(pd.Timestamp('2021-12-30 08:35:10'))

Hiển thị kết quả -

print("\nRoll forward Result...\n",roll)

Ví dụ

Sau đây là mã -

import pandas as pd

# Set the timestamp object in Pandas
timestamp = pd.Timestamp('2021-12-20 08:35:10')

# Display the Timestamp
print("Timestamp...\n",timestamp)

# Create the CustomBusinessHour Offset
# CustomBusinessHour is the DateOffset subclass
# Weekmask of valid business days
cbhOffset = pd.tseries.offsets.CustomBusinessHour(n = 5, weekmask = 'Mon Tue Wed Fri')

# Display the CustomBusinessHour Offset
print("\nCustomBusinessHour Offset...\n",cbhOffset)

# Add the offset to the Timestamp and display the Updated Timestamp
print("\nUpdated Timestamp...\n",timestamp + cbhOffset)

# roll forward if not on offset
roll = cbhOffset.rollforward(pd.Timestamp('2021-12-30 08:35:10'))

# display the result
print("\nRoll forward Result...\n",roll)

Đầu ra

Điều này sẽ tạo ra mã sau -

Timestamp...
 2021-12-20 08:35:10

CustomBusinessHour Offset...
 <5 * CustomBusinessHours: CBH=09:00-17:00>

Updated Timestamp...
 2021-12-20 14:00:00

Roll forward Result...
 2021-12-31 09:00:00