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

Python Pandas – DateTimeIndex를 Period(기간)로 변환하는 방법

Pandas DateTimeIndex를 Period로 변환하기

Pandas에서 DateTimeIndexPeriod(기간) 형태로 변환하려면 to_period() 메서드를 사용하면 됩니다. 이때 변환될 데이터의 주기(빈도)는 freq 매개변수를 통해 지정할 수 있습니다.

1단계: 필요한 라이브러리 가져오기

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

import pandas as pd

2단계: DatetimeIndex 생성

시작 날짜를 기준으로 총 5개의 요소를 가지며, 빈도가 'Y'(연 단위)인 DatetimeIndex를 생성합니다. 여기서는 '2Y'를 사용해 2년 간격으로 날짜를 만들었습니다.

datetimeindex = pd.date_range('2021-10-18 07:20:32.261811624', periods=5, freq='2Y')

3단계: DatetimeIndex 확인

생성된 DatetimeIndex를 화면에 출력해 내용을 확인합니다.

print("DateTimeIndex...\n", datetimeindex)

4단계: DatetimeIndex를 Period로 변환

to_period() 메서드에 freq='M' 값을 전달하여 빈도를 '월(Month)' 단위로 설정한 뒤 변환을 수행합니다.

print("\nConvert DateTimeIndex to Period...\n", datetimeindex.to_period(freq='M'))

전체 예제 코드

지금까지 설명한 과정을 하나의 코드로 정리하면 다음과 같습니다.

import pandas as pd

# 시작 날짜 기준으로 5개의 요소를 가지는 DatetimeIndex 생성 (빈도: 2년)
datetimeindex = pd.date_range('2021-10-18 07:20:32.261811624', periods=5, freq='2Y')

# DatetimeIndex 출력
print("DateTimeIndex...\n", datetimeindex)

# DatetimeIndex의 빈도 출력
print("DateTimeIndex frequency...\n", datetimeindex.freq)

# to_period() 메서드로 PeriodIndex로 변환 (빈도를 '월'로 설정)
print("\nConvert DateTimeIndex to Period...\n", datetimeindex.to_period(freq='M'))

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다. 원래의 DatetimeIndex가 연 단위 타임스탬프에서 PeriodIndex, 즉 'YYYY-MM' 형식의 월 단위 기간으로 성공적으로 변환된 것을 확인할 수 있습니다.

DateTimeIndex...
DatetimeIndex(['2021-12-31 07:20:32.261811624',
'2023-12-31 07:20:32.261811624',
'2025-12-31 07:20:32.261811624',
'2027-12-31 07:20:32.261811624',
'2029-12-31 07:20:32.261811624'],
dtype='datetime64[ns]', freq='2A-DEC')
DateTimeIndex frequency...
<2 * YearEnds: month=12>

Convert DateTimeIndex to Period...
PeriodIndex(['2021-12', '2023-12', '2025-12', '2027-12', '2029-12'], dtype='period[M]')

정리

DatetimeIndex는 특정 시점(timestamp)을 나타내는 반면, PeriodIndex는 연·분기·월 같은 기간(period) 자체를 나타냅니다. 시계열 데이터를 분석할 때 일별·월별 집계 등 기간 단위 연산이 필요하다면 to_period(freq=...) 메서드를 활용해 손쉽게 변환할 수 있습니다.