Pandas에서 Timedelta 객체를 지정한 해상도로 반올림하려면 round() 메서드를 사용합니다. 이때 freq 매개변수에 's'(초) 값을 설정하면 초 단위 해상도로 반올림할 수 있습니다.
필요한 라이브러리 가져오기
먼저 필요한 라이브러리를 임포트합니다.
import pandas as pd
Timedelta 객체 생성하기
Timedelta는 Python의 표준 datetime 라이브러리에서 사용하는 timedelta와 유사하지만, Pandas는 더 다양한 해상도를 지원합니다. 아래와 같이 Timedelta 객체를 생성해 보겠습니다.
timedelta = pd.Timedelta('1 days 11 hours 22 min 25 s 50 ms 45 ns')생성된 Timedelta 객체를 출력하여 확인합니다.
print("Timedelta...\n", timedelta)초 단위로 반올림하기
freq 매개변수에 's'를 지정하면 밀리초(ms)와 나노초(ns) 값이 잘리고 초 단위까지의 값만 남게 됩니다.
res = timedelta.round(freq='s')
전체 예제 코드
지금까지의 내용을 하나의 코드로 정리하면 다음과 같습니다.
import pandas as pd
# Timedelta 객체 생성
timedelta = pd.Timedelta('1 days 11 hours 22 min 25 s 50 ms 45 ns')
# Timedelta 출력
print("Timedelta...\n", timedelta)
# freq 매개변수로 초(s) 단위 해상도 지정 후 반올림
res = timedelta.round(freq='s')
# 반올림된 결과 출력
print("\nTimedelta (seconds rounded)...\n", res)실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Timedelta... 1 days 11:22:25.050000045 Timedelta (seconds rounded)... 1 days 11:22:25
정리
이처럼 Pandas의 round() 메서드와 freq 매개변수를 활용하면 Timedelta 값을 원하는 시간 단위(초, 분, 시간 등)로 손쉽게 반올림할 수 있습니다. 's' 외에도 'ms'(밀리초), 'min'(분), 'h'(시간) 등 다양한 주파수 문자열을 사용할 수 있으므로, 데이터 전처리 과정에서 시간 데이터를 일관된 단위로 맞출 때 매우 유용합니다.