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

Python Pandas – BusinessDay 오프셋이 정규화되었는지 확인하는 방법

Pandas에서 BusinessDay 오프셋이 정규화(normalize)되었는지 확인하려면 BusinessDay.normalize 속성을 사용하면 됩니다. 이 속성은 해당 오프셋에 정규화가 적용되어 있는지 여부를 True 또는 False로 반환합니다.

1. 필수 라이브러리 임포트

먼저 필요한 라이브러리를 가져옵니다.

import datetime
import pandas as pd

2. 타임스탬프 객체 생성

Pandas에서 타임스탬프(Timestamp) 객체를 설정합니다.

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

3. BusinessDay 오프셋 생성

BusinessDay는 DateOffset의 하위 클래스입니다. 여기서는 "normalize" 매개변수를 True로 지정하여 BusinessDay 오프셋을 정규화했습니다.

bdOffset = pd.tseries.offsets.BusinessDay(offset = datetime.timedelta(hours = 8, minutes = 10), normalize=True)

4. 업데이트된 타임스탬프 출력

생성한 오프셋을 타임스탬프에 적용한 결과를 확인합니다.

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

5. 정규화 여부 확인

BusinessDay 오프셋이 정규화되었는지 확인합니다.

print("\nThe BusinessDay Offset is normalized..\n", bdOffset.normalize)

전체 예제 코드

다음은 위 과정을 모두 포함한 전체 코드입니다.

import datetime
import pandas as pd

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

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

# BusinessDay 오프셋 생성
# BusinessDay는 DateOffset의 하위 클래스입니다.
# "normalize" 매개변수를 사용하여 BusinessDay를 정규화했습니다.
bdOffset = pd.tseries.offsets.BusinessDay(offset = datetime.timedelta(hours = 8, minutes = 10), normalize=True)

# BusinessDay 오프셋 출력
print("\nBusinessDay Offset...\n", bdOffset)

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

# 주어진 BusinessDay 객체에 적용된 빈도를 문자열로 반환
print("\nFrequency on the given BusinessDay Offset...\n", bdOffset.freqstr)

# BusinessDay 객체에 적용된 빈도의 이름 반환
print("\nThe name of the frequency on the BusinessDay object..\n", bdOffset.name)

# BusinessDay 오프셋이 정규화되었는지 확인
print("\nThe BusinessDay Offset is normalized..\n", bdOffset.normalize)

실행 결과

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

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

BusinessDay Offset...
 <BusinessDay: offset=datetime.timedelta(seconds=29400)>

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

Frequency on the given BusinessDay Offset...
 B+8H10Min

The name of the frequency on the BusinessDay object..
 B

The BusinessDay Offset is normalized..
 True

결과 해석

실행 결과를 보면 normalize=True로 설정된 BusinessDay 오프셋이 적용된 후 타임스탬프가 '2021-10-30 01:55:02.000045'에서 '2021-11-01 00:00:00'으로 변경된 것을 확인할 수 있습니다. 시간 부분이 자정(00:00:00)으로 초기화된 것은 정규화가 적용되었기 때문입니다. 마지막 줄에서 bdOffset.normalize 속성이 True를 반환하므로, 해당 BusinessDay 오프셋이 정규화되었음을 알 수 있습니다.