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

Python Pandas – BusinessHour 오프셋 생성 방법 완벽 가이드

Pandas에서 BusinessHour 오프셋을 생성하려면 pd.tseries.offsets.BusinessHour() 메서드를 사용합니다. BusinessHour는 기본적으로 월요일부터 금요일까지 오전 9시부터 오후 5시까지를 영업 시간으로 간주하며, start와 end 매개변수를 통해 이를 자유롭게 조정할 수 있습니다.

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

import pandas as pd

BusinessHour 오프셋 생성하기

BusinessHour는 DateOffset의 하위 클래스로, 영업 시간 기준의 날짜 연산에 활용됩니다. 여기서 start는 사용자 지정 영업 시작 시간(24시간 형식), end는 사용자 지정 영업 종료 시간(24시간 형식)을 의미합니다.

bhOffset = pd.tseries.offsets.BusinessHour(start="09:30", end="18:00")

Pandas에서 타임스탬프(Timestamp) 객체를 설정합니다.

timestamp = pd.Timestamp('2021-1-1 01:55:30')

타임스탬프에 오프셋을 더하고 업데이트된 타임스탬프를 출력합니다.

print("\nUpdated Timestamp...\n", timestamp + bhOffset)

전체 예제 코드

지금까지 설명한 내용을 하나로 정리한 전체 코드는 다음과 같습니다.

import pandas as pd

# Pandas에서 타임스탬프 객체 설정
timestamp = pd.Timestamp('2021-1-1 01:55:30')

# 타임스탬프 출력
print("Timestamp...\n", timestamp)

# BusinessHour 오프셋 생성
# BusinessHour는 DateOffset의 하위 클래스
# "start"는 사용자 지정 영업 시작 시간(24시간 형식)
# "end"는 사용자 지정 영업 종료 시간(24시간 형식)
bhOffset = pd.tseries.offsets.BusinessHour(start="09:30", end="18:00")

# BusinessHour 오프셋 출력
print("\nBusinessHour Offset...\n", bhOffset)

# 타임스탬프에 오프셋을 더해 업데이트된 타임스탬프 출력
print("\nUpdated Timestamp...\n", timestamp + bhOffset)

실행 결과

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

Timestamp...
 2021-01-01 01:55:30

BusinessHour Offset...
 <BusinessHour: BH=09:30-18:00>

Updated Timestamp...
 2021-01-01 10:30:00

결과 해설

입력한 타임스탬프는 새벽 1시 55분 30초로, 설정된 영업 시간(09:30~18:00) 이전입니다. BusinessHour 오프셋을 더하면 가장 가까운 영업 시작 시간인 오전 9시 30분부터 계산이 시작되어, 09:30에서 1시간이 지난 오전 10시 30분이 최종 결과로 반환됩니다.

이처럼 BusinessHour 오프셋은 주말과 야간 시간대를 건너뛰어 영업 시간 기준으로만 날짜·시간을 연산해야 하는 금융 데이터 분석, 거래 시점 계산 등에서 특히 유용하게 활용됩니다.