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

Python Pandas: Tạo DateOffset và tăng ngày tháng

Để tạo DateOffset và tăng ngày tháng trong Pandas, sử dụng constructor DateOffset() với các tham số tăng như days, months, years, v.v.

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

1. Import thư viện

from pandas.tseries.offsets import DateOffset
import pandas as pd

2. Thiết lập timestamp

timestamp = pd.Timestamp('2021-09-11 02:30:55')

3. Tạo DateOffset và cộng vào timestamp

print("DateOffset...\n", timestamp + DateOffset(months=2))

Ví dụ hoàn chỉnh

from pandas.tseries.offsets import DateOffset
import pandas as pd

timestamp = pd.Timestamp('2021-09-11 02:30:55')
print("Timestamp...\n", timestamp)

# Tăng 2 tháng
print("DateOffset...\n", timestamp + DateOffset(months=2))

Kết quả đầu ra

Timestamp...
2021-09-11 02:30:55
DateOffset...
2021-11-11 02:30:55

Giải thích: Từ 11/9/2021 cộng 2 tháng → 11/11/2021. Giữ nguyên ngày và giờ. DateOffset thông minh xử lý ngày cuối tháng (ví dụ: 31/1 + 1 tháng = 28/2 hoặc 29/2 năm nhuận).

Các tham số tăng phổ biến

Tham số Mô tả Ví dụ
days Số ngày DateOffset(days=10)
weeks Số tuần DateOffset(weeks=3)
months Số tháng DateOffset(months=2)
years Số năm DateOffset(years=1)
hours Số giờ DateOffset(hours=5)
minutes Số phút DateOffset(minutes=30)
seconds Số giây DateOffset(seconds=45)

Kết hợp nhiều tham số

# 1 năm, 2 tháng, 3 ngày, 4 giờ
offset = DateOffset(years=1, months=2, days=3, hours=4)
print(timestamp + offset)  # 2022-11-14 06:30:55

DateOffset vs to_offset()

  • DateOffset(): Linh hoạt, kết hợp nhiều đơn vị, nhưng freqstr không chuẩn
  • to_offset(): Chuẩn tần suất (freqstr, rule_code đúng), nhưng ít linh hoạt hơn