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

Python Pandas – CustomBusinessDay 오프셋 객체에 적용된 빈도를 문자열로 반환하는 방법

지정된 CustomBusinessDay 오프셋 객체에 적용된 빈도를 문자열 형태로 확인하고 싶다면, Pandas에서 제공하는 CustomBusinessDay.freqstr 속성을 사용하면 됩니다.

freqstr 속성은 해당 오프셋의 빈도 정보를 간결한 문자열(예: '2C')로 반환해 주기 때문에, 코드 디버깅이나 로그 출력 시 유용하게 활용할 수 있습니다.

1. 라이브러리 임포트

먼저 필요한 라이브러리를 임포트합니다.

import pandas as pd

2. 타임스탬프 설정

Pandas에서 타임스탬프(Timestamp) 객체를 생성합니다.

timestamp = pd.Timestamp('2021-12-31 08:35:10')

3. CustomBusinessDay 오프셋 생성

이제 CustomBusinessDay 오프셋을 만듭니다. n=2는 2개의 사용자 정의 영업일을 의미하며, weekmask 매개변수를 통해 유효한 영업일을 월·화·수·금으로 지정했습니다(목요일 제외).

cbdOffset = pd.tseries.offsets.CustomBusinessDay(n = 2, weekmask = 'Mon Tue Wed Fri')

참고로 CustomBusinessDay는 휴일(holidays)을 제외한 사용자 정의 영업일을 나타내는 DateOffset의 하위 클래스입니다.

4. 오프셋 적용 및 결과 확인

타임스탬프에 오프셋을 더해 업데이트된 날짜를 확인합니다.

print("\nUpdated Timestamp...\n", timestamp + cbdOffset)

마지막으로, 지정된 CustomBusinessDay 오프셋 객체에 적용된 빈도를 문자열로 반환합니다.

print("\nFrequency applied on the given CustomBusinessDay Offset object...\n", cbdOffset.freqstr)

전체 예제 코드

아래는 위 과정을 하나로 묶은 전체 코드입니다.

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)

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

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

결과 해석

기준 날짜인 2021년 12월 31일(금요일)에 2개의 사용자 정의 영업일을 더하면, 목요일이 영업일에서 제외되므로 다음 영업일인 월요일(2022년 1월 3일)을 건너뛰어 화요일인 2022년 1월 4일이 최종 결과가 됩니다. 또한 freqstr 속성은 이 오프셋의 빈도를 '2C'라는 문자열로 반환하는 것을 확인할 수 있습니다.