Pandas CustomBusinessHour의 rule_code 속성이란?
Pandas의 CustomBusinessHour는 DateOffset의 하위 클래스로, 사용자가 직접 정의한 영업 시간과 영업일을 기준으로 날짜·시간을 계산할 때 사용하는 오프셋입니다. 지정된 CustomBusinessHour 객체에 적용된 빈도(frequency)의 규칙 코드(rule_code)를 반환하려면 CustomBusinessHour.rule_code 속성을 사용하면 됩니다. 이 속성은 해당 빈도를 나타내는 축약 문자열을 반환하며, CustomBusinessHour 객체의 경우 CBH가 출력됩니다.
1단계. 필요한 라이브러리 임포트
먼저 필요한 라이브러리를 가져옵니다.
import pandas as pd
2단계. 타임스탬프(Timestamp) 객체 설정
Pandas에서 타임스탬프 객체를 생성합니다.
timestamp = pd.Timestamp('2021-11-14 05:20:30')
3단계. CustomBusinessHour 오프셋 생성
이번 예제에서는 4시간 단위(n=4)로 설정하고, 유효 영업일을 월·화·수·금·토로 지정하는 weekmask, 그리고 결과를 자정 기준으로 정규화하는 normalize=True 옵션을 함께 사용했습니다.
cbhOffset = pd.tseries.offsets.CustomBusinessHour(n=4, weekmask='Mon Tue Wed Fri Sat', normalize=True)
4단계. 타임스탬프에 오프셋 더하기
생성한 오프셋을 타임스탬프에 더하고, 업데이트된 타임스탬프를 출력합니다.
print("\nUpdated Timestamp...\n", timestamp + cbhOffset)
5단계. 규칙 코드(rule_code) 반환하기
지정된 CustomBusinessHour 오프셋에 적용된 빈도의 규칙 코드를 출력합니다.
print("\nCustomBusinessHour 객체의 규칙 코드..\n", cbhOffset.rule_code)
전체 예제 코드
import pandas as pd
# Pandas에서 타임스탬프 객체 설정
timestamp = pd.Timestamp('2021-11-14 05:20:30')
# 타임스탬프 출력
print("Timestamp...\n", timestamp)
# CustomBusinessHour 오프셋 생성
# CustomBusinessHour는 DateOffset의 하위 클래스입니다.
# weekmask: 유효한 영업일 지정 (월, 화, 수, 금, 토)
# "normalize" 매개변수를 사용해 CustomBusinessDay를 정규화했습니다.
cbhOffset = pd.tseries.offsets.CustomBusinessHour(n=4, weekmask='Mon Tue Wed Fri Sat', normalize=True)
# 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("\nCustomBusinessHour 객체의 규칙 코드..\n", cbhOffset.rule_code)
실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Timestamp...
2021-11-14 05:20:30
CustomBusinessHour Offset...
<4 * CustomBusinessHours: CBH=09:00-17:00>
Updated Timestamp...
2021-11-15 00:00:00
Frequency applied on the given CustomBusinessHour Offset object...
4CBH
CustomBusinessHour 객체의 규칙 코드..
CBH
결과 해석
- freqstr → 4CBH: 이 오프셋이 4시간 단위의 커스텀 영업시간 빈도를 나타냄을 의미합니다.
- rule_code → CBH: CustomBusinessHour 빈도의 고유 규칙 코드입니다.
- 원본 타임스탬프(2021-11-14, 일요일)에 오프셋을 적용하자 다음 영업일인 월요일(2021-11-15)로 이동했으며,
normalize=True옵션에 따라 시간이 자정으로 정규화되었습니다.
참고: rule_code와 freqstr의 차이
freqstr은 배수 정보까지 포함한 전체 빈도 문자열(예: 4CBH)을 반환하는 반면, rule_code는 배수 정보를 제외한 순수한 규칙 코드(CBH)만 반환한다는 점이 다릅니다. 빈도 문자열을 파싱하거나 오프셋 종류를 비교할 때 유용하게 활용할 수 있습니다.