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

Python Pandas – CustomBusinessHour 오프셋에 적용된 증분 수 확인하기 (n 속성 활용법)

Pandas에서 CustomBusinessHour 오프셋에 적용된 증분(increment)의 개수를 확인하려면 CustomBusinessHour.n 속성을 사용하면 됩니다. 이 속성은 오프셋을 생성할 때 n 매개변수에 지정한 값을 그대로 반환합니다.

CustomBusinessHour란?

CustomBusinessHour는 Pandas의 DateOffset 서브클래스로, 기본 영업시간(09:00~17:00)을 커스터마이징할 수 있는 시간 오프셋입니다. weekmask 매개변수를 통해 유효한 영업일을 요일 단위로 지정할 수 있어, 휴무일이나 특수 근무 일정이 있는 경우에 유용하게 활용됩니다.

단계별 구현 방법

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

import pandas as pd

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

timestamp = pd.Timestamp('2021-11-14 05:20:30')

CustomBusinessHour 오프셋을 생성합니다. 여기서는 증분 수(n)를 7로, 영업일은 월·화·수·금으로 지정했습니다.

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

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

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

마지막으로 해당 CustomBusinessHour 객체의 증분 개수를 반환합니다.

print("\nThe count of increments on the CustomBusinessHour object..\n", cbhOffset.n)

전체 예제 코드

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

import pandas as pd

# Pandas 타임스탬프 객체 설정
timestamp = pd.Timestamp('2021-11-14 05:20:30')

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

# CustomBusinessHour 오프셋 생성
# CustomBusinessHour는 DateOffset 서브클래스
# weekmask로 유효한 영업일(월, 화, 수, 금) 지정
cbhOffset = pd.tseries.offsets.CustomBusinessHour(n = 7, weekmask = 'Mon Tue Wed Fri')

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

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

# 주어진 CustomBusinessHour 오프셋 객체에 적용된 빈도를 문자열로 반환
print("\nFrequency applied on the given CustomBusinessHour Offset object...\n", cbhOffset.freqstr)

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

실행 결과

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

Timestamp...
 2021-11-14 05:20:30

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

Updated Timestamp...
 2021-11-15 16:00:00

Frequency applied on the given CustomBusinessHour Offset object...
 7CBH

The count of increments on the CustomBusinessHour object..
 7

결과 해석

출력 결과를 살펴보면 다음과 같은 점을 확인할 수 있습니다.

- 오프셋 표기가 <7 * CustomBusinessHours: CBH=09:00-17:00>로 나타나며, n=7이 적용되었음을 보여줍니다.
- 원래 타임스탬프인 2021년 11월 14일은 일요일이므로 weekmask에 포함되지 않아, 다음 영업일인 월요일 기준으로 계산되어 2021-11-15 16:00:00이 되었습니다.
- freqstr 속성은 적용된 빈도를 문자열 형태(7CBH)로 반환합니다.
- cbhOffset.n은 설정된 증분 수인 7을 정확히 반환합니다.