Pandas에서 CustomBusinessHour 객체를 생성하려면 pandas.tseries.offsets.CustomBusinessHour() 메서드를 사용합니다. CustomBusinessHour는 DateOffset의 하위 클래스로, 실제 영업일과 영업 시간을 기준으로 시간 단위 연산을 수행할 수 있게 해주는 강력한 도구입니다.
CustomBusinessHour란?
CustomBusinessHour는 기본 영업시간(09:00~17:00)을 따르면서, weekmask 매개변수를 통해 유효한 영업일(요일)을 직접 지정할 수 있는 오프셋입니다. 예를 들어 주말이나 특정 요일을 제외한 근무 일정을 반영한 날짜 계산이 필요할 때 유용합니다.
단계별 구현 방법
1. 필요한 라이브러리 임포트
먼저 필요한 라이브러리를 임포트합니다.
import pandas as pd
2. 타임스탬프 객체 설정
Pandas에서 타임스탬프 객체를 설정합니다.
timestamp = pd.Timestamp('2021-12-31 08:35:10')3. CustomBusinessHour 오프셋 생성
CustomBusinessHour 오프셋을 생성합니다. 여기서 n=5는 5시간을 의미하고, weekmask='Mon Tue Wed Fri'는 월·화·수·금을 유효한 영업일로 지정한다는 뜻입니다(목요일은 제외).
cbhOffset = pd.tseries.offsets.CustomBusinessHour(n = 5, weekmask = 'Mon Tue Wed Fri')
4. 오프셋 출력 및 적용
생성된 CustomBusinessHour 오프셋을 출력합니다.
print("\nCustomBusinessHour Offset...\n", cbhOffset)타임스탬프에 오프셋을 더한 후, 업데이트된 타임스탬프를 출력합니다.
print("\nUpdated Timestamp...\n", timestamp + cbhOffset)전체 예제 코드
다음은 위 과정을 모두 포함한 전체 코드입니다.
import pandas as pd
# Pandas에서 타임스탬프 객체 설정
timestamp = pd.Timestamp('2021-12-31 08:35:10')
# 타임스탬프 출력
print("Timestamp...\n", timestamp)
# CustomBusinessHour 오프셋 생성
# CustomBusinessHour는 DateOffset의 하위 클래스
# 유효한 영업일의 weekmask 지정
cbhOffset = pd.tseries.offsets.CustomBusinessHour(n = 5, weekmask = 'Mon Tue Wed Fri')
# CustomBusinessHour 오프셋 출력
print("\nCustomBusinessHour Offset...\n", cbhOffset)
# 타임스탬프에 오프셋을 더하고 업데이트된 타임스탬프 출력
print("\nUpdated Timestamp...\n", timestamp + cbhOffset)실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Timestamp... 2021-12-31 08:35:10 CustomBusinessHour Offset... <5 * CustomBusinessHours: CBH=09:00-17:00> Updated Timestamp... 2021-12-31 14:00:00
결과 해석
입력된 타임스탬프인 2021년 12월 31일(금요일) 오전 8시 35분은 영업 시작 시간인 오전 9시 이전입니다. 따라서 CustomBusinessHour 오프셋을 적용하면 영업 시작 시간인 오전 9시부터 계산이 시작되어, 5영업시간이 더해진 오후 2시(14:00)가 최종 결과로 반환됩니다. 이처럼 CustomBusinessHour는 영업시간 외의 시간을 자동으로 건너뛰고 정확한 영업 기준 시간 계산을 수행해 줍니다.