Timedelta를 특정 해상도로 내림(floor)한 새로운 객체를 반환하려면 timedelta.floor() 메서드를 사용합니다. 초 단위 해상도로 내림하려면 freq 매개변수에 'S' 값을 지정하면 됩니다.
라이브러리 가져오기
먼저 필요한 라이브러리를 임포트합니다.
import pandas as pd
Timedelta 객체 생성
TimeDelta는 파이썬 표준 datetime 라이브러리의 timedelta를 다른 방식으로 표현한 것입니다. 아래와 같이 Timedelta 객체를 생성해 보겠습니다.
timedelta = pd.Timedelta('4 days 11 hours 38 min 20 s 35 ms 55 ns')생성된 Timedelta를 화면에 출력합니다.
print("Timedelta...\n", timedelta)초 단위 해상도로 내림된 결과를 반환하려면 floor() 메서드에 freq='S' 옵션을 사용합니다.
timedelta.floor(freq='S')
전체 예제 코드
다음은 위 과정을 모두 포함한 전체 코드입니다.
import pandas as pd
# TimeDelta는 파이썬 표준 datetime 라이브러리의 timedelta를 다르게 표현한 것입니다
# Timedelta 객체 생성
timedelta = pd.Timedelta('4 days 11 hours 38 min 20 s 35 ms 55 ns')
# Timedelta 출력
print("Timedelta...\n", timedelta)
# 초 단위 해상도로 내림한 결과 반환
res = timedelta.floor(freq='S')
# 내림된 결과 출력
print("\nTimedelta (seconds floored)...\n", res)실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Timedelta... 4 days 11:38:20.035000055 Timedelta (seconds floored)... 4 days 11:38:20
핵심 정리
floor() 메서드는 밀리초(35 ms)와 나노초(55 ns) 등 초 미만의 시간 단위를 모두 잘라내고, 지정한 해상도(여기서는 초) 이하의 값들을 버립니다. 반대로 올림 처리를 하고 싶다면 ceil(), 가장 가까운 단위로 반올림하려면 round() 메서드를 사용할 수 있습니다.