본문 바로가기
공부/에러창고

CSV 파일 열때 UnicodeDecodeError 인코딩 조건 바꿔도 안될때 급한 불 끄기

by E0 2022. 8. 2.

요약: 원본 참조 문제 때문일 수 있으니 참조 끊고 데이터 올려보기.


raw_data 폴더에 들어가 있는 csv 파일 중 file 로 시작하는 데이터의 목록을 가져와 한 번에 읽어와서 뭉치려고 했다. 그런데 에러...

import os
import pandas as pd
rdl = os.listdir('./raw_data/')
rdl = [e for e in rdl if e.startswith('file')==True]
rd=pd.DataFrame()
for l in rdl:
	temp = pd.read_csv('raw_data/'+l,encoding='cp949')
    rd = pd.concat([rd,temp])
UnicodeDecodeError: 'cp949' codec can't decode byte 0xd8 in position 44387: illegal multibyte sequence

44387 위치에 있는 byte 0xd8을 cp949 코덱이 디코드 하지 못한다고 한다. 잘은 모르겠지만 저 위치에 있는 데이터가 뭔가 문제인가보다.
인코딩 조건을 바꾸면 되나 단순하게 생각해서 무턱대고 euc-kr, utf-8,utf-sig-8 바꿔가며 열어봐도 실패.
대체 뭔소린가 싶어서 그냥 csv 파일 엑셀로 열어봤는데

뭔가 외부 파일을 연결하여 참조중이다. 연결 편집을 누르고

전체 선택하여 연결 끊기 후 저장하니 잘 읽어진다. 이유를 디테일하게 찾아보고싶은데, 좀 더 리서치가 필요해보인다. 일단 급한 불 끄는 법을 공유한다.