Pandas의 CustomBusinessHour 오프셋 객체에서 사용자 지정 업무 시간의 시작 시간을 24시간 형식으로 확인하려면 CustomBusinessHour.start 속성을 사용하면 됩니다. 이 속성은 오프셋 생성 시 지정한 업무 시작 시간을 그대로 반환합니다.
1. 라이브러리 가져오기
먼저 필요한 라이브러리를 임포트합니다.
import pandas as pd
2. 타임스탬프 설정
Pandas에서 타임스탬프(Timestamp) 객체를 생성합니다.
timestamp = pd.Timestamp('2021-11-14 05:20:30')3. CustomBusinessHour 오프셋 생성
이제 CustomBusinessHour 오프셋을 만듭니다. CustomBusinessHour는 DateOffset의 하위 클래스로, 매개변수는 다음과 같습니다.
- start – 사용자 지정 업무 시간의 시작 시간(24시간 형식)
- end – 사용자 지정 업무 시간의 종료 시간(24시간 형식)
- n – 적용할 오프셋의 배수(여기서는 8)
cbhOffset = pd.tseries.offsets.CustomBusinessHour(start="09:30", end = "18:00", n = 8)
4. 타임스탬프에 오프셋 적용하기
타임스탬프에 오프셋을 더하고 갱신된 결과를 출력합니다.
print("\nUpdated Timestamp...\n", timestamp + cbhOffset)5. 사용자 지정 업무 시간의 시작 시간 표시
start 속성을 사용해 사용자 지정 업무 시간의 시작 시간을 출력합니다.
print("\nThe start time of the custom business hour...\n", cbhOffset.start)전체 예제 코드
다음은 위 과정을 모두 포함한 전체 코드입니다.
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:00", n = 8)
# CustomBusinessHour 오프셋 출력
print("\nCustomBusinessHour Offset...\n", cbhOffset)
# 타임스탬프에 오프셋을 더하고 갱신된 타임스탬프 출력
print("\nUpdated Timestamp...\n", timestamp + cbhOffset)
# 사용자 지정 업무 시간의 시작 시간 출력
print("\nThe start time of the custom business hour...\n", cbhOffset.start)실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Timestamp... 2021-11-14 05:20:30 CustomBusinessHour Offset... <8 * CustomBusinessHours: CBH=09:30-18:00> Updated Timestamp... 2021-11-15 17:30:00 The start time of the custom business hour... (datetime.time(9, 30),)
결과 해석
출력 결과를 보면 cbhOffset.start가 (datetime.time(9, 30),) 튜플 형태로 반환되는 것을 확인할 수 있습니다. 즉, 시작 시간이 오전 9시 30분(24시간 형식 기준)으로 올바르게 저장되어 있으며, 여러 개의 시작 시간을 지정한 경우에도 튜플로 함께 반환됩니다. 또한 원본 타임스탬프(2021-11-14 05:20:30)에 8개 단위의 CustomBusinessHour 오프셋을 적용하면 업무 시간(09:30~18:00)만 계산되어 2021-11-15 17:30:00으로 갱신됩니다.