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

Python Pandas - PeriodIndex 객체를 Timestamp로 변환하고 빈도(freq) 설정하기

Python Pandas에서 PeriodIndex 객체를 Timestamp로 변환하려면 PeriodIndex.to_timestamp() 메서드를 사용합니다. 이때 freq 매개변수를 활용하면 변환된 결과의 빈도(frequency)를 원하는 대로 지정할 수 있습니다.

Pandas 라이브러리 불러오기

먼저 필요한 라이브러리를 임포트합니다.

import pandas as pd

PeriodIndex 객체 생성하기

이제 PeriodIndex 객체를 생성합니다. PeriodIndex는 시간상의 규칙적인 기간(period)을 나타내는 서수(ordinal) 값을 담고 있는 불변(immutable) ndarray입니다. 아래 예제에서는 freq 매개변수에 연 단위 빈도인 "Y"를 지정했습니다.

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 객체 출력하기

생성한 PeriodIndex 객체를 화면에 출력해 내용을 확인합니다.

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

Timestamp로 변환하기

to_timestamp() 메서드를 호출하여 PeriodIndex를 Timestamp(DatetimeIndex)로 변환합니다. 여기서는 freq 매개변수에 'M'(월 단위)을 지정하여 변환 결과의 빈도를 월 단위로 설정했습니다.

print("\nPeriodIndex object to timestamp...\n", periodIndex.to_timestamp(freq='M'))

전체 예제 코드

지금까지 설명한 내용을 모두 포함한 전체 코드는 다음과 같습니다.

import pandas as pd

# PeriodIndex 객체 생성
# PeriodIndex는 규칙적인 시간 기간을 나타내는 서수 값을 담은 불변 ndarray입니다.
# freq 매개변수를 사용하여 빈도를 "Y"(연 단위)로 설정했습니다.
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를 Timestamp로 변환
# freq 매개변수를 사용하여 빈도를 'M'(월 단위)으로 설정
print("\nPeriodIndex object to timestamp...\n", periodIndex.to_timestamp(freq='M'))

실행 결과

위 코드를 실행하면 다음과 같은 출력 결과를 얻을 수 있습니다.

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-31', '2019-01-31', '2020-01-31', '2022-01-31'], dtype='datetime64[ns]', freq=None)

정리

이처럼 to_timestamp() 메서드를 사용하면 PeriodIndex 객체를 손쉽게 DatetimeIndex(Timestamp) 형태로 변환할 수 있으며, freq 매개변수를 통해 변환 후의 빈도를 자유롭게 조절할 수 있습니다. 시계열 데이터 분석 시 기간(period) 기반 인덱스와 타임스탬프 기반 인덱스를 유연하게 오갈 때 매우 유용하게 활용됩니다.