본문 바로가기
프로그래밍/Python

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

by 부자 꽁냥이 2020. 8. 13.

안녕하세요~ 꽁냥이에요. 

 

Pandas에서 read_table, read_csv, read_excel과 같이 데이터를 읽어오는 함수를 사용할 때 간혹 아래와 같은 오류가 발생합니다.

 


UnicodeDecodeError : 'utf-8' codec can't decode byte 0xbc in position 0: invalid start byte


저 같은 경우 한글이 포함된 csv파일이나 텍스트 파일을 read_csv 또는 read_table로 읽어올 때 위와 같은 오류가 뜨지요. 그럴 때에는 encoding인자에 한글 전용 인코딩 방식인 'euc-kr' 또는 'cp949'를 사용하면 됩니다.

 

꽁냥이의 경우에는 아래 코드를 바로 실행하면 오류가 떠요.

 

import pandas as pd
df_pop = pd.read_csv('./population.csv')

 

 

위 코드에서 read_csv함수의 encoding 인자에 'cp949'나 'euc-kr'을 사용하면 문제없이 출력됩니다.

 

1. 'cp949'를 사용한 경우

 

import pandas as pd
df_pop = pd.read_csv('./population.csv', encoding='cp949')

 

 

2. 'euc-kr'을 사용한 경우

 

import pandas as pd
df_pop = pd.read_csv('./population.csv', encoding='euc-kr')

 


'euc-kr'과 'cp949'는 모두 한글 인코딩 방식인데요. 'cp949'가 'euc-kr'의 확장버전이라고 합니다. 즉, 'euc-kr'로 표현 못하는 문자를 'cp949'는 할 수 있다는 뜻입니다. 따라서 'euc-kr'보다는 'cp949'방식을 추천합니다.


댓글


맨 위로