Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python Pandas – 지정된 해상도로 올림 처리된 새로운 Timedelta 반환하기

Python Pandas – 지정된 해상도로 올림 처리된 새로운 Timedelta 반환하기

pandas에서 timedelta.ceil() 메서드를 사용하면 지정된 해상도(resolution)로 올림 처리된 새로운 Timedelta 객체를 얻을 수 있습니다. 이때 해상도는 freq 매개변수를 통해 설정합니다.

먼저 필요한 라이브러리를 임포트합니다.

import pandas as pd

Timedelta는 파이썬 표준 datetime 라이브러리의 timedelta와는 다른 방식으로 시간 간격을 표현합니다. 다음과 같이 Timedelta 객체를 생성해 보겠습니다.

timedelta = pd.Timedelta('6 days 1 min 30 s')

생성한 Timedelta를 화면에 출력합니다.

print("Timedelta...\n", timedelta)

이제 freq='D', 즉 일(day) 단위 빈도를 기준으로 올림 처리된 결과를 반환받습니다.

res = timedelta.ceil(freq='D')

전체 예제 코드

다음은 위 과정을 정리한 전체 코드입니다.

import pandas as pd

# TimeDeltas는 파이썬 표준 datetime 라이브러리의 timedelta와 다른 방식으로 표현됩니다.
# Timedelta 객체 생성
timedelta = pd.Timedelta('6 days 1 min 30 s')

# Timedelta 출력
print("Timedelta...\n", timedelta)

# 일(day) 단위 빈도로 올림 처리된 결과 반환
res = timedelta.ceil(freq='D')

# 올림 처리된 결과 출력
print("\nTimedelta (ceiled)...\n", res)

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

Timedelta...
6 days 00:01:30

Timedelta (ceiled)...
7 days 00:00:00

'6일 0시간 1분 30초'였던 Timedelta가 일 단위로 올림되어 '7일 00:00:00'으로 변환된 것을 확인할 수 있습니다. 즉, 지정된 해상도보다 잘게 남은 시간이 조금이라도 있으면 다음 단위로 올려 처리됩니다.

참고로, 반대로 내림 처리하고 싶다면 timedelta.floor() 메서드를 사용하면 됩니다. floor()는 같은 freq 매개변수를 사용하며, 남은 시간을 버리고 아래 단위로 맞춘 값을 반환합니다.