Pandas에서 CustomBusinessHour 오프셋에 적용된 증분(increment)의 개수를 확인하려면 CustomBusinessHour.n 속성을 사용하면 됩니다. 이 속성은 오프셋을 생성할 때 n 매개변수에 지정한 값을 그대로 반환합니다.
CustomBusinessHour란?
CustomBusinessHour는 Pandas의 DateOffset 서브클래스로, 기본 영업시간(09:00~17:00)을 커스터마이징할 수 있는 시간 오프셋입니다. weekmask 매개변수를 통해 유효한 영업일을 요일 단위로 지정할 수 있어, 휴무일이나 특수 근무 일정이 있는 경우에 유용하게 활용됩니다.
단계별 구현 방법
먼저 필요한 라이브러리를 임포트합니다.
import pandas as pd
Pandas에서 타임스탬프 객체를 설정합니다.
timestamp = pd.Timestamp('2021-11-14 05:20:30')CustomBusinessHour 오프셋을 생성합니다. 여기서는 증분 수(n)를 7로, 영업일은 월·화·수·금으로 지정했습니다.
cbhOffset = pd.tseries.offsets.CustomBusinessHour(n = 7, weekmask = 'Mon Tue Wed Fri')
타임스탬프에 오프셋을 더하고 업데이트된 결과를 출력합니다.
print("\nUpdated Timestamp...\n", timestamp + cbhOffset)마지막으로 해당 CustomBusinessHour 객체의 증분 개수를 반환합니다.
print("\nThe count of increments on the CustomBusinessHour object..\n", cbhOffset.n)전체 예제 코드
다음은 위 과정을 모두 포함한 전체 코드입니다.
import pandas as pd
# Pandas 타임스탬프 객체 설정
timestamp = pd.Timestamp('2021-11-14 05:20:30')
# 타임스탬프 출력
print("Timestamp...\n", timestamp)
# CustomBusinessHour 오프셋 생성
# CustomBusinessHour는 DateOffset 서브클래스
# weekmask로 유효한 영업일(월, 화, 수, 금) 지정
cbhOffset = pd.tseries.offsets.CustomBusinessHour(n = 7, weekmask = 'Mon Tue Wed Fri')
# CustomBusinessHour 오프셋 출력
print("\nCustomBusinessHour Offset...\n", cbhOffset)
# 타임스탬프에 오프셋을 더해 업데이트된 타임스탬프 출력
print("\nUpdated Timestamp...\n", timestamp + cbhOffset)
# 주어진 CustomBusinessHour 오프셋 객체에 적용된 빈도를 문자열로 반환
print("\nFrequency applied on the given CustomBusinessHour Offset object...\n", cbhOffset.freqstr)
# 주어진 CustomBusinessHour 객체의 증분 개수 반환
print("\nThe count of increments on the CustomBusinessHour object..\n", cbhOffset.n)실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Timestamp... 2021-11-14 05:20:30 CustomBusinessHour Offset... <7 * CustomBusinessHours: CBH=09:00-17:00> Updated Timestamp... 2021-11-15 16:00:00 Frequency applied on the given CustomBusinessHour Offset object... 7CBH The count of increments on the CustomBusinessHour object.. 7
결과 해석
출력 결과를 살펴보면 다음과 같은 점을 확인할 수 있습니다.
- 오프셋 표기가 <7 * CustomBusinessHours: CBH=09:00-17:00>로 나타나며, n=7이 적용되었음을 보여줍니다.
- 원래 타임스탬프인 2021년 11월 14일은 일요일이므로 weekmask에 포함되지 않아, 다음 영업일인 월요일 기준으로 계산되어 2021-11-15 16:00:00이 되었습니다.
- freqstr 속성은 적용된 빈도를 문자열 형태(7CBH)로 반환합니다.
- cbhOffset.n은 설정된 증분 수인 7을 정확히 반환합니다.