Timedelta를 지정된 해상도로 반올림하기
Pandas에서 Timedelta 객체를 특정 해상도(빈도)에 맞춰 반올림하려면 Timedelta.round() 메서드를 사용합니다. 이때 freq 매개변수를 통해 원하는 해상도(초, 분, 시간, 일 등)를 지정할 수 있습니다.
1단계: 필요한 라이브러리 임포트
먼저 pandas 라이브러리를 불러옵니다.
import pandas as pd
2단계: Timedelta 객체 생성
다음과 같이 Timedelta 객체를 생성합니다.
timedelta = pd.Timedelta('2 days 10 hours 45 min 20 s 35 ms 55 ns')이 코드는 2일 10시간 45분 20초 35밀리초 55나노초에 해당하는 시간 간격을 나타내는 객체를 만듭니다.
3단계: Timedelta 값 확인
print("Timedelta...\n", timedelta)4단계: 초 단위로 반올림
freq 매개변수에 's'를 지정하여 초 단위 해상도로 반올림합니다.
timedelta.round(freq='s')
freq 매개변수에는 's'(초) 외에도 'ms'(밀리초), 'min'(분), 'h'(시간), 'D'(일) 등 다양한 빈도 문자열을 사용할 수 있으므로, 상황에 맞게 해상도를 조절하면 됩니다.
전체 예제 코드
아래는 위 과정을 하나로 정리한 전체 코드입니다.
import pandas as pd
# Timedelta 객체 생성
# Python의 표준 datetime 라이브러리인 timedelta와 유사한 방식으로 동작합니다.
timedelta = pd.Timedelta('2 days 10 hours 45 min 20 s 35 ms 55 ns')
# Timedelta 출력
print("Timedelta...\n", timedelta)
# freq='s'로 초 단위 해상도를 지정하여 반올림
res = timedelta.round(freq='s')
# 반올림된 결과 출력
print("\nTimedelta (seconds rounded)...\n", res)실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Timedelta... 2 days 10:45:20.035000055 Timedelta (seconds rounded)... 2 days 10:45:20
결과를 보면 원래 값의 밀리초(035000055ns) 부분이 잘리고, 초 단위까지만 남은 것을 확인할 수 있습니다. 이처럼 round() 메서드와 freq 매개변수를 활용하면 원하는 정밀도로 손쉽게 시간 간격을 반올림할 수 있습니다.