Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python Pandas – CustomBusinessDay 객체에 적용된 키워드 인수(kwds) 확인하는 방법

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 속성을 활용하면 오프셋 객체의 설정값을 한눈에 파악할 수 있습니다.