종종 엑셀의 날짜가 숫자로 읽어질 때가 있다
그때 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
'판다스 > 판다스 팁' 카테고리의 다른 글
Timedelta 자료형을 실수(float)로 바꾸는 방법 (0) | 2023.08.30 |
---|---|
apply를 무분별하게 쓰면 안되는 이유 (0) | 2023.08.25 |
[pandas] csv파일의 멀티 인덱스를 판다스로 읽었을 때 Unnamed columns가 생성된다면? (0) | 2023.08.23 |
[pandas] set과 frozenset의 차이 (0) | 2023.08.07 |
[pandas] 특정 열의 값으로 데이터 프레임 나눠서 리스트로 만들기 (0) | 2023.08.06 |