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

Python Pandas – CustomBusinessHour 오프셋 객체에 적용된 빈도 이름 확인하기

Pandas에서 지정된 CustomBusinessHour 오프셋 객체에 적용된 빈도(frequency)의 이름을 반환하려면 CustomBusinessHour.name 속성을 사용하면 됩니다.

CustomBusinessHour란?

CustomBusinessHour는 Pandas의 DateOffset 하위 클래스로, 사용자가 직접 정의한 영업일(weekmask)과 영업 시간대를 기준으로 날짜와 시간을 이동시킬 수 있는 오프셋입니다. 기본 영업시간은 오전 9시부터 오후 5시까지이며, weekmask 매개변수를 통해 유효한 영업 요일을 자유롭게 지정할 수 있습니다.

구현 단계

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

import pandas as pd

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

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

CustomBusinessHour 오프셋을 생성합니다. 여기서는 n=3(3영업시간 이동)과 weekmask='Mon Tue Wed Fri Sat'(월, 화, 수, 금, 토를 영업일로 지정)를 사용했습니다.

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

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

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

마지막으로 name 속성을 통해 해당 CustomBusinessHour 객체에 적용된 빈도의 이름을 반환합니다.

print("\nThe name of the frequency on the CustomBusinessHour object..\n", cbhOffset.name)

전체 예제 코드

import pandas as pd

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

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

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

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

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

# 문자열 형태로 적용된 빈도(freqstr) 출력
print("\nFrequency applied on the given CustomBusinessHour Offset object...\n", cbhOffset.freqstr)

# CustomBusinessHour 객체에 적용된 빈도의 이름(name) 출력
print("\nThe name of the frequency on the CustomBusinessHour object..\n", cbhOffset.name)

실행 결과

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

Timestamp...
 2021-10-25 08:35:10

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

Updated Timestamp...
 2021-10-25 12:00:00

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

The name of the frequency on the CustomBusinessHour object..
 CBH

결과 해석

실행 결과를 보면 다음과 같은 사실을 알 수 있습니다.

1. 오프셋 정보: 생성된 오프셋은 <3 * CustomBusinessHours: CBH=09:00-17:00>으로 표시되며, 기본 영업시간(09:00~17:00) 내에서 3영업시간씩 이동함을 의미합니다.

2. 업데이트된 타임스탬프: 원래 타임스탬프가 '2021-10-25 08:35:10'(오전 8시 35분)이었는데, 영업 시작 시각인 9시 이전이므로 영업일 기준으로 3시간을 더한 '2021-10-25 12:00:00'이 결과로 나옵니다. 참고로 2021년 10월 25일은 월요일로, weekmask에 포함된 영업일입니다.

3. freqstr vs name: freqstr 속성은 이동 단위까지 포함한 빈도 문자열(3CBH)을 반환하는 반면, name 속성은 순수하게 빈도의 이름만(CBH) 반환한다는 차이가 있습니다.