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

Python Pandas – Period 객체의 빈도를 초(S)에서 시간(H) 단위로 변환하는 방법

Pandas에서 Period 객체의 빈도를 초(Seconds)에서 시간별(Hourly) 빈도로 변경하려면 period.asfreq() 메서드를 사용하고 매개변수로 'H'를 지정하면 됩니다. 이 메서드는 시계열 데이터의 빈도를 손쉽게 변환할 수 있게 해주는 유용한 기능입니다.

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() 메서드에 'H'를 전달하여 초 단위 빈도를 시간별 빈도로 변환합니다.

res = period.asfreq('H')

전체 예제 코드

지금까지의 내용을 종합한 전체 코드는 다음과 같습니다.

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() 메서드에 'H'를 지정하여 초 → 시간 단위 빈도로 변환
res = period.asfreq('H')

# 변환 결과 출력
print("\n빈도 변환 후 최종 결과...\n", res)

실행 결과

위 코드를 실행하면 다음과 같은 출력이 생성됩니다.

Period...
2021-04-16 02:35:15

빈도 변환 후 최종 결과...
2021-04-16 02:00

정리

asfreq() 메서드를 사용하면 Period 객체의 빈도를 간단히 변환할 수 있습니다. 위 예제에서 볼 수 있듯이, 초 단위(2021-04-16 02:35:15)였던 객체가 시간 단위(2021-04-16 02:00)로 변환되면서 분과 초 정보가 잘린 것을 확인할 수 있습니다. 이는 더 낮은 정밀도의 빈도로 변환할 때 해당 단위보다 세밀한 정보가 제거되기 때문입니다.