Để phát hiện (infer) tần suất của đối tượng DateTimeIndex, sử dụng thuộc tính DateTimeIndex.inferred_freq.
Các bước thực hiện
1. Import thư viện
import pandas as pd
2. Tạo DateTimeIndex có tần suất rõ ràng
Tần suất 3 năm (3Y), 5 kỳ:
datetimeindex = pd.date_range('2021-10-30 02:30:50', periods=5, tz='Australia/Adelaide', freq='3Y')
3. Hiển thị tần suất khai báo và inferred
print("DateTimeIndex:\n", datetimeindex)
print("\nTần suất khai báo (freq):\n", datetimeindex.freq)
print("\nTần suất inferred:\n", datetimeindex.inferred_freq)
Ví dụ hoàn chỉnh
import pandas as pd
datetimeindex = pd.date_range('2021-10-30 02:30:50', periods=5, tz='Australia/Adelaide', freq='3Y')
print("DateTimeIndex:\n", datetimeindex)
print("\nTần suất khai báo (freq):\n", datetimeindex.freq)
print("\nTần suất inferred:\n", datetimeindex.inferred_freq)
Kết quả đầu ra
DateTimeIndex: DatetimeIndex(['2021-12-31 02:30:50+10:30', '2024-12-31 02:30:50+10:30', '2027-12-31 02:30:50+10:30', '2030-12-31 02:30:50+10:30', '2033-12-31 02:30:50+10:30'], dtype='datetime64[ns, Australia/Adelaide]', freq='3A-DEC') Tần suất khai báo (freq): <3 * YearEnds: month=12> Tần suất inferred: 3A-DEC
Giải thích
freq: Tần suất khai báo khi tạo (có thể là None nếu tạo từ list timestamp).inferred_freq: Pandas phân tích dữ liệu để đoán tần suất (dùng khi freq=None).- Kết quả
3A-DEC= 3 Year Ends anchored at December (cuối năm).
Khi nào dùng inferred_freq?
- DateTimeIndex tạo từ dữ liệu thô (list timestamp) không có freq.
- Kiểm tra tính đều đặn của time series.
- Trước khi resample/asfreq cần biết freq.
Lưu ý
- Cần ít nhất 3 timestamp để infer.
- Nếu dữ liệu không đều → trả về
None. - Anchored offset (M, Q, A) phức tạp hơn fixed offset (D, H, T).