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

Python Pandas – 지정된 해상도로 Timedelta 반올림하는 방법

Timedelta를 지정된 해상도로 반올림하기

Pandas에서 Timedelta 객체를 특정 해상도(빈도)에 맞춰 반올림하려면 Timedelta.round() 메서드를 사용합니다. 이때 freq 매개변수를 통해 원하는 해상도(초, 분, 시간, 일 등)를 지정할 수 있습니다.

1단계: 필요한 라이브러리 임포트

먼저 pandas 라이브러리를 불러옵니다.

import pandas as pd

2단계: Timedelta 객체 생성

다음과 같이 Timedelta 객체를 생성합니다.

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

이 코드는 2일 10시간 45분 20초 35밀리초 55나노초에 해당하는 시간 간격을 나타내는 객체를 만듭니다.

3단계: Timedelta 값 확인

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

4단계: 초 단위로 반올림

freq 매개변수에 's'를 지정하여 초 단위 해상도로 반올림합니다.

timedelta.round(freq='s')

freq 매개변수에는 's'(초) 외에도 'ms'(밀리초), 'min'(분), 'h'(시간), 'D'(일) 등 다양한 빈도 문자열을 사용할 수 있으므로, 상황에 맞게 해상도를 조절하면 됩니다.

전체 예제 코드

아래는 위 과정을 하나로 정리한 전체 코드입니다.

import pandas as pd

# Timedelta 객체 생성
# Python의 표준 datetime 라이브러리인 timedelta와 유사한 방식으로 동작합니다.
timedelta = pd.Timedelta('2 days 10 hours 45 min 20 s 35 ms 55 ns')

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

# freq='s'로 초 단위 해상도를 지정하여 반올림
res = timedelta.round(freq='s')

# 반올림된 결과 출력
print("\nTimedelta (seconds rounded)...\n", res)

실행 결과

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

Timedelta...
2 days 10:45:20.035000055

Timedelta (seconds rounded)...
2 days 10:45:20

결과를 보면 원래 값의 밀리초(035000055ns) 부분이 잘리고, 초 단위까지만 남은 것을 확인할 수 있습니다. 이처럼 round() 메서드와 freq 매개변수를 활용하면 원하는 정밀도로 손쉽게 시간 간격을 반올림할 수 있습니다.