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

Pandas Timedelta를 일(Day) 단위로 반올림하는 방법

Pandas에서 Timedelta 객체를 특정 해상도로 반올림하려면 round() 메서드를 사용합니다. 일(Day) 단위 빈도로 반올림하려면 freq 매개변수에 'D' 값을 지정하면 됩니다.

Timedelta란?

Timedelta는 파이썬 표준 datetime 라이브러리의 timedelta를 Pandas 방식으로 표현한 것으로, 두 날짜·시간 사이의 차이(기간)를 나타냅니다.

구현 단계

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

import pandas as pd

2단계: Timedelta 객체 생성

문자열 형식으로 일, 시간, 분, 초, 밀리초, 나노초를 지정하여 Timedelta 객체를 만듭니다.

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

3단계: Timedelta 출력

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

4단계: 일 단위 빈도로 반올림

round() 메서드에 freq='D'를 전달하여 일 단위 해상도로 반올림된 결과를 반환받습니다.

timedelta.round(freq='D')

전체 예제 코드

import pandas as pd

# Timedelta는 파이썬 표준 datetime 라이브러리의 timedelta를 다른 방식으로 표현한 것입니다.
# Timedelta 객체 생성
timedelta = pd.Timedelta('2 days 11 hours 22 min 25 s 50 ms 45 ns')

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

# 일 단위 빈도로 반올림된 결과 반환
# freq 매개변수로 해상도를 지정합니다.
res = timedelta.round(freq='D')

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

실행 결과

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

Timedelta...
2 days 11:22:25.050000045

Timedelta (daily rounded)...
2 days 00:00:00

결과 분석

원본 Timedelta 값은 '2일 11시간 22분 25.05초'였지만, 일 단위('D')로 반올림한 결과 시간 이하의 값이 모두 잘리고 '2 days 00:00:00'이 되었습니다. 이는 11시간이 하루의 절반 미만이므로 가장 가까운 일 단위인 2일로 내림 처리되었기 때문입니다. 만약 12시간을 넘는다면 3일로 올림됩니다.