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

Python Pandas: Kiểm tra BusinessDay Offset có được chuẩn hóa không

Thuộc tính BusinessDay.normalize trong Pandas cho biết xem đối tượng BusinessDay offset có được chuẩn hóa (normalize) hay không. Khi normalize=True, thành phần thời gian sẽ được đặt về 00:00:00.

Các bước thực hiện

1. Import thư viện

import datetime
import pandas as pd

2. Thiết lập timestamp

timestamp = pd.Timestamp('2021-10-30 01:55:02.000045')

3. Tạo BusinessDay Offset với normalize=True

bdOffset = pd.tseries.offsets.BusinessDay(
    offset=datetime.timedelta(hours=8, minutes=10), 
    normalize=True
)

4. Hiển thị timestamp cập nhật

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

5. Kiểm tra trạng thái chuẩn hóa

print("\nBusinessDay Offset có được chuẩn hóa?\n", bdOffset.normalize)

Ví dụ hoàn chỉnh

import datetime
import pandas as pd

timestamp = pd.Timestamp('2021-10-30 01:55:02.000045')
print("Timestamp...\n", timestamp)

bdOffset = pd.tseries.offsets.BusinessDay(
    offset=datetime.timedelta(hours=8, minutes=10), 
    normalize=True
)
print("\nBusinessDay Offset...\n", bdOffset)
print("\nUpdated Timestamp...\n", timestamp + bdOffset)
print("\nTần suất trên BusinessDay Offset...\n", bdOffset.freqstr)
print("\nTên tần suất trên BusinessDay object..\n", bdOffset.name)
print("\nBusinessDay Offset có được chuẩn hóa?\n", bdOffset.normalize)

Kết quả đầu ra

Timestamp...
2021-10-30 01:55:02.000045
BusinessDay Offset...
<BusinessDay: offset=datetime.timedelta(seconds=29400)>
Updated Timestamp...
2021-11-01 00:00:00
Tần suất trên BusinessDay Offset...
B+8H10Min
Tên tần suất trên BusinessDay object..
B
BusinessDay Offset có được chuẩn hóa?
True

Giải thích: Dù offset có +8h10p, nhưng do normalize=True nên kết quả cuối cùng bị đặt về 00:00:00 của ngày làm việc tiếp theo (thứ Hai 1/11). Thuộc tính .normalize trả về True xác nhận điều này.