해결된 질문
작성
·
97
답변 2
1
(문제원인) tz 타입 불일치
data_1d의 index 'Date'의 시간타입과 pydatetime의 시간타입이 불일치(비교불가)
(시간타입) tz-aware/tz-naive 정의
tz-aware: 시간대 정보가 포함된 날짜 및 시간 객체
2024-09-19 23:59:59.595457+0200
tz-naive: 시간대 정보가 없는 날짜 및 시간 객체
2024-09-19 23:59:59
(해결방안) 타입 일치 시키기
# data_1d.index = data_1d.index.to_pydatetime()
# data_1d.index = data_1d.index.tz_localize(None)
혹시 저와 같은 문제 발생시 참고하시면 좋겠습니다.
0
안녕하세요! 승혁님!
캡처해 주신 내용을 보니, 원인은 다양하게 있을 것 같은데, 우선적으로 가장 의심이 되는 부분은
pandas의 새로운 버전에서 pd.DateOffset이 datetime object와 호환이 안 되는 상황이 있을 수 있을 것 같습니다.
그래서 제가 제안을 드리는 상황은 아래의 2가지입니다.
1:1 세션을 통해서 해결할 수 있습니다. 저는 현재 클라이언트 시각에 맞추어서 한국 시각 밤 12부터 일하고 있으니 그 전에 미팅 시각을 잡으면 도와 드릴 수 있을 것 같습니다.
승혁님께서 직접 한 번 Trouble Shooting을 해 보시는 것을 추천 드립니다. 말씀 드린 것처럼, pandas나 yfinance가 계속 Version Up되고 있기 때문에 기존에 작동하던 코드가 작동이 안 될 수도 있고, 이 것은 현업에서도 많이 겪게 되는 상황입니다. 그렇기 때문에 conda environment를 통하거나 Docker 또는 여러 unit test 방법들이 있습니다. 우리의 본론으로 가면 스스로 트러블 슛팅을 하는 과정 속에서 배워지는 것들이 있을 겁니다. 제가 제안을 좀 드리면, 우선 아래와 같이 Index의 type을 확인하신 후에
data_1d.info()
<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 544 entries, 2022-07-11 to 2024-09-06
Columns: 471 entries, A to ZTS
dtypes: float64(471)
memory usage: 2.0 MB
필요한 경우에 data_1d의 index의 type을 변환하시면 될 것 같습니다.
# convert pandas timestamp to datetime
data_1d.index = data_1d.index.to_pydatetime()
하지만 말씀 드린 것처럼, 언제든지 1:1 세션이 가능하니, 부담 갖지 마시고 연락 주세요.
감사합니다.
다니엘 드림
승혁님! Welcome to the real world.
지금 하시고 계신 방법이 진정한 학습 방법입니다. 그리고 현실 세계에서도 기존 작동하던 코드에서 에러가 나는 상황은 너무도 빈번하구요.
강의자로서 완벽히 agile하기는 어렵지만 여러 개선 사항들을 정리해 두었다가 한 번씩 정기적인 업데이트를 하도록 하겠습니다.
다시 한 번 감사드립니다.
다니엘 드림