포스트

[Python] 파일 로드 시 발생하는 Decode 오류 해결 방법

Pandas로 csv 파일을 읽을 때 발생하는 UnicodeDecodeError의 원인과 해결 방법. encoding, encoding_errors 인자 사용법을 정리합니다.

Pandas를 활용해서 csv 파일을 불러올 때 발생할 수 있는 오류에 대한 해결 방안입니다.

다음과 같이 pd.read_csv() 함수를 통해 csv 파일을 불러올 때 가끔 아래와 같은 오류가 발생합니다.

1
2
3
data = pd.read_csv(PATH)

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

Pandas에서는 별도의 encoding argument를 주지 않는 경우 “utf-8”을 이용해서 디코딩을 진행하는데, 해당 파일이 “utf-8”로 인코딩된 파일이 아닌 경우 발생하는 오류입니다.

아래와 같이 pd.read_csv() 함수에 encoding argument를 넣어줌으로써 해결할 수 있습니다.

1
data = pd.read_csv(PATH, encoding="cp949")

또는

1
data = pd.read_csv(PATH, encoding="utf-8-sig")

위와 같은 방법으로 해결이 되지 않는 경우 아래와 같이 오류를 무시하는 argument인 encoding_errors에 “ignore”를 줌으로써 해결할 수 있습니다.

1
data = pd.read_csv(file, encoding_errors = "ignore")
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.