Python Pandas에서 CustomBusinessDay 오프셋에 적용된 증분 수를 확인하려면 CustomBusinessDay.n 속성을 사용하면 됩니다. 이 속성은 해당 오프셋 객체가 몇 번의 이동(증분)을 적용하도록 설정되어 있는지를 정수 값으로 반환해 줍니다.
핵심 개념 정리
CustomBusinessDay는 DateOffset의 하위 클래스로, 공휴일을 제외한 사용자 지정 영업일을 나타냅니다. weekmask 매개변수를 활용하면 유효한 영업일 요일을 자유롭게 지정할 수 있으며, n 매개변수로 오프셋에 적용할 증분 횟수를 설정합니다.
단계별 구현 방법
1단계: 필요한 라이브러리 임포트
import pandas as pd
2단계: 타임스탬프 객체 설정
timestamp = pd.Timestamp('2021-10-22 03:10:35')3단계: CustomBusinessDay 오프셋 생성
cbdOffset = pd.tseries.offsets.CustomBusinessDay(n = 4, weekmask = 'Mon Tue Wed Fri')
여기서 n=4는 4번의 증분을 적용한다는 의미이며, weekmask='Mon Tue Wed Fri'는 월·화·수·금요일만 영업일로 지정한다는 뜻입니다.
4단계: 타임스탬프에 오프셋 추가 후 업데이트된 시각 출력
print("\nUpdated Timestamp...\n", timestamp + cbdOffset)5단계: CustomBusinessDay 객체의 증분 수 반환
print("\nThe count of increments on the CustomBusinessDay object..\n", cbdOffset.n)전체 예제 코드
아래는 위 과정을 하나로 합친 전체 코드입니다.
import pandas as pd
# Pandas에서 타임스탬프 객체 설정
timestamp = pd.Timestamp('2021-10-22 03:10:35')
# 타임스탬프 출력
print("Timestamp...\n", timestamp)
# CustomBusinessDay 오프셋 생성
# CustomBusinessDay는 공휴일을 제외한 사용자 지정 영업일을 나타내는 DateOffset 하위 클래스입니다.
# weekmask로 유효한 영업일 요일을 지정합니다.
cbdOffset = pd.tseries.offsets.CustomBusinessDay(n = 4, 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)
# 주어진 CustomBusinessDay 객체에 적용된 증분 수 반환
print("\nThe count of increments on the CustomBusinessDay object..\n", cbdOffset.n)실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Timestamp... 2021-10-22 03:10:35 CustomBusinessDay Offset... <4 * CustomBusinessDays> Updated Timestamp... 2021-10-29 03:10:35 Frequency applied on the given CustomBusinessDay Offset object... 4C The count of increments on the CustomBusinessDay object.. 4
결과 해석
cbdOffset.n은 4를 반환했습니다. 이는 CustomBusinessDay 오프셋을 생성할 때 n=4로 지정했기 때문입니다. 또한 업데이트된 타임스탬프가 2021-10-22(금)에서 2021-10-29(금)로 이동한 것을 볼 수 있는데, weekmask에서 목요일(Thu)을 제외했기 때문에 금요일 기준으로 4번째 영업일 이동이 적용된 결과입니다. freqstr 속성이 '4C'를 반환하는 점에서도 4개의 사용자 지정 영업일 단위가 적용되었음을 확인할 수 있습니다.