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

Python Pandas – CustomBusinessDay 오프셋 객체에 적용된 빈도 이름 확인하기

Pandas에서 CustomBusinessDay.name 속성을 활용하면 지정된 CustomBusinessDay 오프셋 객체에 적용된 빈도(frequency)의 이름을 간단히 확인할 수 있습니다. 이 글에서는 예제 코드와 실행 결과를 바탕으로 그 사용법을 자세히 살펴보겠습니다.

CustomBusinessDay란 무엇인가?

CustomBusinessDay는 Pandas의 DateOffset 하위 클래스로, 공휴일을 제외한 사용자 지정 영업일(custom business days)을 나타냅니다. weekmask 매개변수를 통해 어떤 요일을 영업일로 간주할지 직접 정의할 수 있어, 주말이나 휴무일이 일반적이지 않은 특수한 업무 일정을 다룰 때 특히 유용합니다.

필요한 라이브러리 임포트

먼저 Pandas 라이브러리를 임포트합니다.

import pandas as pd

타임스탬프 객체 생성

다음으로 기준이 될 타임스탬프 객체를 생성합니다.

timestamp = pd.Timestamp('2021-12-31 08:35:10')
print("Timestamp...\n", timestamp)

CustomBusinessDay 오프셋 생성

이제 CustomBusinessDay 오프셋을 생성합니다. 아래 예제에서는 n=2로 두 영업일 단위의 이동을 지정했고, weekmask='Mon Tue Wed Fri'로 월·화·수·금을 영업일로 설정했습니다.

cbdOffset = pd.tseries.offsets.CustomBusinessDay(n=2, weekmask='Mon Tue Wed Fri')
print("\nCustomBusinessDay Offset...\n", cbdOffset)

타임스탬프에 오프셋 적용하기

생성한 오프셋을 타임스탬프에 더하면 업데이트된 날짜를 얻을 수 있습니다.

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

기준 날짜인 2021년 12월 31일은 금요일입니다. 영업일이 '월·화·수·금'으로 지정되어 있으므로, 첫 번째 유효 영업일은 다음 주 월요일(1월 3일), 두 번째 유효 영업일은 화요일(1월 4일)이 됩니다.

빈도 문자열과 빈도 이름 확인하기

freqstr 속성은 적용된 빈도를 문자열로 반환하고, name 속성은 해당 빈도의 이름을 반환합니다.

# 적용된 빈도를 문자열로 반환
print("\nFrequency applied on the given CustomBusinessDay Offset object...\n", cbdOffset.freqstr)

# 적용된 빈도의 이름을 반환
print("\nThe name of the frequency on the CustomBusinessDay object..\n", cbdOffset.name)

전체 예제 코드

import pandas as pd

# 타임스탬프 객체 생성
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)

# 적용된 빈도를 문자열로 반환
print("\nFrequency applied on the given CustomBusinessDay Offset object...\n", cbdOffset.freqstr)

# 적용된 빈도의 이름을 반환
print("\nThe name of the frequency on the CustomBusinessDay object..\n", cbdOffset.name)

실행 결과

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

The name of the frequency on the CustomBusinessDay object..
 C

결과 해석

  • CustomBusinessDay Offset: <2 * CustomBusinessDays>는 두 영업일 단위로 이동하는 오프셋임을 의미합니다.
  • Updated Timestamp: 2021-12-31(금)에 두 개의 사용자 지정 영업일을 더하면 2022-01-04(화)가 됩니다. 토요일과 일요일은 weekmask에서 제외되었기 때문입니다.
  • freqstr: 2C는 2일 단위의 커스텀 영업일 빈도를 나타내는 문자열입니다.
  • name: C는 CustomBusinessDay 빈도의 고유 이름입니다.

마무리

이처럼 CustomBusinessDay.name 속성을 사용하면 오프셋 객체에 적용된 빈도의 이름을 손쉽게 확인할 수 있습니다. 공휴일이나 비영업일을 제외한 날짜 계산이 필요한 금융 데이터 분석, 배송 일정 산정, 업무 스케줄링 등에서 CustomBusinessDay를 적극적으로 활용해 보시기 바랍니다.