본문 바로가기
판다스/판다스 팁

[pandas] 엑셀의 날짜가 숫자로 읽어질 때 datetime으로 변환하는 방법

by 김판다t 2023. 8. 25.

종종 엑셀의 날짜가 숫자로 읽어질 때가 있다

 

그때 datetime으로 변환하는 방법을 살펴보겠다

 

 

예제

 

 

import pandas as pd
s = pd.Series([44678, 45890])

 

s

 

0    44678
1    45890
dtype: int64

 

 

s는 엑셀에서 불러온 데이터는 아니지만 엑셀의 날짜가 숫자로 불러질때와 같은 데이터가 담겨 있다

 

이 숫자의 의미는 1899-12-30부터 몇번째 날인지를 숫자로 표현한 것이다. (만약 소수점이 있다면 그것은 시간이다)

 

이것을 datetime으로 변환하려면 to_datetime의 origin을 설정하고 단위를 날(day)에 해당하는 D로 설정하면 해결된다

 

 

pd.to_datetime(s, unit='D', origin='1899-12-30')

 

output:

 

0   2022-04-27
1   2025-08-21
dtype: datetime64[ns]

 

 

 

 


그런데 read_excel 함수의 parse_dates 인자를 사용하면 이런 일이 거의 일어나지 않으니깐 parse_dates 인자를 활용해서 datetime으로 바꾸는 습관을 들이도록 하자




 

 

 

유튜브에서 판다스 강의 중입니다

 

https://www.youtube.com/@KimPandas