본문 바로가기
판다스/판다스 팁

[pandas] read_csv 함수로 데이터 프레임 부를 때 파일의 encoding 방식 알아내기

by 김판다t 2023. 11. 11.

read_csv 함수로 데이터 프레임을 불러올 때 encoding이 잘못 지정되면 아래와 같은 에러가 납니다

 

 

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

 

 

 

 

 

아래 파일을 다운 받아서 실습해 봅시다

 

chk_encoding.csv
0.00MB

 

 

 

 

초심자분이시라면 저와 똑같이 내컴퓨터 C:\에 datafiles라는 폴더를 만들어 위 파일을 저장해서 실습해주세요

 

 

 

다운받은 위 csv 파일을 이용해 데이터 프레임을 불러오겠습니다

 

import pandas as pd
file = 'C://datafiles//chk_encoding.csv' # 파일경로의 \(역슬래시)는 //(슬래시 2개)로 바꿔야 합니다 
pd.read_csv(file)

 

 

 다음과 같은 에러가 발생합니다

 

 

 

 

 

이것은 read_csv 함수의 encoding의 기본값이 urf-8이고 그 기본값과 파일의 encoding 방식이 맞지 않아서 발생하는 에러입니다.

 

 

정확한 encoding방식을 지정해주면 아래처럼 문제가 해결됩니다

 

encoding 방식을 cp949로 지정해 주겠습니다

 

import pandas as pd
file = 'C://datafiles//chk_encoding.csv' # 파일경로의 \(역슬래시)는 //(슬래시 2개)로 바꿔야 합니다 
pd.read_csv(file, encoding='cp949') # encoding 방식을 'cp949'로 지정

 

 

 


 

 

다만 파일에 적합한 encoding이 어떤 것인지 모를 수 있습니다

 

그때는 아래와 같은 코드를 사용하세요

 

file = 'C://datafiles//chk_encoding.csv' # 파일경로의 \(역슬래시)는 //(슬래시 2개)로 바꿔야 합니다 
print(open(file))

 

 

 

 

 

encoding 방식이 'cp949'라고 알려 줍니다

 

 

 

 

 

 

 

 

 

 

 

 

유튜브에서 판다스 강의 중입니다

 

https://www.youtube.com/@KimPandas