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) 반환한다는 차이가 있습니다.