• 카테고리

    질문 & 답변
  • 세부 분야

    딥러닝 · 머신러닝

  • 해결 여부

    미해결

pandas로 csv 데이터 읽을 때

21.10.05 11:31 작성 조회수 285

0

안녕하세요 선생님.

산탄데르 캐글 예측 데이터를 불러올때, pd.read_csv()안에 파일위치와 encoding='latin-1'이라고 하셨는데, 혹시 encoding이 의미하는게 무엇인지 알 수 있을까요?

 

감사합니다.

답변 1

답변을 작성해보세요.

0

안녕하십니까, 

파일내에 문자열이 어떻게 encoding되어 있는가를 나타냅니다. 사실 text 파일은 우리가 메모장으로 열어보면 한글로 잘 나오지만, text file 자체는 byte 로 되어 있습니다. 이 byte가 문자열을 나타내는데, 특정 문자는 1byte, 어떤 문자는 2byte, 어떤 문자는 3byte등으로 encoding되어 있습니다. 

대표적으로 알파벳 계열, 숫자값등의 문자열은 1 byte 만으로 알파벳 1개를 나타내는 형태로 encoding 가능합니다. 한글은 보통 2byte, 그런데 이렇게 문자열별로 다르게 encoding하는걸 개선하기 위해서 3byte로 encoding하는 unicode 방식이 있습니다.  보통 pandas의 read_csv()는 text 파일이 unicode 형식으로 encoding 되어 있다고 가정하고 로딩합니다. 

그런데 text 파일의 encoding과 read_csv()의 encoding이 맞지 않을 경우 오류가 발생할 수 있습니다. 이런 경우는 보통 한글일 때 발생하는데, 산탄데르 데이터의 경우는 전부 숫자값이어서 latin-1(알파벳 계열)로 encoding을 적용하였습니다. 

감사합니다.