[파이썬] pandas에서 Period와 PeriodIndex

Period 클래스

Period 클래스는 일정한 길이의 시간 간격, 예를 들어 한 달, 한 주, 한 해 등을 나타냅니다. Period 클래스는 다음과 같은 방식으로 생성할 수 있습니다:

import pandas as pd

p = pd.Period('2022-01', freq='M')
print(p)

위 코드에서 Period 객체 p를 생성할 때, 첫 번째 인자로는 기간의 시작일을 포함한 문자열을 주고, freq 옵션으로 기간의 길이를 지정합니다. "M"은 월 단위의 기간을 나타냅니다.

Period 객체는 해당 기간의 정보를 다양한 속성으로 사용할 수 있습니다. 예를 들어 p.year 속성을 사용하면 해당 기간의 연도를 가져올 수 있고, p.month 속성을 사용하면 해당 기간의 월을 가져올 수 있습니다. 이 외에도 p.start_timep.end_time 속성을 사용하여 해당 기간의 시작일과 종료일을 가져올 수도 있습니다.

PeriodIndex 클래스

PeriodIndex 클래스는 여러 개의 Period 객체를 포함하는 인덱스를 나타냅니다. 이는 시계열 데이터를 효율적으로 다룰 수 있다는 장점을 갖습니다. PeriodIndex 객체를 생성하는 방법은 다음과 같습니다:

import pandas as pd

p1 = pd.Period('2022-01', freq='M')
p2 = pd.Period('2022-02', freq='M')
p3 = pd.Period('2022-03', freq='M')

periods = pd.PeriodIndex([p1, p2, p3])
print(periods)

위 코드에서 Period 객체들 p1, p2, p3를 생성한 후, PeriodIndex 객체 periods를 생성하는데 이들을 리스트 형태로 전달합니다. 이렇게 생성된 PeriodIndex 객체는 각각의 Period 객체의 정보에 접근할 수 있도록 인덱스 형태로 구성됩니다.

PeriodIndex 객체는 시계열 데이터 분석에서 다양한 용도로 활용될 수 있습니다. 예를 들어 인덱싱이나 슬라이싱을 통해 원하는 기간의 데이터를 선택하거나, 두 개의 PeriodIndex 객체를 더하거나 빼서 기간 간의 차이를 계산하는 등 다양한 연산에 활용할 수 있습니다.

결론

pandas의 PeriodPeriodIndex 클래스는 시계열 데이터를 효율적으로 다룰 수 있도록 도와주는 강력한 도구입니다. Period 객체는 일정한 기간을 나타내고, PeriodIndex 객체는 여러 개의 Period 객체를 담는 인덱스를 나타냅니다. 이를 활용하여 다양한 시계열 데이터 분석 작업을 수행할 수 있습니다.