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

Python Pandas – CustomBusinessDay 오프셋에 적용된 증분 수 반환 방법

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.n4를 반환했습니다. 이는 CustomBusinessDay 오프셋을 생성할 때 n=4로 지정했기 때문입니다. 또한 업데이트된 타임스탬프가 2021-10-22(금)에서 2021-10-29(금)로 이동한 것을 볼 수 있는데, weekmask에서 목요일(Thu)을 제외했기 때문에 금요일 기준으로 4번째 영업일 이동이 적용된 결과입니다. freqstr 속성이 '4C'를 반환하는 점에서도 4개의 사용자 지정 영업일 단위가 적용되었음을 확인할 수 있습니다.