주어진 BusinessDay 오프셋 객체에 어떤 키워드 인수가 적용되었는지 확인하려면 Pandas에서 제공하는 BusinessDay.kwds 속성을 사용하면 됩니다. 이 속성은 오프셋 객체를 생성할 때 전달한 키워드 인수들을 딕셔너리 형태로 반환해 줍니다.
아래 예제를 통해 단계별로 살펴보겠습니다.
1. 필요한 라이브러리 임포트하기
먼저 datetime 모듈과 pandas 라이브러리를 임포트합니다.
import datetime import pandas as pd
2. 타임스탬프 객체 생성하기
Pandas의 Timestamp 객체를 하나 생성합니다.
timestamp = pd.Timestamp('2021-10-30 01:55:02.000045')3. BusinessDay 오프셋 생성하기
BusinessDay는 DateOffset의 하위 클래스로, 영업일(월요일~금요일) 기준으로 날짜를 계산하는 오프셋입니다. 이번 예제에서는 추가로 7시간 7분의 시간 오프셋을 지정하여 BusinessDay 오프셋을 생성합니다.
bdOffset = pd.tseries.offsets.BusinessDay(offset = datetime.timedelta(hours = 7, minutes = 7))
4. 업데이트된 타임스탬프와 키워드 인수 출력하기
타임스탬프에 오프셋을 더한 결과와 함께, kwds 속성 값도 출력합니다.
print("\nUpdated Timestamp...\n", timestamp + bdOffset)
print("\nKeyword arguments on the given BusinessDay Offset...\n", bdOffset.kwds)전체 예제 코드
지금까지의 내용을 하나로 정리한 전체 코드는 다음과 같습니다.
import datetime
import pandas as pd
# Pandas 타임스탬프 객체 생성
timestamp = pd.Timestamp('2021-10-30 01:55:02.000045')
# 타임스탬프 출력
print("Timestamp...\n", timestamp)
# BusinessDay 오프셋 생성
# BusinessDay는 DateOffset의 하위 클래스입니다.
bdOffset = pd.tseries.offsets.BusinessDay(offset = datetime.timedelta(hours = 7, minutes = 7))
# BusinessDay 오프셋 출력
print("\nBusinessDay Offset...\n", bdOffset)
# 업데이트된 타임스탬프 출력
print("\nUpdated Timestamp...\n", timestamp + bdOffset)
# 주어진 BusinessDay 객체에 적용된 빈도를 문자열로 반환
print("\nFrequency on the given BusinessDay Offset...\n", bdOffset.freqstr)
# 키워드 인수 출력
print("\nKeyword arguments on the given BusinessDay Offset...\n", bdOffset.kwds)실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Timestamp...
2021-10-30 01:55:02.000045
BusinessDay Offset...
<BusinessDay: offset=datetime.timedelta(seconds=25620)>
Updated Timestamp...
2021-11-01 09:02:02.000045
Frequency on the given BusinessDay Offset...
B+7H7Min
Keyword arguments on the given BusinessDay Offset...
{'offset': datetime.timedelta(seconds=25620)}실행 결과를 보면, 2021년 10월 30일은 토요일이므로 영업일 오프셋을 더하면 다음 영업일인 11월 1일(월요일)로 이동하고, 지정한 7시간 7분의 시간 오프셋까지 반영되어 최종적으로 '2021-11-01 09:02:02'가 된 것을 확인할 수 있습니다.
마지막 출력에서 알 수 있듯이, kwds 속성은 {'offset': datetime.timedelta(seconds=25620)} 형태의 딕셔너리를 반환합니다. 즉, BusinessDay 오프셋을 생성할 때 전달했던 키워드 인수(offset = 7시간 7분)가 그대로 저장되어 있다는 것을 의미합니다.