데이터를 분석하면서 날짜 데이터를 다루는 일이 많았는데,
정말 에러를 많이 만난 것 같다.
TypeError: can't compare datetime.datetime to datetime.date
둘 다 날짜형인데 datetime.datetime 과 datetime.date를 비교 못한다니...!
예시는 저것만 써놓았지만 그동안 만난 에러는 더 많다.
날짜형 데이터 처리하느라 날짜형을 문자형으로도 바꿔보고 문자형을 날짜형으로도 바꾸고 별 짓을 다 하였다.
근본을 모르니까 오류를 만날 때마다 헤매는 일이 다반사였다.
따라서 근본을 알아야겠다고 다짐하였고
내가 보려고 쓰는 Python의 날짜형 데이터 정리 시작
Python의 날짜형은 ①datetime ②date ③timestamp이 있다
날짜형이 다르면 계산이나 비교할 수 없다!
1. datetime, date
import datetime
datetime.date(2022,11,12) # 날짜
datetime.datetime(2022,11,12,8,15,56) # 날짜, 시간대
2. timestamp
import pandas as pd
pd.Timestamp('2022-11-12T8:15:21') # 날짜T시간대
따라서 비교하기 위해서는
format을 이용하든가
format(datetime.date(2022,5,1), '%Y-%m-%d') > format(pd.Timestamp('2022-11-12T8:15:21'), '%Y-%m-%d')
isformat()을 이용하든가
datetime.date(2022,5,2).isoformat() > datetime.datetime(2022,5,1,6,54,21).isoformat()
strptime, strftime을 이용해야한다
[Python] strptime, strftime 차이점
1. strftime (str → datetime) datetime을 문자열로 변환하고 싶을 때 strftime 사용 날짜형에서 strftime을 사용하여 문자형으로 변환된 것을 알 수 있음 # 문자형으로 바뀐 날짜형 데이터 도출 '날짜형데이터
puddle-of-devstory.tistory.com
내가 요즘 애용하고 있는 방법은
문자열을 timestamp로 바꾸는 것이다.
datetime.date(2022, 4, 1) == pd.to_datetime('2022-04-01').date()
'ERROR' 카테고리의 다른 글
[Python] invalid literal for int() with base 10: '' 해결 (0) | 2022.11.21 |
---|---|
[GIT] ERROR: Permission to denied to (0) | 2022.08.09 |
[Python] unexpected EOF while parsing 에러 해결 (0) | 2022.07.28 |
[PostgreSQL] 타입 변환 오류 (0) | 2022.07.13 |
[Java] 'Error: Could not find or load main class' 해결 (0) | 2022.07.05 |