티스토리 뷰

 

파이썬으로 데이터 분석을 할 때 판다스라는 데이터 전용 라이브러리를 많이 사용합니다. 그런데 가끔씩 엑셀 데이터를 불러올 때 오류가 나는 경우가 있습니다. 주로 파일 자제 문제보다는 인코딩 문제가 많은데 해결 방법을 정리합니다.

 

사용 데이터 - 농수축산물 표준품목코드

url : https://tinyurl.com/sqldjy2

해당 사이트에 들어가면  농수축산물 표준품목코드를 받을 수 있습니다. 해당 파일을 MAC에서 열면 글자가 깨지는 것을 볼 수 있습니다.

해당 파일을 열면 글자가 깨집니다..

recipe = pd.read_csv(RECIPE_FILE)
recipe.head()

해당 파일을 판다스로 그냥 불러오면 오류가 납니다. 

  - 오류 메세지 : 'utf-8' codec can't decode byte 0xba in position 0: invalid start byte

 

그냥 불러오면 이렇게 오류가 납니다.

 

인코딩 확인 방법 - chardet

# 파일의 인코딩 확인
rawdata = open(RECIPE_FILE, 'rb').read()
result = chardet.detect(rawdata)
charenc = result['encoding']
charenc

해당 코드를 사용하여 인코딩 방식을 조회할 수 있습니다. 출력결과를 보면 'EUC-KR'으로 나옵니다. 

그래서 해당 파일은 'EUC-KR'으로 인코딩 되어 있다는 것을 알 수 있습니다.

 

 

그래도 오류 -  Error tokenizing data.

recipe = pd.read_csv(RECIPE_FILE, encoding=charenc)
recipe.head()

인코딩 형식을 알았다고 해서 바로 해결되는 것 아닙니다. 인코딩을 지정해줘도 아래와 같은 오류가 발생합니다. 

   - 오류 메세지 :  Error tokenizing data. C error: Expected 6 fields in line 5829, saw 8
 

 

에러는 무시 - error_bad_lines=False

recipe = pd.read_csv(RECIPE_FILE, encoding=charenc, error_bad_lines=False)
recipe.head()

인코딩 외에 'error_bad_lines=False'를써줘어야 합니다. 오류나는 부분을 무시하겠다는 의미입니다, 이렇게 실행하면 정상적으로 불러올 수 있습니다.

 

 

'IT > Pandas : 데이터' 카테고리의 다른 글

[Pandas] DataFrame  (0) 2019.09.16
[Pandas] 전처리  (0) 2019.09.16
[Pandas] plot 그래프  (0) 2019.09.16
[Pandas] merge 병합  (0) 2019.09.16
[Pandas] 데이터 형태  (0) 2019.09.16
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함