Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python Pandas – PeriodIndex를 생성하고 연중 몇 번째 날(day of year) 구하기

pandas.PeriodIndex() 메서드를 사용하면 PeriodIndex를 손쉽게 생성할 수 있으며, PeriodIndex.dayofyear 속성을 활용하면 각 날짜가 해당 연도에서 몇 번째 날에 해당하는지 확인할 수 있습니다.

1. 필수 라이브러리 임포트

가장 먼저 pandas 라이브러리를 임포트합니다.

import pandas as pd

2. PeriodIndex 객체 생성

PeriodIndex는 시간상의 규칙적인 기간(period)을 나타내는 서수(ordinal) 값을 저장하는 불변(immutable) ndarray입니다. 아래 예제에서는 freq 매개변수를 "D"로 설정하여 일(Day) 단위 빈도를 지정했습니다.

periodIndex = pd.PeriodIndex(['2018-07-25', '2019-10-30', '2020-11-20',
'2021-09-15', '2022-03-12', '2023-06-18'], freq="D")

3. PeriodIndex 객체 및 연중 일(day of year) 출력

생성된 PeriodIndex 객체를 화면에 표시한 뒤, dayofyear 속성으로 각 날짜의 연중 순번을 확인합니다.

print("PeriodIndex...\n", periodIndex)

print("\nDays of the year from the PeriodIndex...\n", periodIndex.dayofyear)

전체 예제 코드

다음은 위 과정을 모두 포함한 완전한 코드입니다.

import pandas as pd

# PeriodIndex 객체 생성
# PeriodIndex는 시간상 규칙적인 기간을 나타내는 서수 값을 담는 불변 ndarray입니다.
# "freq" 매개변수를 사용하여 빈도를 설정했습니다.
periodIndex = pd.PeriodIndex(['2018-07-25', '2019-10-30', '2020-11-20',
'2021-09-15', '2022-03-12', '2023-06-18'], freq="D")

# PeriodIndex 객체 출력
print("PeriodIndex...\n", periodIndex)

# PeriodIndex 빈도 출력
print("\nPeriodIndex frequency...\n", periodIndex.freq)

# PeriodIndex에서 일(day) 값 출력
print("\nThe number of days from the PeriodIndex...\n", periodIndex.day)

# PeriodIndex에서 연중 일(day of year) 값 출력
print("\nDays of the year from the PeriodIndex...\n", periodIndex.dayofyear)

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

PeriodIndex...
PeriodIndex(['2018-07-25', '2019-10-30', '2020-11-20', '2021-09-15', '2022-03-12', '2023-06-18'],
dtype='period[D]')

PeriodIndex frequency...
<Day>

The number of days from the PeriodIndex...
Int64Index([25, 30, 20, 15, 12, 18], dtype='int64')

Days of the year from the PeriodIndex...
Int64Index([206, 303, 325, 258, 71, 169], dtype='int64')

결과 해석

출력 결과를 보면 freq="D"로 설정했기 때문에 빈도가 <Day>로 표시되며, day 속성은 각 날짜의 '일' 값만 반환합니다. 반면 dayofyear 속성은 연중 몇 번째 날인지를 나타냅니다. 예를 들어 2018-07-25는 그 해의 206번째 날, 2022-03-12는 71번째 날에 해당합니다. 이처럼 dayofyear 속성을 활용하면 시계열 데이터 분석 시 계절성(seasonality) 파악이나 특정 시기 필터링에 유용하게 활용할 수 있습니다.