Pandas에서 지정된 CustomBusinessDay 객체에 적용된 키워드 인수를 확인하려면 CustomBusinessDay.kwds 속성을 사용하면 됩니다. 이 속성은 오프셋 객체가 생성될 때 전달된 키워드 인수들을 딕셔너리 형태로 반환해 줍니다.
CustomBusinessDay란?
CustomBusinessDay는 DateOffset의 하위 클래스로, 공휴일을 제외한 사용자 정의 영업일을 나타냅니다. weekmask 매개변수를 통해 유효한 영업 요일을 직접 지정할 수 있어서, 기본 영업일 규칙과 다른 캘린더가 필요한 경우에 특히 유용합니다.
1단계: 필요한 라이브러리 임포트
import pandas as pd
2단계: 타임스탬프 객체 생성
Pandas에서 타임스탬프 객체를 설정합니다.
timestamp = pd.Timestamp('2021-12-31 08:35:10')
3단계: CustomBusinessDay 오프셋 생성
여기서는 n=2(2영업일), weekmask='Mon Tue Wed Fri'(월·화·수·금만 영업일)로 오프셋을 생성합니다.
cbdOffset = pd.tseries.offsets.CustomBusinessDay(n = 2, weekmask = 'Mon Tue Wed Fri')
4단계: 타임스탬프에 오프셋 적용
타임스탬프에 오프셋을 더하고 업데이트된 결과를 출력합니다.
print("\nUpdated Timestamp...\n", timestamp + cbdOffset)
5단계: 키워드 인수 표시
kwds 속성을 사용해 키워드 인수를 출력합니다.
print("\nKeyword arguments on the given CustomBusinessDay Offset...\n", cbdOffset.kwds)
전체 예제 코드
import pandas as pd
# Pandas에서 타임스탬프 객체 설정
timestamp = pd.Timestamp('2021-12-31 08:35:10')
# 타임스탬프 출력
print("Timestamp...\n", timestamp)
# CustomBusinessDay 오프셋 생성
# CustomBusinessDay는 공휴일을 제외한 사용자 정의 영업일을 나타내는 DateOffset 하위 클래스입니다.
# weekmask는 유효한 영업일(요일)을 지정합니다.
cbdOffset = pd.tseries.offsets.CustomBusinessDay(n = 2, weekmask = 'Mon Tue Wed Fri')
# CustomBusinessDay 오프셋 출력
print("\nCustomBusinessDay Offset...\n", cbdOffset)
# 타임스탬프에 오프셋을 더하고 업데이트된 타임스탬프 출력
print("\nUpdated Timestamp...\n", timestamp + cbdOffset)
# 해당 CustomBusinessDay 오프셋 객체에 적용된 빈도를 문자열로 반환
print("\nFrequency applied on the given CustomBusinessDay Offset object...\n", cbdOffset.freqstr)
# 키워드 인수 표시
print("\nKeyword arguments on the given CustomBusinessDay Offset...\n", cbdOffset.kwds)
실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Timestamp...
2021-12-31 08:35:10
CustomBusinessDay Offset...
<2 * CustomBusinessDays>
Updated Timestamp...
2022-01-04 08:35:10
Frequency applied on the given CustomBusinessDay Offset object...
2C
Keyword arguments on the given CustomBusinessDay Offset...
{'weekmask': 'Mon Tue Wed Fri', 'holidays': (), 'calendar': <numpy.busdaycalendar object at 0x00000134D22E5FC0>, 'offset': datetime.timedelta(0)}
결과 해석
출력 결과를 살펴보면, 2021년 12월 31일(금요일)에 2개의 사용자 정의 영업일을 더했을 때 2022년 1월 4일이 되었습니다. weekmask가 'Mon Tue Wed Fri'로 설정되어 목요일은 영업일에서 제외되기 때문에, 금요일 다음 영업일은 월요일이고 그다음 영업일은 화요일이 되는 것입니다.
마지막 kwds 출력에는 weekmask, holidays, calendar, offset 등 오프셋 생성 시 적용된 모든 키워드 인수가 딕셔너리 형태로 담겨 있는 것을 확인할 수 있습니다. 이처럼 kwds 속성을 활용하면 오프셋 객체의 설정값을 한눈에 파악할 수 있습니다.