개요
Pandas에서 특정 CustomBusinessHour 오프셋이 고정(Anchored) 상태인지 확인하려면 is_anchored() 메서드를 사용하면 됩니다. 이 메서드는 해당 오프셋이 앵커링되어 있는지 여부를 불리언 값(True/False)으로 반환합니다.
CustomBusinessHour는 사용자가 직접 영업 시작 시간과 종료 시간을 지정할 수 있도록 해주는 DateOffset의 하위 클래스로, 금융 데이터 분석 등 실제 영업 시간 기준의 날짜 계산에 유용하게 활용됩니다.
단계별 구현 방법
1단계: 필요한 라이브러리 임포트
먼저 pandas 라이브러리를 가져옵니다.
import pandas as pd
2단계: 타임스탬프 객체 설정
Pandas에서 타임스탬프(Timestamp) 객체를 생성합니다.
timestamp = pd.Timestamp('2021-11-14 05:20:30')3단계: CustomBusinessHour 오프셋 생성
CustomBusinessHour는 DateOffset의 하위 클래스입니다. 아래 예제에서 start 매개변수는 사용자 정의 영업 시간의 시작 시간(24시간 형식), end 매개변수는 종료 시간(24시간 형식)을 나타냅니다.
cbhOffset = pd.tseries.offsets.CustomBusinessHour(start="09:30", end="18:30")
4단계: 타임스탬프에 오프셋 적용
타임스탬프에 오프셋을 더하고 업데이트된 결과를 출력합니다.
print("\nUpdated Timestamp...\n", timestamp + cbhOffset)5단계: 고정(Anchored) 여부 확인
is_anchored() 메서드를 호출하여 CustomBusinessHour가 고정 상태인지 확인합니다.
print("\nCheck whether the CustomBusinessHour is anchored...\n", cbhOffset.is_anchored())전체 예제 코드
아래는 위 단계를 모두 포함한 완전한 코드입니다.
import pandas as pd
# Pandas에서 타임스탬프 객체 설정
timestamp = pd.Timestamp('2021-11-14 05:20:30')
# 타임스탬프 출력
print("Timestamp...\n", timestamp)
# CustomBusinessHour 오프셋 생성
# CustomBusinessHour는 DateOffset의 하위 클래스입니다.
# "start"는 사용자 정의 영업 시작 시간(24시간 형식),
# "end"는 종료 시간(24시간 형식)을 의미합니다.
cbhOffset = pd.tseries.offsets.CustomBusinessHour(start="09:30", end="18:30")
# CustomBusinessHour 오프셋 출력
print("\nCustomBusinessHour Offset...\n", cbhOffset)
# 타임스탬프에 오프셋을 더하고 업데이트된 타임스탬프 출력
print("\nUpdated Timestamp...\n", timestamp + cbhOffset)
# CustomBusinessHour가 고정(Anchored) 상태인지 확인
print("\nCheck whether the CustomBusinessHour is anchored...\n", cbhOffset.is_anchored())실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Timestamp... 2021-11-14 05:20:30 CustomBusinessHour Offset... <CustomBusinessHour: CBH=09:30-18:30> Updated Timestamp... 2021-11-15 10:30:00 Check whether the CustomBusinessHour is anchored... True
결과 해석
출력 결과를 살펴보면 다음과 같은 내용을 확인할 수 있습니다.
- 원본 타임스탬프: 2021-11-14 05:20:30 (일요일 새벽)
- 오프셋 정보: CBH=09:30-18:30, 즉 오전 9시 30분부터 오후 6시 30분까지를 영업 시간으로 설정
- 업데이트된 타임스탬프: 원래 날짜가 일요일이므로 다음 영업일인 월요일(2021-11-15)의 영업 시작 시간인 10:30:00으로 이동
- is_anchored() 반환값: True, 즉 해당 CustomBusinessHour 오프셋은 고정(Anchored) 상태임
기본적으로 빈도 문자열 없이 생성된 CustomBusinessHour 오프셋은 고정 상태로 간주되며, is_anchored()는 항상 True를 반환합니다.