Pandas에서 BusinessHour 오프셋 객체에 적용된 빈도(frequency)의 이름을 확인하려면 BusinessHour.name 속성을 사용하면 됩니다. 이 속성은 해당 오프셋이 나타내는 빈도 문자열(예: BH)을 반환해 주므로, 코드 내에서 빈도 유형을 식별할 때 유용하게 활용할 수 있습니다.
1단계: 필요한 라이브러리 임포트
먼저 Pandas 라이브러리를 가져옵니다.
import pandas as pd
2단계: 타임스탬프 객체 생성
Pandas에서 타임스탬프 객체를 설정합니다.
timestamp = pd.Timestamp('2021-1-1 01:55:30')
3단계: BusinessHour 오프셋 생성
BusinessHour는 DateOffset의 하위 클래스입니다. start는 사용자 지정 영업 시작 시간, end는 영업 종료 시간을 의미하며, 두 값 모두 24시간 형식으로 지정합니다.
bhOffset = pd.tseries.offsets.BusinessHour(start="09:30", end="18:00")
4단계: 업데이트된 타임스탬프 확인
타임스탬프에 오프셋을 더한 결과를 출력합니다.
print("\nUpdated Timestamp...\n", timestamp + bhOffset)
원래 타임스탬프가 새벽 1시 55분으로 영업 시간 외에 해당하기 때문에, 오프셋을 더하면 가장 가까운 영업 시간 시작점(09:30)으로 이동한 뒤 1시간이 추가되어 10:30:00이 됩니다.
5단계: 빈도 이름 반환
BusinessHour 객체에 적용된 빈도의 이름을 반환합니다.
print("\nThe name of the frequency on the BusinessHour object..\n", bhOffset.name)
전체 예제 코드
지금까지의 과정을 하나의 코드로 정리하면 다음과 같습니다.
import pandas as pd
# Pandas에서 타임스탬프 객체 설정
timestamp = pd.Timestamp('2021-1-1 01:55:30')
# 타임스탬프 출력
print("Timestamp...\n", timestamp)
# BusinessHour 오프셋 생성
# BusinessHour는 DateOffset의 하위 클래스입니다.
# "start"는 사용자 지정 영업 시작 시간(24시간 형식)입니다.
# "end"는 사용자 지정 영업 종료 시간(24시간 형식)입니다.
bhOffset = pd.tseries.offsets.BusinessHour(start="09:30", end="18:00")
# BusinessHour 오프셋 출력
print("\nBusinessHour Offset...\n", bhOffset)
# 업데이트된 타임스탬프 출력
print("\nUpdated Timestamp...\n", timestamp + bhOffset)
# BusinessHour 객체에 적용된 빈도의 이름 반환
print("\nThe name of the frequency on the BusinessHour object..\n", bhOffset.name)
실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Timestamp... 2021-01-01 01:55:30 BusinessHour Offset... <BusinessHour: BH=09:30-18:00> Updated Timestamp... 2021-01-01 10:30:00 The name of the frequency on the BusinessHour object.. BH
핵심 정리
출력 결과에서 볼 수 있듯이, bhOffset.name은 BH를 반환합니다. 기본 BusinessHour는 오전 9시부터 오후 5시까지를 영업 시간으로 사용하지만, 이 예제에서는 start="09:30", end="18:00"으로 사용자 지정했음에도 빈도 이름은 동일하게 BH로 표시됩니다. 즉, name 속성은 오프셋의 세부 설정과 무관하게 해당 빈도의 유형을 식별하는 데 활용됩니다.