Mô tả bài toán
Cho một Series ngày tháng, cần tìm thứ tự ngày trong năm (day of year) cho mỗi ngày. Ví dụ: từ 2020-01-10 lấy 5 ngày liên tiếp.
Giải pháp
Sử dụng pd.date_range() tạo chuỗi ngày, chuyển thành Series, truy cập .dt.dayofyear.
Ví dụ code hoàn chỉnh
import pandas as pd
# Tạo 5 ngày liên tiếp từ 2020-01-10
date = pd.date_range('2020-01-10', periods=5)
data = pd.Series(date)
print("Series ngày:")
print(data)
# Lấy ngày trong năm (1-366)
day_of_year = data.dt.dayofyear
print("\nThứ tự ngày trong năm:")
print(day_of_year)
Đầu ra
Series ngày: 0 2020-01-10 1 2020-01-11 2 2020-01-12 3 2020-01-13 4 2020-01-14 dtype: datetime64[ns] Thứ tự ngày trong năm: 0 10 1 11 2 12 3 13 4 14 dtype: int64
Ứng dụng thực tế
Thuộc tính dayofyear hữu ích cho:
- Phân tích xu hướng theo mùa vụ.
- So sánh cùng kỳ năm trước.
- Tính toán ngày làm việc, ngày nghỉ trong năm.
Lưu ý: Năm nhuận (như 2020) có 366 ngày, dayofyear tối đa là 366.