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

Python Pandas – CustomBusinessHour 오프셋 객체에서 사용자 지정 업무 시간의 종료 시간을 24시간 형식으로 표시하기

Pandas에서 CustomBusinessHour 오프셋 객체를 다룰 때, 사용자 지정 업무 시간(custom business hour)의 종료 시간을 24시간 형식으로 확인하려면 CustomBusinessHour.end 속성을 사용하면 됩니다. 이 글에서는 단계별 예제 코드와 함께 그 사용 방법을 살펴보겠습니다.

1. 필요한 라이브러리 가져오기

먼저 pandas 라이브러리를 임포트합니다.

import pandas as pd

2. 타임스탬프(Timestamp) 객체 설정

Pandas에서 타임스탬프 객체를 생성합니다.

timestamp = pd.Timestamp('2021-11-14 05:20:30')

3. CustomBusinessHour 오프셋 생성

이제 CustomBusinessHour 오프셋을 만듭니다. 여기서 start는 사용자 지정 업무 시간의 시작 시간이고, end는 종료 시간이며, 두 값 모두 24시간 형식으로 지정합니다. n 매개변수는 적용할 오프셋의 개수를 의미합니다.

cbhOffset = pd.tseries.offsets.CustomBusinessHour(start="09:30", end = "18:30", n = 5)

참고로 CustomBusinessHour는 DateOffset의 하위 클래스로, 주말이나 공휴일 등 사용자가 정의한 영업일 기준으로 시간 단위 연산을 수행할 때 유용합니다.

4. 타임스탬프에 오프셋 적용하기

생성한 오프셋을 타임스탬프에 더하고, 갱신된 타임스탬프를 출력합니다.

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

5. 사용자 지정 업무 시간의 종료 시간 표시하기

end 속성을 사용하여 사용자 지정 업무 시간의 종료 시간을 출력합니다.

print("\nThe end time of the custom business hour...\n",cbhOffset.end)

전체 예제 코드

지금까지의 내용을 하나로 합친 전체 코드는 다음과 같습니다.

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", n = 5)

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

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

# 사용자 지정 업무 시간의 종료 시간 출력
print("\nThe end time of the custom business hour...\n",cbhOffset.end)

실행 결과

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

Timestamp...
 2021-11-14 05:20:30

CustomBusinessHour Offset...
 <5 * CustomBusinessHours: CBH=09:30-18:30>

Updated Timestamp...
 2021-11-15 14:30:00

The end time of the custom business hour...
 (datetime.time(18, 30),)

결과 해석

출력 결과를 보면, 원래 타임스탬프인 2021-11-14 05:20:30(일요일 새벽)에 5개의 사용자 지정 업무 시간 오프셋을 더하면 다음 영업일인 월요일의 업무 시간 범위 내인 2021-11-15 14:30:00으로 이동한 것을 확인할 수 있습니다. 또한 cbhOffset.end 속성은 튜플 형태로 (datetime.time(18, 30),), 즉 오후 6시 30분이라는 종료 시간을 반환합니다. 이처럼 end 속성을 활용하면 설정된 업무 시간의 마감 시각을 손쉽게 조회할 수 있습니다.