Pandas에서 PeriodArray를 지정된 빈도(frequency)로 변환하려면 periodIndex.asfreq() 메서드를 사용합니다. 이 메서드를 활용하면 연간(Year), 월간(Month) 등 다양한 주기의 Period 데이터를 손쉽게 원하는 단위로 바꿀 수 있습니다.
1. 필요한 라이브러리 불러오기
가장 먼저 pandas 라이브러리를 임포트합니다.
import pandas as pd
2. PeriodIndex 객체 생성
날짜 문자열 목록을 사용해 PeriodIndex 객체를 생성합니다. 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")
3. PeriodIndex 객체 출력
생성된 객체를 화면에 출력해 내용을 확인합니다.
print("PeriodIndex...\n", periodIndex)4. 지정된 빈도로 변환하기
asfreq() 메서드의 매개변수로 원하는 빈도를 전달하면 됩니다. 아래 예제에서는 연간 빈도를 월간("M") 빈도로 변환합니다.
print("\nConvert..\n", periodIndex.asfreq('M'))전체 예제 코드
지금까지의 과정을 하나의 코드로 정리하면 다음과 같습니다.
import pandas as pd
# PeriodIndex 객체 생성
# PeriodIndex는 시간상 규칙적인 주기를 나타내는 서수 값을 담는 불변(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)
# 지정된 빈도로 변환
# asfreq()의 매개변수로 원하는 빈도를 전달합니다.
print("\nConvert..\n", periodIndex.asfreq('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 Convert.. PeriodIndex(['2021-12', '2019-12', '2020-12', '2022-12'], dtype='period[M]')
참고: 실행 결과에서 볼 수 있듯이, 연간 빈도의 각 기간이 해당 연도의 마지막 달인 12월(예: 2021-12)로 변환되었습니다. asfreq()는 기본적으로 기간의 끝(end)을 기준으로 변환하지만, how='start' 옵션을 추가하면 기간의 시작 시점을 기준으로 변환할 수도 있습니다.