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

Python Pandas – CustomBusinessHour 오프셋의 주간 마스크(weekmask) 확인 방법

CustomBusinessHour 오프셋의 주간 마스크(weekmask) 확인하기

Pandas에서 CustomBusinessHour 오프셋에 적용된 주간 마스크(weekmask)를 확인하려면 CustomBusinessHour.weekmask 속성을 사용하면 됩니다. 이 속성은 해당 오프셋이 어떤 요일을 영업일로 인식하는지 문자열 형태로 반환해 줍니다.

1. 필요한 라이브러리 임포트

먼저 필요한 라이브러리를 임포트합니다.

import pandas as pd

2. 타임스탬프 객체 설정

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

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

3. CustomBusinessHour 오프셋 생성

CustomBusinessHour는 DateOffset의 하위 클래스로, 기본 영업시간(09:00~17:00)과 사용자가 지정한 영업일을 기준으로 시간 연산을 수행합니다. 여기서는 n=7로 7시간씩 이동하며, 유효한 영업일을 나타내는 주간 마스크를 'Mon Tue Wed Fri'(월·화·수·금)로 지정했습니다.

cbhOffset = pd.tseries.offsets.CustomBusinessHour(n = 7, weekmask = 'Mon Tue Wed Fri')

4. 오프셋 적용 후 업데이트된 타임스탬프 출력

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

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

5. 주간 마스크 확인

마지막으로 CustomBusinessHour 객체에 적용된 주간 마스크를 출력합니다.

print("\nThe weekmask on the CustomBusinessHour object..\n", cbhOffset.weekmask)

전체 예제 코드

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

import pandas as pd

# Pandas에서 타임스탬프 객체 설정
timestamp = pd.Timestamp('2021-11-14 05:20:30')

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

# CustomBusinessHour 오프셋 생성
# CustomBusinessHour는 DateOffset의 하위 클래스입니다.
# 유효한 영업일의 주간 마스크 지정
cbhOffset = pd.tseries.offsets.CustomBusinessHour(n = 7, weekmask = 'Mon Tue Wed Fri')

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

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

# 해당 CustomBusinessHour 오프셋 객체에 적용된 빈도를 문자열로 반환
print("\nFrequency applied on the given CustomBusinessHour Offset object...\n", cbhOffset.freqstr)

# 주간 마스크 출력
print("\nThe weekmask on the CustomBusinessHour object..\n", cbhOffset.weekmask)

실행 결과

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

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

CustomBusinessHour Offset...
 <7 * CustomBusinessHours: CBH=09:00-17:00>

Updated Timestamp...
 2021-11-15 16:00:00

Frequency applied on the given CustomBusinessHour Offset object...
 7CBH

The weekmask on the CustomBusinessHour object..
 Mon Tue Wed Fri

결과를 보면 입력된 타임스탬프(2021-11-14, 일요일)에 7개의 커스텀 영업시간이 더해져, 주간 마스크에 포함된 첫 영업일인 월요일(2021-11-15)의 16:00으로 이동한 것을 확인할 수 있습니다. 또한 freqstr 속성은 '7CBH'를 반환하며, weekmask 속성은 'Mon Tue Wed Fri'를 그대로 출력합니다.