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

Python Pandas - 밀리초(ms) 상한 해상도로 올림된 새 Timedelta 객체 반환하기

Pandas에서 기존 Timedelta 값을 지정한 해상도 기준으로 올림(ceil) 처리한 새로운 Timedelta 객체를 반환하려면 timedelta.ceil() 메서드를 사용합니다. 밀리초(ms) 단위로 올림하려면 freq 매개변수에 'ms' 값을 지정하면 됩니다.

1. 라이브러리 가져오기

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

import pandas as pd

2. Timedelta 객체 생성

Timedelta는 Python 표준 datetime 라이브러리의 timedelta를 다른 방식으로 표현하는 Pandas의 자료형입니다. 문자열을 사용해 Timedelta 객체를 생성해 보겠습니다.

timedelta = pd.Timedelta('2 days 10 hours 45 min 20 s 35 ms 55 ns')

3. Timedelta 값 확인

생성된 Timedelta 객체를 출력하여 확인합니다.

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

4. 밀리초 해상도로 올림 처리

ceil() 메서드에 freq='ms'를 전달하면 밀리초 단위로 올림된 새 Timestamp(Timedelta)가 반환됩니다.

timedelta.ceil(freq='ms')

전체 예제 코드

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

import pandas as pd

# TimeDeltas는 Python 표준 datetime 라이브러리의 timedelta를
# 다른 방식으로 표현하는 자료형입니다.
# Timedelta 객체 생성
timedelta = pd.Timedelta('2 days 10 hours 45 min 20 s 35 ms 55 ns')

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

# 밀리초(ms) 상한 해상도로 올림된 결과 반환
res = timedelta.ceil(freq='ms')

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

실행 결과

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

Timedelta...
2 days 10:45:20.035000055

Timedelta (milliseconds ceiled)...
2 days 10:45:20.036000

정리

원본 값 2 days 10:45:20.035000055에는 나노초 단위의 잔여 시간(55ns)이 포함되어 있습니다. ceil(freq='ms')를 적용하면 밀리초 미만의 값이 존재할 경우 다음 밀리초 단위로 올림되어 2 days 10:45:20.036000이 반환됩니다. 이처럼 ceil() 메서드는 로그 정규화, 시간 구간 집계 등 나노초·마이크로초 같은 세밀한 단위를 제거하고 싶을 때 유용하게 활용할 수 있습니다.