Pandas의 Period 객체는 특정 시점이 아니라 하나의 기간(시간 구간)을 나타내는 자료형입니다. 이 글에서는 초(Sec) 단위 빈도로 생성된 Period 객체의 빈도를 일(Daily) 단위로 변경하는 방법을 살펴봅니다. 빈도 변환에는 period.asfreq() 메서드를 사용하며, 매개변수에 'D'를 지정하면 됩니다.
1. 라이브러리 가져오기
먼저 필요한 라이브러리를 임포트합니다.
import pandas as pd
2. Period 객체 생성하기
pandas.Period는 하나의 기간을 나타냅니다. 'freq' 매개변수를 사용해 빈도를 초 단위('S')로 지정하고, 연·월·일·시·분·초 값을 함께 전달하여 Period 객체를 생성합니다.
period = pd.Period(freq="S", year=2021, month=4, day=16, hour=2, minute=35, second=15)
3. Period 객체 출력하기
생성된 Period 객체를 출력하여 초 단위 빈도가 올바르게 적용되었는지 확인합니다.
print("Period...\n", period)
4. 빈도를 초에서 일 단위로 변환하기
asfreq() 메서드에 "D"를 전달하면 초 단위 빈도가 일 단위 빈도로 변환됩니다.
res = period.asfreq('D')
전체 예제 코드
다음은 위 과정을 모두 포함한 전체 코드입니다.
import pandas as pd
# pandas.Period는 하나의 기간을 나타냅니다
# 'freq' 매개변수로 빈도를 초('S')로 설정한 Period 객체 생성
period = pd.Period(freq="S", year=2021, month=4, day=16, hour=2, minute=35, second=15)
# 초 단위 빈도의 Period 객체 출력
print("Period...\n", period)
# asfreq()에 'D'를 지정하여 초 → 일 단위 빈도로 변환
res = period.asfreq('D')
# 변환 결과 출력
print("\nFinal result after converting frequency ...\n", res)
실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Period... 2021-04-16 02:35:15 Final result after converting frequency ... 2021-04-16
출력 결과를 보면 원래의 Period 객체는 2021년 4월 16일 02시 35분 15초까지 표시되지만, asfreq('D')로 변환한 후에는 날짜 정보만 남아 2021-04-16으로 표시되는 것을 확인할 수 있습니다. 이처럼 asfreq() 메서드를 활용하면 Period 객체의 빈도를 손쉽게 다른 단위로 변환할 수 있습니다.