Pandas에서 TimeDeltaIndex를 datetime.timedelta 객체로 구성된 객체형 ndarray(object ndarray)로 변환하려면 to_pytimedelta() 메서드를 사용하면 됩니다. 이 메서드는 NumPy의 timedelta64[ns] 값을 파이썬 표준 라이브러리의 timedelta 객체 배열로 바꿔주므로, 순수 파이썬 환경에서 시간 간격을 다룰 때 매우 유용합니다.
필요한 라이브러리 임포트하기
가장 먼저 필요한 라이브러리를 임포트합니다.
import pandas as pd
TimeDeltaIndex 객체 생성하기
TimedeltaIndex 객체를 생성합니다. data 매개변수에 timedelta 형식으로 해석 가능한 문자열 데이터를 전달합니다.
tdIndex = pd.TimedeltaIndex(data=['10 day 5h 2 min 3us 10ns', '+22:39:19.999999', '2 day 4h 03:08:02.000045', '+21:15:45.999999'])
TimeDeltaIndex를 객체 ndarray로 변환하기
이제 to_pytimedelta() 메서드를 호출하여 TimeDeltaIndex를 datetime.timedelta 객체의 ndarray로 변환하고 결과를 출력합니다.
print("\nTimeDeltaIndex를 datetime.timedelta 객체의 ndarray로 반환...\n",
tdIndex.to_pytimedelta())
이 메서드는 별도의 인자를 받지 않으며, 각 원소가 datetime.timedelta 타입인 NumPy 배열(dtype=object)을 반환한다는 점을 기억하세요.
전체 예제 코드
아래는 지금까지의 과정을 하나로 정리한 완전한 코드입니다.
import pandas as pd
# TimedeltaIndex 객체 생성
# 'data' 매개변수에 timedelta 형식의 데이터를 설정했습니다.
tdIndex = pd.TimedeltaIndex(data=['10 day 5h 2 min 3us 10ns', '+22:39:19.999999',
'2 day 4h 03:08:02.000045', '+21:15:45.999999'])
# TimedeltaIndex 출력
print("TimedeltaIndex...\n", tdIndex)
# TimeDelta의 구성 요소(일, 시간, 분, 초 등)를 데이터프레임으로 반환
print("\nTimeDelta 구성 요소 데이터프레임...\n", tdIndex.components)
# TimeDeltaIndex를 datetime.timedelta 객체의 ndarray로 반환
print("\nTimeDeltaIndex를 datetime.timedelta 객체의 ndarray로 반환...\n",
tdIndex.to_pytimedelta())
실행 결과
위 코드를 실행하면 다음과 같은 출력을 얻을 수 있습니다.
TimedeltaIndex... TimedeltaIndex(['10 days 05:02:00.000003010', '0 days 22:39:19.999999', '2 days 07:08:02.000045', '0 days 21:15:45.999999'], dtype='timedelta64[ns]', freq=None) TimeDelta 구성 요소 데이터프레임... days hours minutes seconds milliseconds microseconds nanoseconds 0 10 5 2 0 0 3 10 1 0 22 39 19 999 999 0 2 2 7 8 2 0 45 0 3 0 21 15 45 999 999 0 TimeDeltaIndex를 datetime.timedelta 객체의 ndarray로 반환... [datetime.timedelta(days=10, seconds=18120, microseconds=3) datetime.timedelta(seconds=81559, microseconds=999999) datetime.timedelta(days=2, seconds=25682, microseconds=45) datetime.timedelta(seconds=76545, microseconds=999999)]
정리
to_pytimedelta()는 Pandas의 고성능 timedelta64 연산과 파이썬 표준 timedelta 객체 사이를 잇는 편리한 다리 역할을 합니다. 출력 결과에서 확인할 수 있듯이, 일(days), 초(seconds), 마이크로초(microseconds) 단위의 값들이 파이썬 기본 timedelta 객체로 정확하게 변환되어 반환됩니다. 반대 방향의 변환이 필요하다면 pd.to_timedelta() 함수를 사용할 수 있습니다.