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