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

Python Pandas – CustomBusinessHour 오프셋 객체 생성하는 방법

Pandas에서 CustomBusinessHour 객체를 생성하려면 pandas.tseries.offsets.CustomBusinessHour() 메서드를 사용합니다. CustomBusinessHour는 DateOffset의 하위 클래스로, 실제 영업일과 영업 시간을 기준으로 시간 단위 연산을 수행할 수 있게 해주는 강력한 도구입니다.

CustomBusinessHour란?

CustomBusinessHour는 기본 영업시간(09:00~17:00)을 따르면서, weekmask 매개변수를 통해 유효한 영업일(요일)을 직접 지정할 수 있는 오프셋입니다. 예를 들어 주말이나 특정 요일을 제외한 근무 일정을 반영한 날짜 계산이 필요할 때 유용합니다.

단계별 구현 방법

1. 필요한 라이브러리 임포트

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

import pandas as pd

2. 타임스탬프 객체 설정

Pandas에서 타임스탬프 객체를 설정합니다.

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

3. CustomBusinessHour 오프셋 생성

CustomBusinessHour 오프셋을 생성합니다. 여기서 n=5는 5시간을 의미하고, weekmask='Mon Tue Wed Fri'는 월·화·수·금을 유효한 영업일로 지정한다는 뜻입니다(목요일은 제외).

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

4. 오프셋 출력 및 적용

생성된 CustomBusinessHour 오프셋을 출력합니다.

print("\nCustomBusinessHour Offset...\n", cbhOffset)

타임스탬프에 오프셋을 더한 후, 업데이트된 타임스탬프를 출력합니다.

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

전체 예제 코드

다음은 위 과정을 모두 포함한 전체 코드입니다.

import pandas as pd

# Pandas에서 타임스탬프 객체 설정
timestamp = pd.Timestamp('2021-12-31 08:35:10')

# 타임스탬프 출력
print("Timestamp...\n", timestamp)

# CustomBusinessHour 오프셋 생성
# CustomBusinessHour는 DateOffset의 하위 클래스
# 유효한 영업일의 weekmask 지정
cbhOffset = pd.tseries.offsets.CustomBusinessHour(n = 5, weekmask = 'Mon Tue Wed Fri')

# CustomBusinessHour 오프셋 출력
print("\nCustomBusinessHour Offset...\n", cbhOffset)

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

실행 결과

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

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

CustomBusinessHour Offset...
 <5 * CustomBusinessHours: CBH=09:00-17:00>

Updated Timestamp...
 2021-12-31 14:00:00

결과 해석

입력된 타임스탬프인 2021년 12월 31일(금요일) 오전 8시 35분은 영업 시작 시간인 오전 9시 이전입니다. 따라서 CustomBusinessHour 오프셋을 적용하면 영업 시작 시간인 오전 9시부터 계산이 시작되어, 5영업시간이 더해진 오후 2시(14:00)가 최종 결과로 반환됩니다. 이처럼 CustomBusinessHour는 영업시간 외의 시간을 자동으로 건너뛰고 정확한 영업 기준 시간 계산을 수행해 줍니다.