read_csv 함수로 데이터 프레임을 불러올 때 encoding이 잘못 지정되면 아래와 같은 에러가 납니다
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc1 in position 0: invalid start byte
아래 파일을 다운 받아서 실습해 봅시다
초심자분이시라면 저와 똑같이 내컴퓨터 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
'판다스 > 판다스 팁' 카테고리의 다른 글
[pandas] 데이터 프레임을 가로로 정렬하는 방법 (0) | 2023.11.15 |
---|---|
[pandas] GitHub의 csv파일을 바로 데이터 프레임으로 불러오기 (0) | 2023.11.13 |
[pandas] csv 파일에서 따옴표 안의 콤마(,)는 seperator로 적용하고 싶지 않을 때 (0) | 2023.09.05 |
[pandas] 날짜(timestamp)에서 특정 기간이 흐른 뒤의 날짜를 반환하는 방법 (0) | 2023.09.05 |
집계 결과를 열로 만드는 방법 (0) | 2023.08.30 |