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

Python Pandas – CustomBusinessDay 오프셋의 weekmask(영업일 마스크) 조회 방법

Pandas에서 CustomBusinessDay 오프셋에 적용된 weekmask(주간 영업일 마스크)를 확인하려면 CustomBusinessDay.weekmask 속성을 사용하면 됩니다. weekmask는 어떤 요일을 영업일로 취급할지 정의하는 문자열로, 이 값을 통해 사용자 지정 영업일의 기준을 한눈에 파악할 수 있습니다.

단계별 구현 방법

1단계: 필요한 라이브러리 임포트

import pandas as pd

2단계: 타임스탬프(Timestamp) 객체 설정

timestamp = pd.Timestamp('2021-10-22 03:10:35')

3단계: CustomBusinessDay 오프셋 생성

CustomBusinessDay는 공휴일 등 특정 날짜를 제외한 사용자 지정 영업일을 나타내는 DateOffset의 서브클래스입니다. 아래 예제에서는 증분 단위(n)를 4로 설정하고, 월·화·수·금요일만 유효한 영업일로 지정하는 weekmask를 적용했습니다.

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

4단계: 오프셋 적용 후 weekmask 확인

타임스탬프에 오프셋을 더해 업데이트된 날짜를 출력하고, weekmask 속성으로 실제 적용된 영업일 마스크를 확인합니다.

print("\nUpdated Timestamp...\n", timestamp + cbdOffset)
print("\nThe weekmask on the CustomBusinessDay object..\n", cbdOffset.weekmask)

전체 예제 코드

지금까지의 과정을 하나로 합친 전체 코드는 다음과 같습니다.

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 오프셋 객체에 적용된 빈도(freqstr)를 문자열로 반환
print("\nFrequency applied on the given CustomBusinessDay Offset object...\n", cbdOffset.freqstr)

# 주어진 CustomBusinessDay 객체의 증분 횟수(n) 반환
print("\nThe count of increments on the CustomBusinessDay object..\n", cbdOffset.n)

# weekmask 표시
print("\nThe weekmask on the CustomBusinessDay object..\n", cbdOffset.weekmask)

실행 결과

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

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

The weekmask on the CustomBusinessDay object..
 Mon Tue Wed Fri

결과 해설

  • Timestamp: 기준이 되는 원본 시각은 2021-10-22 03:10:35(금요일)입니다.
  • Updated Timestamp: weekmask가 'Mon Tue Wed Fri'이므로 목·토·일은 영업일에서 제외됩니다. 따라서 유효 영업일 4일을 거친 결과는 2021-10-29(다음 주 금요일)가 됩니다. (10/25(월) → 10/26(화) → 10/27(수) → 10/29(금))
  • freqstr: '4C'는 사용자 지정 영업일(CustomBusinessDay) 4일을 의미하는 빈도 문자열입니다.
  • n: 오프셋에 설정된 증분 횟수로, 이 예제에서는 4입니다.
  • weekmask: CustomBusinessDay 객체에 실제 적용된 영업일 마스크인 'Mon Tue Wed Fri'가 그대로 출력됩니다.