Python/NumPy | Pandas

[Python] Pandas - datetime64 Series를 datetime.datetime으로 변환

비번변경 2023. 7. 4. 21:23

개요

다음과 같은 날짜 데이터로 이루어진 DataFrame이 있다고 하자.

import pandas as pd
import numpy as np

date_str = ["2018, 1, 1", "2018, 1, 4", "2018, 1, 5", "2018, 1, 6"]
df = pd.DataFrame(pd.to_datetime(date_str), columns=['diagnosis_date'])

이 날짜 데이터를 Python의 datetime 타입의 데이터를 원소로 하는 리스트로 변환하고자 다음과 같이 실행하면……

list_date = df['diagnosis_date'].values.tolist()

이런 숫자값이 나온다. 아무래도 Timestamp로 취급된 것 같다. 어떻게 해야 datetime 객체를 원소로 하는 리스트로 만들 수 있는지 적어둔다.

 

 

방법

날짜 데이터의 타입을 확인해보면 datetime64인 것을 확인할 수 있다. 

Series의 datetimelike 속성의 접근자는 dt이다. dt 접근자에서 to_pydatetime 함수를 사용하면 datetime.datetime 타입으로 변환할 수 있다.

df['diagnosis_date'].dt.to_pydatetime()

이를 to_list() 함수를 사용하여 리스트로 변환할 수 있다.

df['diagnosis_date'].dt.to_pydatetime().tolist()

 

 

참고 문서

https://stackoverflow.com/questions/13703720/converting-between-datetime-timestamp-and-datetime64

https://pandas.pydata.org/docs/reference/api/pandas.Series.dt.html