도라에몽주머니

[Python / 오류해결] 'utf-8' codec can't decode byte 0xc1 in position 0: invalid start byte 본문

Error

[Python / 오류해결] 'utf-8' codec can't decode byte 0xc1 in position 0: invalid start byte

에몽쓰 2021. 2. 1. 10:18

한국부동산원에서 올려준 아파트매매가격지수 파일을 열어보려다 저런 오류가 떴다.

 

이 에러메세지는 Pandas를 이용해서 read_csv를 했을 때 발견되는 오류 메세지이고 오류의 의미는 utf-8로 0 위치에 있는 값 0xc1을 디코딩 할 수 없다는 의미이다.

 

 

그래서 우선

with open('C:\\Users\Downloads\한국부동산원_아파트 매매가격지수(월별)_20201026.csv', 'rb') as f:
    buffer  = f.read()
    print(buffer)

이 코드를 사용해 정말 처음 위치의 byte값이 0xc1인지 확인해보았다.

 

 

사진을 보면 알 수 있듯이 첫 바이트가 xc1이다,,,,

 

그래서 알아봤는데 뭐 인코딩을 UTF-16으로 해봐라 ISO-8859-1로 해봐라 등등 많은 조언이 있었지만 ISO-8859-1로 했을 때 인코딩은 되었지만 한글이 일부 깨져서 나왔음,,,,ㅜㅜ

 

 

결국 찾아보다가 발견한 해결방법은 한글 전용 인코딩 방식인 'EUC-KR' 이나 'CP949'를 이용하면 된다.

import pandas as pd
apartment = pd.read_csv('C:\\Users\Downloads\한국부동산원_아파트 매매가격지수(월별)_20201026.csv', encoding = 'EUC-KR')

이런식으로 encoding에 UTF-8 대신 적어주면 된다.