Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python Pandas CustomBusinessHour - 오프셋이 아닌 경우에만 제공된 날짜를 다음 오프셋으로 롤포워드합니다.

<시간/>

오프셋이 아닌 경우에만 제공된 날짜를 다음 오프셋으로 롤포워드하려면 Pandas에서 CustomBusinessHour.rollforward() 메서드를 사용하세요.

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

import pandas as pd

Pandas에서 타임스탬프 개체 설정 -

timestamp = pd.Timestamp('2021-12-20 08:35:10')

CustomBusinessHour 오프셋을 만듭니다. CustomBusinessHour는 DateOffset 하위 클래스입니다. 유효한 영업일의 주간 마스크 -

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

타임스탬프에 오프셋을 추가하고 업데이트된 타임스탬프 표시 -

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

오프셋이 아닌 경우 롤포워드 -

roll = cbhOffset.rollforward(pd.Timestamp('2021-12-30 08:35:10'))

결과 표시 -

print("\nRoll forward Result...\n",roll)

예시

다음은 코드입니다 -

import pandas as pd

# Set the timestamp object in Pandas
timestamp = pd.Timestamp('2021-12-20 08:35:10')

# Display the Timestamp
print("Timestamp...\n",timestamp)

# Create the CustomBusinessHour Offset
# CustomBusinessHour is the DateOffset subclass
# Weekmask of valid business days
cbhOffset = pd.tseries.offsets.CustomBusinessHour(n = 5, weekmask = 'Mon Tue Wed Fri')

# Display the CustomBusinessHour Offset
print("\nCustomBusinessHour Offset...\n",cbhOffset)

# Add the offset to the Timestamp and display the Updated Timestamp
print("\nUpdated Timestamp...\n",timestamp + cbhOffset)

# roll forward if not on offset
roll = cbhOffset.rollforward(pd.Timestamp('2021-12-30 08:35:10'))

# display the result
print("\nRoll forward Result...\n",roll)

출력

이것은 다음 코드를 생성합니다 -

Timestamp...
 2021-12-20 08:35:10

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

Updated Timestamp...
 2021-12-20 14:00:00

Roll forward Result...
 2021-12-31 09:00:00