본문 바로가기
Error

[Error] UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb9 in position 0: invalid start byte

by GoodDayDeveloper 2023. 6. 7.
반응형

 

 

Python에서 Pandas를 통해 csv 파일을 읽어오는 read_csv 메서드를 호출할 경우

아래와 같은 에러가 발생하는 경우가 생깁니다.

 

 

 

 

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

 

 

 

 

 

번역하자면...

 

 

 

UnicodeDecodeError: 'utf-8' 코덱은 위치 0의 바이트 0xb9를 디코딩할 수 없습니다: 
유효하지 않은 시작 바이트

 

 

 

 

즉, 인코딩 에러로써 인코딩의 값에 한글 전용 인코딩 방식인 'cp949' 를 넣어주면 됩니다.

예제를 보도록 하죠.

 

 

 

 

 


 

 

 

문제발생

 

 

 

 

 

1
2
3
4
5
import pandas as pd                # 데이터를 저장하고 처리하는 패키지
 
# csv 파일을 읽어서 DataFrame 객체로 만듦 
df = pd.read_csv('C:/Desktop/Player/task/data/time.csv')
df    # df 표시
cs

 

 

저는 read_csv메서드를 단순히 파일명을 넣고 호출하려하려 했습니다.

 

 

 

 

 

 

하지만 이미지와 같은 오류가 발생하였죠.

즉, 인코딩이 되지 않아 발생 된 오류입니다.

 

 

 

 

 

반응형

 

 

 

 

 

해결방안

 

 

 

1
2
3
4
5
import pandas as pd                # 데이터를 저장하고 처리하는 패키지
 
# csv 파일을 읽어서 DataFrame 객체로 만듦 / 한글 인코딩을 위해 cp949로 설정
df = pd.read_csv('C:/Desktop/Player/task/data/time.csv', encoding='cp949')
df    # df 표시
cs

 

 

 

encoding 속성값에 'cp949' 를 넣어주면 됩니다.

 

통상적으로 euc-kr를 사용하는 경우가 많은데 

euc-kr이나 cp949 모두 한글 인코딩 방식이긴 합니다만

cp949는 euc-kr의 확장버전이기 때문에 cp949를 추천드립니다.

 

 

 

 

 

 

 

인코딩 값을 넣어주면 파일을 잘 불러오는 것을 볼 수가 있습니다.

 

 

 

반응형

댓글