PeriodIndex를 Timestamp로 변환하기
Pandas에서 PeriodIndex 객체를 타임스탬프(Timestamp)로 변환하려면 to_timestamp() 메서드를 사용하면 됩니다. 이 메서드는 기간(period) 정보를 나타내는 PeriodIndex를 실제 날짜·시간 값을 담고 있는 DatetimeIndex로 변환해 주며, 시계열 데이터 분석에서 매우 유용하게 활용됩니다.
기본 사용 절차
먼저 필요한 라이브러리를 임포트합니다.
import pandas as pd
다음으로 freq 파라미터를 사용하여 빈도(frequency)를 지정하면서 PeriodIndex 객체를 생성합니다.
periodIndex = pd.PeriodIndex(['2021-09-25 07:30:35', '2019-10-30 04:15:45', '2020-07-15 02:55:15', '2022-06-25 09:40:55'], freq="Y")
생성된 PeriodIndex 객체를 화면에 출력해 확인합니다.
print("PeriodIndex...\n", periodIndex)
마지막으로 to_timestamp() 메서드를 호출하여 PeriodIndex를 타임스탬프로 변환합니다.
print("\nPeriodIndex object to timestamp...\n", periodIndex.to_timestamp())
전체 예제 코드
아래는 위 과정을 하나로 정리한 전체 코드입니다.
import pandas as pd
# PeriodIndex 객체 생성
# PeriodIndex는 시간상 규칙적인 기간을 나타내는 서수(ordinal) 값을 저장하는 불변(immutable) ndarray입니다.
# "freq" 파라미터를 통해 빈도를 지정했습니다.
periodIndex = pd.PeriodIndex(['2021-09-25 07:30:35', '2019-10-30 04:15:45',
'2020-07-15 02:55:15', '2022-06-25 09:40:55'], freq="Y")
# PeriodIndex 객체 출력
print("PeriodIndex...\n", periodIndex)
# PeriodIndex의 빈도 객체 출력
print("\nPeriodIndex frequency object...\n", periodIndex.freq)
# 문자열 형태의 PeriodIndex 빈도 출력
print("\nPeriodIndex frequency object as a string...\n", periodIndex.freqstr)
# PeriodIndex를 타임스탬프로 변환
print("\nPeriodIndex object to timestamp...\n", periodIndex.to_timestamp())
실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
PeriodIndex... PeriodIndex(['2021', '2019', '2020', '2022'], dtype='period[A-DEC]') PeriodIndex frequency object... <YearEnd: month=12> PeriodIndex frequency object as a string... A-DEC PeriodIndex object to timestamp... DatetimeIndex(['2021-01-01', '2019-01-01', '2020-01-01', '2022-01-01'], dtype='datetime64[ns]', freq=None)
결과 해설
빈도를 "Y"(연 단위)로 지정했기 때문에 각 날짜가 해당 연도의 기간으로 인식되었으며, to_timestamp() 호출 시 각 연도의 시작일인 1월 1일에 해당하는 DatetimeIndex로 변환된 것을 확인할 수 있습니다. 즉, 원래 입력값의 시·분·초 정보는 무시되고 연도 기준의 대표 타임스탬프가 생성됩니다.