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

Python Pandas - Kiểm tra ngày trong DateTimeIndex có phải năm nhuận

Để kiểm tra các ngày trong DateTimeIndex có rơi vào năm nhuận (leap year) hay không, sử dụng thuộc tính DateTimeIndex.is_leap_year.

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

1. Import thư viện

import pandas as pd

2. Tạo DateTimeIndex tần suất năm

datetimeindex = pd.date_range('2021-12-30 02:30:50', periods=6, tz='Australia/Adelaide', freq='3Y')

3. Kiểm tra năm nhuận

print("\nKiểm tra năm nhuận:\n", datetimeindex.is_leap_year)

Ví dụ hoàn chỉnh

import pandas as pd

datetimeindex = pd.date_range('2021-12-30 02:30:50', periods=6, tz='Australia/Adelaide', freq='3Y')

print("DateTimeIndex:\n", datetimeindex)
print("\nTần suất:", datetimeindex.freq)
print("\nNăm nhuận?\n", datetimeindex.is_leap_year)

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', '2036-12-31 02:30:50+10:30'], dtype='datetime64[ns, Australia/Adelaide]', freq='3A-DEC')
Tần suất: <3 * YearEnds: month=12>
Kiểm tra năm nhuận:
[False True False False False True]

Giải thích

TimestampNămNăm nhuận?
2021-12-312021False
2024-12-312024True (chia hết 4, không chia hết 100)
2027-12-312027False
2030-12-312030False
2033-12-312033False
2036-12-312036True

Quy tắc năm nhuận

  • Chia hết cho 4 → năm nhuận.
  • Trừ: chia hết cho 100 → KHÔNG nhuận.
  • Trừ trường hợp: chia hết cho 400 → CÓ nhuận.

Các thuộc tính datetime liên quan

dt.year        # Năm
dt.month       # Tháng
dt.day         # Ngày
dt.dayofweek   # Thứ (0=Mon)
dt.dayofyear   # Ngày trong năm
dt.is_leap_year# Boolean array
dt.days_in_month # Số ngày trong tháng