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

Python Pandas – 초 단위 올림 해상도의 새로운 Timedelta 반환 방법

Pandas에서 특정 해상도 기준으로 올림(ceil) 처리된 새로운 Timedelta 객체를 반환하려면 timedelta.ceil() 메서드를 사용합니다. 초 단위 올림 해상도를 적용하려면 freq 매개변수에 'S' 값을 설정하면 됩니다. 이 메서드는 지정된 주파수보다 작은 단위를 잘라내고 가장 가까운 위쪽 값으로 반올림(올림)해 줍니다.

1. 필요한 라이브러리 임포트

먼저 필요한 라이브러리를 가져옵니다.

import pandas as pd

2. Timedelta 객체 생성

Timedelta는 Python 표준 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. 초 단위 올림 해상도 적용

ceil(freq='S')를 호출하면 밀리초(ms)와 나노초(ns) 등 초 미만의 값이 잘리고, 초 단위로 올림된 새로운 Timedelta가 반환됩니다.

timedelta.ceil(freq='S')

예제 코드

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

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)

# 초 단위 올림 해상도가 적용된
# 올림된 Timedelta 반환
res = timedelta.ceil(freq='S')

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

실행 결과

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

Timedelta...
2 days 10:45:20.035000055

Timedelta (seconds ceiled)...
2 days 10:45:21

결과를 보면 원래 값의 20초에 35밀리초와 55나노초가 더해져 있었지만, 초 단위 올림 해상도가 적용되어 2 days 10:45:21로 변환된 것을 확인할 수 있습니다. 즉, 초 미만의 시간 단위가 존재하면 다음 초로 올림 처리됩니다.