본문 바로가기
Python notes/Python Errors

Python Errors) 시계열 분해 STL의 TypeError 해결하기, TypeError: PeriodIndex given. Check the 'freq' attribute instead of using infer_freq.

by 성실한 나무 2022. 8. 24.

1. statsmodels의 STL 함수를 사용해서 시계열 데이터 분해를 하고 있다가 아래의 에러를 만났다.

TypeError: PeriodIndex given. Check the 'freq' attribute instead of using infer_freq.

 에러메시지를 해석해 보면, PeriodIndex가 주어졌으니, 추측 빈도를 사용하는 대신에 '빈도' 속성을 확인해 봐라. 라고 한다. 알고보니 시계열 데이터 초기 셋팅 때 날짜 인덱스를 .to_period()로 해서 PeriodIndex로 셋팅했던 것이 기억이 났다.

TypeError: PeriodIndex given. Check the 'freq' attribute instead of using infer_freq.

 

2. 에러를 해결하려면? Period Index를 Datetime Index로 변경하면 된다 !!

 날짜 인덱스를 기반으로 시계열 데이터의 산술적 처리를 하기 위해서는 인덱스가 꼭 Datetime Index 타입이어야 한다고 한다. 그렇다면 지금 Period index로 설정된 것을 Datetime Index로 어떻게 바꿀 수 있을까?

 정답은 to_timestamp()를 사용하는 것이다. 예시는 아래와 같다. 인덱스 데이터 타입을 아래와 같이 변경해주면 되는 것이다. 그러면 무난하게 STL 분해가 이루어진 것을 확인할 수 있다.

to_timestamp()로 PeriodIndex를 Datetime Index로 변환

댓글