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

Python Pandas - 지정된 CustomBusinessHour가 고정(Anchored) 상태인지 확인하는 방법

개요

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를 반환합니다.