Pandas의 timedelta.floor() 메서드를 사용하면 지정한 해상도로 내림(floor) 처리된 새로운 Timedelta 객체를 반환할 수 있습니다. 분(minute) 단위 해상도로 내림하려면 freq 매개변수에 'T'(분) 값을 설정하면 됩니다.
Timedelta 객체 생성하기
먼저 필요한 라이브러리를 임포트합니다.
import pandas as pd
TimeDelta는 파이썬 표준 datetime 라이브러리의 timedelta를 다른 방식으로 표현한 것입니다. 다음과 같이 Timedelta 객체를 생성할 수 있습니다.
timedelta = pd.Timedelta('8 days 11 hours 39 min 18 s')
생성한 Timedelta 객체를 화면에 출력해 보겠습니다.
print("Timedelta...\n", timedelta)
분 단위 해상도로 내림하기
floor() 메서드에 freq='T'를 전달하면 초 단위 값은 잘리고 분 단위까지 내림된 새로운 Timedelta가 반환됩니다.
timedelta.floor(freq='T')
전체 예제 코드
지금까지 설명한 과정을 하나의 코드로 정리하면 다음과 같습니다.
import pandas as pd
# TimeDelta는 파이썬 표준 datetime 라이브러리의 timedelta를 다른 방식으로 표현한 것입니다.
# Timedelta 객체 생성
timedelta = pd.Timedelta('8 days 11 hours 39 min 18 s')
# Timedelta 출력
print("Timedelta...\n", timedelta)
# 분 단위 해상도로 내림된 Timedelta 반환
res = timedelta.floor(freq='T')
# 내림된 결과 출력
print("\nTimedelta (minutely floored)...\n", res)
실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Timedelta... 8 days 11:39:18 Timedelta (minutely floored)... 8 days 11:39:00
정리
원래 값의 초 단위인 18초가 잘려나가고 8일 11시간 39분 00초로 내림된 것을 확인할 수 있습니다. 참고로 Pandas 2.x 버전부터는 'T' 대신 'min' 별칭 사용이 권장되므로, 최신 버전에서는 timedelta.floor(freq='min')처럼 작성하는 것이 좋습니다. 이 외에도 시간 단위는 'H', 초 단위는 'S' 등 다양한 주파수 별칭을 활용해 원하는 해상도로 손쉽게 내림 처리할 수 있습니다.