입력 −
하나의 시리즈(Series)가 있다고 가정해 보겠습니다. 이때 주어진 특정 날짜 범위에서 각 날짜가 해당 연도의 몇 번째 날에 해당하는지(연중 일, day of year)를 구하고자 합니다.
해결 방법
이 문제를 해결하기 위해 다음과 같은 단계로 접근할 수 있습니다.
먼저 날짜 데이터를 담은 시리즈를 정의합니다.
pd.date_range()함수를 사용하여 시작 날짜 '2020-01-10'부터 총 5개의 기간(periods)에 해당하는 날짜 범위를 생성합니다.
pd.date_range('2020-01-10', periods=5)
Series.dt.dayofyear속성을 활용하면 각 날짜가 연중 몇 번째 날인지 손쉽게 확인할 수 있습니다.
예제
전체 구현 과정을 살펴보면 다음과 같습니다.
import pandas as pd
date = pd.date_range('2020-01-10', periods=5)
data = pd.Series(date)
print(data.dt.dayofyear)
출력 결과
0 10 1 11 2 12 3 13 4 14
결과 설명: '2020-01-10'은 해당 연도의 10번째 날이므로 첫 번째 값이 10으로 출력되며, 이후 날짜들이 하루씩 증가하면서 11, 12, 13, 14가 순서대로 표시됩니다. dt.dayofyear는 윤년 여부도 자동으로 처리해 주기 때문에 어떤 연도의 날짜에도 정확하게 적용할 수 있습니다.