Để kiểm tra các ngày trong DateTimeIndex có phải là ngày cuối năm (December 31) hay không, sử dụng thuộc tính DateTimeIndex.is_year_end.
Các bước thực hiện
1. Import thư viện
import pandas as pd
2. Tạo DateTimeIndex quanh cuối năm
Tần suất 2 ngày, 6 kỳ, bắt đầu 25/12:
datetimeindex = pd.date_range('2021-12-25 02:30:50', periods=6, tz='Australia/Adelaide', freq='2D')
3. Kiểm tra cuối năm
print("\nKiểm tra ngày cuối năm:\n", datetimeindex.is_year_end)
Ví dụ hoàn chỉnh
import pandas as pd
datetimeindex = pd.date_range('2021-12-25 02:30:50', periods=6, tz='Australia/Adelaide', freq='2D')
print("DateTimeIndex:\n", datetimeindex)
print("\nTần suất:", datetimeindex.freq)
print("\nNgày cuối năm?\n", datetimeindex.is_year_end)
Kết quả đầu ra
DateTimeIndex: DatetimeIndex(['2021-12-25 02:30:50+10:30', '2021-12-27 02:30:50+10:30', '2021-12-29 02:30:50+10:30', '2021-12-31 02:30:50+10:30', '2022-01-02 02:30:50+10:30', '2022-01-04 02:30:50+10:30'], dtype='datetime64[ns, Australia/Adelaide]', freq='2D') Tần suất: <2 * Days> Kiểm tra ngày cuối năm: [False False False True False False]
Giải thích
Chỉ index 3 (2021-12-31) trả về True. Các ngày 2022-01-02, 2022-01-04 thuộc năm mới → False.
Các thuộc tính boolean hữu ích
| Thuộc tính | Kiểm tra |
|---|---|
is_year_start | Ngày 1/1 |
is_year_end | Ngày 31/12 |
is_quarter_start | Ngày 1/1, 1/4, 1/7, 1/10 |
is_quarter_end | Ngày 31/3, 30/6, 30/9, 31/12 |
is_month_start | Ngày 1 của tháng |
is_month_end | Ngày cuối tháng |
is_leap_year | Năm nhuận |
Dùng để lọc dữ liệu: df[df.index.is_year_end] lấy các dòng cuối năm.