-
[네이버주식] dataframe merge 오류코딩/Python 2023. 4. 11. 11:32728x90
네이버주식에서 업종별 시세 자료를 모으던 중, 계속되는 에러가 있었다.종목이 몇개 되지 않거나, 시장이 끝난 시간에는 오류가 없다가 장중에는 수시로 dataframe merge 작업 중 에러가 생겼다.
업종별 시세 페이지에는 많은 항목들이 있어 한번에 데이터를 확보할 수 없어 webbrowser로 항목을 최대 6개까지 선택해서 dataframe을 만들고, 다시 6개의 항목으로 업데이트 후 새로 dataframe을 만들어 기존 dataframe과 합쳐 데이터를 만드는데, 이 dataframe에는 '종목명, 현재가, 전일비, 등락률' 네 개의 항목이 항상 기본적으로 포함되므로 'keyset'이라는 변수를 만들어 이 세트를 기준으로 병합을 했다.
그런데, 장 중에는 이 키셋값이 항상 변하므로 일정한 기준이 될 수 없었다.
대부분 장 후 확인을 하다보니 여기까지 생각이 미치지 못해 오류를 인식하지 못하다, 장 중 실행했더니 오류가 발생해서 알아챘다.
결국 최초 dataframe 생성 시에만 이 키세트의 값을 저장하고, 다음부터는 키값인 종목명만 놔두고 나머지 세트의 필드들을 통째로 제거하면서 문제를 해결했다.
key_itms = itms_headers[0] keyset_remove = itms_headers[1:len_key_headers] ... if df_itms.empty: df_itms=df_labels else: df_labels.drop(keyset_remove, axis=1, inplace=True) df_itms = pd.merge(df_itms, df_labels, on=key_itms ,how='outer')
728x90'코딩 > Python' 카테고리의 다른 글
[파이썬] 코드의 함수화 또는 블럭화에 대해 ChatGPT와 대화 (0) 2023.04.12 [파이썬] 전역변수, 지역변수와 global 키워드 - 장단점 (0) 2023.04.12 [Python/unicodedata] 맥에서 한글파일이름 깨짐 현상 (0) 2023.03.30 [Python/Web scraping] 네이버 증권 일별 시세 가져오기, iframe의 requests와 selenium webdriver에서의 처리 (0) 2023.03.30 Python/사용자 정의 함수의 툴팁 작성 (0) 2023.03.29