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

Python Pandas – 초 단위 빈도로 Timedelta 반올림하는 방법

Pandas에서 Timedelta 객체를 지정한 해상도로 반올림하려면 round() 메서드를 사용합니다. 이때 freq 매개변수에 's'(초) 값을 설정하면 초 단위 해상도로 반올림할 수 있습니다.

필요한 라이브러리 가져오기

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

import pandas as pd

Timedelta 객체 생성하기

Timedelta는 Python의 표준 datetime 라이브러리에서 사용하는 timedelta와 유사하지만, Pandas는 더 다양한 해상도를 지원합니다. 아래와 같이 Timedelta 객체를 생성해 보겠습니다.

timedelta = pd.Timedelta('1 days 11 hours 22 min 25 s 50 ms 45 ns')

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

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

초 단위로 반올림하기

freq 매개변수에 's'를 지정하면 밀리초(ms)와 나노초(ns) 값이 잘리고 초 단위까지의 값만 남게 됩니다.

res = timedelta.round(freq='s')

전체 예제 코드

지금까지의 내용을 하나의 코드로 정리하면 다음과 같습니다.

import pandas as pd

# Timedelta 객체 생성
timedelta = pd.Timedelta('1 days 11 hours 22 min 25 s 50 ms 45 ns')

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

# freq 매개변수로 초(s) 단위 해상도 지정 후 반올림
res = timedelta.round(freq='s')

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

실행 결과

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

Timedelta...
1 days 11:22:25.050000045

Timedelta (seconds rounded)...
1 days 11:22:25

정리

이처럼 Pandas의 round() 메서드와 freq 매개변수를 활용하면 Timedelta 값을 원하는 시간 단위(초, 분, 시간 등)로 손쉽게 반올림할 수 있습니다. 's' 외에도 'ms'(밀리초), 'min'(분), 'h'(시간) 등 다양한 주파수 문자열을 사용할 수 있으므로, 데이터 전처리 과정에서 시간 데이터를 일관된 단위로 맞출 때 매우 유용합니다.