Timedelta를 분 단위로 반올림하기
Pandas에서 Timedelta 객체를 지정한 해상도로 반올림하려면 round() 메서드를 사용합니다. 분(minute) 단위 해상도로 반올림하려면 freq 매개변수에 'T' 값을 전달하면 됩니다.
1. 라이브러리 임포트
먼저 필요한 라이브러리를 가져옵니다.
import pandas as pd
2. Timedelta 객체 생성
TimeDelta는 파이썬 표준 datetime 라이브러리의 timedelta를 다른 방식으로 표현한 것입니다. 다음과 같이 Timedelta 객체를 생성할 수 있습니다.
timedelta = pd.Timedelta('2 days 10 hours 45 min 20 s 35 ms 55 ns')3. Timedelta 확인
생성된 Timedelta 객체를 출력해 내용을 확인합니다.
print("Timedelta...\n", timedelta)4. 분 단위로 반올림
round() 메서드에 freq 매개변수를 'T'로 설정하여 호출하면, 분 단위로 반올림된 Timestamp를 반환받을 수 있습니다.
timedelta.round(freq='T')
전체 예제 코드
지금까지의 과정을 하나의 코드로 정리하면 다음과 같습니다.
import pandas as pd
# 파이썬 표준 datetime 라이브러리의 timedelta를 다르게 표현한 TimeDelta
# Timedelta 객체 생성
timedelta = pd.Timedelta('2 days 10 hours 45 min 20 s 35 ms 55 ns')
# Timedelta 출력
print("Timedelta...\n", timedelta)
# 분(minute) 단위로 반올림된 Timestamp 반환
# freq 매개변수로 해상도 지정
res = timedelta.round(freq='T')
# 반올림된 결과 출력
print("\nTimedelta (minutely rounded)...\n", res)실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Timedelta... 2 days 10:45:20.035000055 Timedelta (minutely rounded)... 2 days 10:45:00
결과를 보면 원래 값 "2 days 10:45:20.035000055"에서 초 이하 단위가 제거되고 "2 days 10:45:00"으로 반올림된 것을 확인할 수 있습니다. 20초는 30초 미만이므로 가장 가까운 분 경계인 10:45:00 쪽으로 내림 처리된 것입니다.
참고로 freq 매개변수에는 다른 빈도 값도 사용할 수 있습니다. 예를 들어 'H'는 시간 단위, 'S'는 초 단위 반올림에 사용됩니다. 또한 최신 버전의 Pandas에서는 'T' 별칭이 지원 중단(deprecated)되었으므로, 동일한 의미의 'min'을 사용하는 것이 좋습니다.