Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

Python Pandas CustomBusinessHour - วันที่ระบุวันที่ไปข้างหน้าเพื่อออฟเซ็ตถัดไปเท่านั้นหากไม่ได้ออฟเซ็ต


หากต้องการเลื่อนวันที่ที่กำหนดให้ไปข้างหน้าไปยังออฟเซ็ตถัดไปหากไม่ได้ออฟเซ็ต ให้ใช้เมธอด CustomBusinessHour.rollforward() ใน Pandas

ขั้นแรก นำเข้าไลบรารีที่จำเป็น -

import pandas as pd

ตั้งค่าอ็อบเจ็กต์ประทับเวลาใน Pandas -

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

สร้างออฟเซ็ต CustomBusinessHour CustomBusinessHour เป็นคลาสย่อย DateOffset สัปดาห์ของวันทำการที่ถูกต้อง −

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

เพิ่มออฟเซ็ตในการประทับเวลาและแสดงการประทับเวลาที่อัปเดต -

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

ม้วนไปข้างหน้าถ้าไม่ได้ออฟเซ็ต -

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

แสดงผล -

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

ตัวอย่าง

ต่อไปนี้เป็นรหัส -

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)

ผลลัพธ์

สิ่งนี้จะสร้างรหัสต่อไปนี้ -

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