안녕하세요~ 꽁냥이에요.
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'방식을 추천합니다.
'프로그래밍 > Python' 카테고리의 다른 글
[병렬 프로그래밍] 2. Multi-Thread 응용 with Python (1123) | 2021.05.15 |
---|---|
[병렬 프로그래밍] 1. Multi-Thread 사용하기 with Python (2510) | 2021.05.13 |
[Python] 텍스트 파일 내용 수정하기 (1659) | 2021.04.24 |
folium - popup, tooltip 한글 깨짐 현상 - 임시 방편 해결법! (0) | 2020.09.16 |
파이썬 3에서 'Crypto' 모듈 설치하기 (2) | 2020.08.25 |
댓글