Pandas에서 지정된 CustomBusinessHour 객체에 적용된 키워드 인수를 확인하려면 CustomBusinessHour.kwds 속성을 사용하면 됩니다. 이 속성은 객체 생성 시 전달된 n, weekmask, holidays, start, end 등의 인수를 딕셔너리 형태로 반환합니다.
1단계: 필요한 라이브러리 가져오기
먼저 Pandas 라이브러리를 임포트합니다.
import pandas as pd
2단계: Timestamp 객체 설정
기준이 될 타임스탬프 객체를 생성합니다.
timestamp = pd.Timestamp('2021-10-25 08:35:10')
3단계: CustomBusinessHour 오프셋 생성
CustomBusinessHour는 DateOffset의 하위 클래스로, 사용자가 정의한 영업일 기준으로 시간 간격을 계산할 수 있습니다. 여기서는 n=3(3시간 이동)과 영업일 마스크(weekmask='Mon Tue Wed Fri Sat')를 지정합니다.
cbhOffset = pd.tseries.offsets.CustomBusinessHour(n=3, weekmask='Mon Tue Wed Fri Sat')
4단계: 오프셋 적용 및 결과 확인
Timestamp에 오프셋을 더해 업데이트된 시각을 출력하고, kwds 속성으로 키워드 인수를 확인합니다.
print("\nUpdated Timestamp...\n", timestamp + cbhOffset)
print("\nKeyword arguments on the given CustomBusinessHour Offset...\n", cbhOffset.kwds)
전체 예제 코드
import pandas as pd
# Pandas에서 Timestamp 객체 설정
timestamp = pd.Timestamp('2021-10-25 08:35:10')
# Timestamp 출력
print("Timestamp...\n", timestamp)
# CustomBusinessHour 오프셋 생성
# CustomBusinessHour는 DateOffset의 하위 클래스
# weekmask는 유효한 영업일을 정의
cbhOffset = pd.tseries.offsets.CustomBusinessHour(n=3, weekmask='Mon Tue Wed Fri Sat')
# CustomBusinessHour 오프셋 출력
print("\nCustomBusinessHour Offset...\n", cbhOffset)
# Timestamp에 오프셋을 더해 업데이트된 시각 출력
print("\nUpdated Timestamp...\n", timestamp + cbhOffset)
# 해당 오프셋 객체에 적용된 빈도(freq)를 문자열로 반환
print("\nFrequency applied on the given CustomBusinessHour Offset object...\n", cbhOffset.freqstr)
# 키워드 인수 출력
print("\nKeyword arguments on the given CustomBusinessHour Offset...\n", cbhOffset.kwds)
실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Timestamp...
2021-10-25 08:35:10
CustomBusinessHour Offset...
<3 * CustomBusinessHours: CBH=09:00-17:00>
Updated Timestamp...
2021-10-25 12:00:00
Frequency applied on the given CustomBusinessHour Offset object...
3CBH
Keyword arguments on the given CustomBusinessHour Offset...
{'weekmask': 'Mon Tue Wed Fri Sat', 'holidays': (), 'calendar': <numpy.busdaycalendar object at 0x7f48facfa840>, 'start': (datetime.time(9, 0),), 'end': (datetime.time(17, 0),), 'offset': datetime.timedelta(0)}
결과 해석
- Updated Timestamp: 기준 시각(08:35:10)은 영업 시작 시간(09:00)보다 이르므로, 오프셋 적용 시 영업일 시작점인 09:00부터 3시간이 더해져
12:00:00가 됩니다. - kwds 속성: 생성자에 명시적으로 지정하지 않은 항목까지 포함하여
weekmask,holidays,calendar,start(09:00),end(17:00),offset등 객체에 적용된 모든 키워드 인수가 딕셔너리로 반환됩니다.
이처럼 kwds 속성을 활용하면 복잡한 날짜 오프셋 객체의 내부 설정을 손쉽게 검증하고 디버깅할 수 있습니다.