Để 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
freqstrkhông chuẩn - to_offset(): Chuẩn tần suất (freqstr, rule_code đúng), nhưng ít linh hoạt hơn