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

Python Pandas – BusinessHour 오프셋의 정규화(normalize) 여부 확인하기

Pandas에서 BusinessHour 오프셋이 정규화(normalize)되었는지 확인하려면 BusinessHour.normalize 속성을 사용하면 됩니다. 이 속성은 해당 오프셋 생성 시 normalize 매개변수가 True로 설정되었는지를 불리언 값으로 반환합니다.

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

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

import pandas as pd

2. 타임스탬프 객체 설정

확인에 사용할 타임스탬프 객체를 생성합니다.

timestamp = pd.Timestamp('2021-1-1 01:55:30')

3. BusinessHour 오프셋 생성

pd.tseries.offsets.BusinessHour를 사용해 사용자 지정 영업시간 오프셋을 만듭니다. startend 매개변수에는 각각 영업 시작 시간과 종료 시간을 24시간 형식으로 지정하며, 여기서는 normalize=True로 설정하여 오프셋을 정규화했습니다.

bhOffset = pd.tseries.offsets.BusinessHour(start="09:30", end="18:00", normalize=True)

4. 업데이트된 타임스탬프 확인

타임스탬프에 오프셋을 더한 결과를 출력합니다.

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

5. 정규화 여부 확인

bhOffset.normalize 속성을 출력하여 오프셋이 정규화되었는지 확인합니다.

print("\nThe BusinessHour Offset is normalized ?\n", bhOffset.normalize)

전체 예제 코드

아래는 위 과정을 모두 포함한 전체 코드입니다.

import pandas as pd

# 타임스탬프 객체 설정
timestamp = pd.Timestamp('2021-1-1 01:55:30')

# 타임스탬프 출력
print("Timestamp...\n", timestamp)

# BusinessHour 오프셋 생성
# BusinessHour는 DateOffset의 하위 클래스입니다.
# "start": 사용자 지정 영업 시작 시간 (24시간 형식)
# "end": 사용자 지정 영업 종료 시간 (24시간 형식)
# normalize 매개변수를 사용하여 오프셋을 정규화합니다.
bhOffset = pd.tseries.offsets.BusinessHour(start="09:30", end="18:00", normalize=True)

# BusinessHour 오프셋 출력
print("\nBusinessHour Offset...\n", bhOffset)

# 업데이트된 타임스탬프 출력
print("\nUpdated Timestamp...\n", timestamp + bhOffset)

# BusinessHour 오프셋의 정규화 여부 확인
print("\nThe BusinessHour Offset is normalized ?\n", bhOffset.normalize)

실행 결과

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

Timestamp...
 2021-01-01 01:55:30

BusinessHour Offset...
 <BusinessHour: BH=09:30-18:00>

Updated Timestamp...
 2021-01-01 00:00:00

The BusinessHour Offset is normalized ?
 True

결과 해석

출력 결과를 보면 원래 타임스탬프가 2021-01-01 01:55:30이었지만, normalize=True가 적용된 BusinessHour 오프셋을 더한 후 시간 부분이 00:00:00으로 초기화된 것을 확인할 수 있습니다. 또한 bhOffset.normalize 속성이 True를 반환하므로, 해당 오프셋이 정규화되었음을 알 수 있습니다.