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

Python Pandas로 CustomBusinessDay 오프셋 객체 생성하기

Python Pandas에서 CustomBusinessDay 오프셋 객체를 생성하려면 pd.tseries.offsets.CustomBusinessDay() 메서드를 사용합니다. 이 오프셋은 휴일이나 특정 요일을 제외한 사용자 지정 영업일 기준으로 날짜를 계산할 때 유용하게 활용됩니다.

1. 필요한 라이브러리 가져오기

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

import pandas as pd

2. CustomBusinessDay 오프셋 생성하기

CustomBusinessDay는 휴일을 제외한 사용자 지정 영업일을 나타내는 DateOffset의 서브클래스입니다. n 매개변수로 이동할 영업일 수를 지정하고, weekmask 매개변수로 유효한 영업일 요일을 정의할 수 있습니다.

다음 예제에서는 월·화·수·금을 영업일로 설정하고 5일 단위로 이동하는 오프셋을 생성합니다.

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

3. 타임스탬프 객체 설정하기

Pandas에서 기준이 될 타임스탬프 객체를 생성합니다.

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

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

타임스탬프에 오프셋을 더하고 업데이트된 결과를 출력합니다.

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

전체 예제 코드

지금까지의 내용을 하나로 정리한 전체 코드는 다음과 같습니다.

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 = 5, weekmask = 'Mon Tue Wed Fri')

# CustomBusinessDay 오프셋 출력
print("\nCustomBusinessDay Offset...\n", cbdOffset)

# 타임스탬프에 오프셋을 더하고 업데이트된 타임스탬프 출력
print("\nUpdated Timestamp...\n", timestamp + cbdOffset)

실행 결과

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

Timestamp...
 2021-12-31 08:35:10

CustomBusinessDay Offset...
 <5 * CustomBusinessDays>

Updated Timestamp...
 2022-01-10 08:35:10

결과 해석

기준 날짜인 2021년 12월 31일은 금요일입니다. weekmask가 'Mon Tue Wed Fri'로 설정되어 있어 목요일은 영업일에서 제외되며, 주말 역시 포함되지 않습니다. 따라서 5개의 유효 영업일을 차례로 계산하면 2022년 1월 10일(월요일)이 되고, 시간 정보(08:35:10)는 그대로 유지되는 것을 확인할 수 있습니다.