개요
pandas의 DatetimeIndex를 파이썬 표준 라이브러리의 datetime.datetime 객체로 구성된 객체 ndarray(object ndarray) 형태로 변환해 반환하려면 to_pydatetime() 메서드를 사용합니다. pandas 전용 고속 날짜 타입(datetime64[ns])을 일반 datetime 객체 배열로 바꿔야 하는 상황, 예를 들어 표준 datetime 객체를 요구하는 외부 라이브러리나 함수와 연동할 때 특히 유용합니다.
1단계: 라이브러리 임포트
먼저 필요한 라이브러리를 임포트합니다.
import pandas as pd
2단계: DatetimeIndex 생성
시작 시점을 지정하고, 기간(periods)은 5, 빈도(freq)는 '2Y', 즉 2년 단위로 설정하여 DatetimeIndex를 생성합니다.
datetimeindex = pd.date_range('2021-10-18 07:20:32.261811624', periods=5, freq='2Y')3단계: DateTimeIndex 확인
생성된 DateTimeIndex를 출력해 확인합니다.
print("DateTimeIndex...\n", datetimeindex)4단계: 객체 ndarray로 변환
to_pydatetime() 메서드를 호출하면 DatetimeIndex가 datetime.datetime 객체들로 이루어진 numpy ndarray(dtype=object)로 변환되어 반환됩니다.
print("\nReturn DatetimeIndex as object ndarray of datetime.datetime objects...\n",
datetimeindex.to_pydatetime())전체 예제 코드
다음은 위 과정을 하나로 정리한 전체 코드입니다.
import pandas as pd
# 기간 5, 빈도 '2Y'(2년)인 DatetimeIndex 생성
datetimeindex = pd.date_range('2021-10-18 07:20:32.261811624', periods=5, freq='2Y')
# DateTimeIndex 출력
print("DateTimeIndex...\n", datetimeindex)
# DateTimeIndex 빈도 출력
print("DateTimeIndex frequency...\n", datetimeindex.freq)
# DatetimeIndex를 datetime.datetime 객체의 객체 ndarray로 반환
print("\nReturn DatetimeIndex as object ndarray of datetime.datetime objects...\n",
datetimeindex.to_pydatetime())실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
DateTimeIndex... DatetimeIndex(['2021-12-31 07:20:32.261811624', '2023-12-31 07:20:32.261811624', '2025-12-31 07:20:32.261811624', '2027-12-31 07:20:32.261811624', '2029-12-31 07:20:32.261811624'], dtype='datetime64[ns]', freq='2A-DEC') DateTimeIndex frequency... <2 * YearEnds: month=12> Return DatetimeIndex as object ndarray of datetime.datetime objects... [datetime.datetime(2021, 12, 31, 7, 20, 32, 261811) datetime.datetime(2023, 12, 31, 7, 20, 32, 261811) datetime.datetime(2025, 12, 31, 7, 20, 32, 261811) datetime.datetime(2027, 12, 31, 7, 20, 32, 261811) datetime.datetime(2029, 12, 31, 7, 20, 32, 261811)]
정리
DatetimeIndex의 to_pydatetime() 메서드를 활용하면 pandas의 datetime64[ns] 타입 데이터를 파이썬 표준 datetime.datetime 객체 배열로 손쉽게 변환할 수 있습니다. 반환되는 값은 dtype이 object인 numpy ndarray이며, 각 요소는 독립적인 datetime.datetime 객체입니다. 한 가지 참고할 점은 '2Y' 빈도가 2년 주기의 연말(12월 31일)을 기준으로 날짜를 생성하기 때문에 결과 날짜가 모두 12월 31일로 표시된다는 것입니다. 이처럼 freq 옵션에 따라 실제 생성되는 날짜가 달라지므로, 원하는 기준일에 맞춰 빈도를 선택하는 것이 중요합니다.