Pandas에서 Timedelta 객체를 특정 해상도로 반올림하려면 round() 메서드를 사용합니다. 일(Day) 단위 빈도로 반올림하려면 freq 매개변수에 'D' 값을 지정하면 됩니다.
Timedelta란?
Timedelta는 파이썬 표준 datetime 라이브러리의 timedelta를 Pandas 방식으로 표현한 것으로, 두 날짜·시간 사이의 차이(기간)를 나타냅니다.
구현 단계
1단계: 필요한 라이브러리 임포트
import pandas as pd
2단계: Timedelta 객체 생성
문자열 형식으로 일, 시간, 분, 초, 밀리초, 나노초를 지정하여 Timedelta 객체를 만듭니다.
timedelta = pd.Timedelta('2 days 11 hours 22 min 25 s 50 ms 45 ns')3단계: Timedelta 출력
print("Timedelta...\n", timedelta)4단계: 일 단위 빈도로 반올림
round() 메서드에 freq='D'를 전달하여 일 단위 해상도로 반올림된 결과를 반환받습니다.
timedelta.round(freq='D')
전체 예제 코드
import pandas as pd
# Timedelta는 파이썬 표준 datetime 라이브러리의 timedelta를 다른 방식으로 표현한 것입니다.
# Timedelta 객체 생성
timedelta = pd.Timedelta('2 days 11 hours 22 min 25 s 50 ms 45 ns')
# Timedelta 출력
print("Timedelta...\n", timedelta)
# 일 단위 빈도로 반올림된 결과 반환
# freq 매개변수로 해상도를 지정합니다.
res = timedelta.round(freq='D')
# 반올림된 결과 출력
print("\nTimedelta (daily rounded)...\n", res)실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Timedelta... 2 days 11:22:25.050000045 Timedelta (daily rounded)... 2 days 00:00:00
결과 분석
원본 Timedelta 값은 '2일 11시간 22분 25.05초'였지만, 일 단위('D')로 반올림한 결과 시간 이하의 값이 모두 잘리고 '2 days 00:00:00'이 되었습니다. 이는 11시간이 하루의 절반 미만이므로 가장 가까운 일 단위인 2일로 내림 처리되었기 때문입니다. 만약 12시간을 넘는다면 3일로 올림됩니다.