인프런 커뮤니티 질문&답변

kwc님의 프로필 이미지
kwc

작성한 질문수

공공데이터로 파이썬 데이터 분석 시작하기

[3/20] 데이터로드하고 미리보기, 행과 열의 수를 알아보기

UnicodeDecodeError: 'cp949' codec can't decode byte 0x94

작성

·

1.6K

1

---------------------------------------------------------------------------
UnicodeDecodeError                        Traceback (most recent call last)
<ipython-input-47-9f2a70a6b775> in <module>
      2 ## %ls
      3 
----> 4 df_last = pd.read_csv(r"D:\인공지능\파이썬교육\data\주택도시보증공사_전국 평균 분양가격(2019년 12월).csv", encoding="cp949")
      5 ## df_last.shape

C:\Windows\Anaconda3\lib\site-packages\pandas\io\parsers.py in parser_f(filepath_or_buffer, sep, delimiter, header, names, index_col, usecols, squeeze, prefix, mangle_dupe_cols, dtype, engine, converters, true_values, false_values, skipinitialspace, skiprows, skipfooter, nrows, na_values, keep_default_na, na_filter, verbose, skip_blank_lines, parse_dates, infer_datetime_format, keep_date_col, date_parser, dayfirst, cache_dates, iterator, chunksize, compression, thousands, decimal, lineterminator, quotechar, quoting, doublequote, escapechar, comment, encoding, dialect, error_bad_lines, warn_bad_lines, delim_whitespace, low_memory, memory_map, float_precision)
    674         )
    675 
--> 676         return _read(filepath_or_buffer, kwds)
    677 
    678     parser_f.__name__ = name

C:\Windows\Anaconda3\lib\site-packages\pandas\io\parsers.py in _read(filepath_or_buffer, kwds)
    446 
    447     # Create the parser.
--> 448     parser = TextFileReader(fp_or_buf, **kwds)
    449 
    450     if chunksize or iterator:

C:\Windows\Anaconda3\lib\site-packages\pandas\io\parsers.py in __init__(self, f, engine, **kwds)
    878             self.options["has_index_names"] = kwds["has_index_names"]
    879 
--> 880         self._make_engine(self.engine)
    881 
    882     def close(self):

C:\Windows\Anaconda3\lib\site-packages\pandas\io\parsers.py in _make_engine(self, engine)
   1112     def _make_engine(self, engine="c"):
   1113         if engine == "c":
-> 1114             self._engine = CParserWrapper(self.f, **self.options)
   1115         else:
   1116             if engine == "python":

C:\Windows\Anaconda3\lib\site-packages\pandas\io\parsers.py in __init__(self, src, **kwds)
   1889         kwds["usecols"] = self.usecols
   1890 
-> 1891         self._reader = parsers.TextReader(src, **kwds)
   1892         self.unnamed_cols = self._reader.unnamed_cols
   1893 

pandas\_libs\parsers.pyx in pandas._libs.parsers.TextReader.__cinit__()

pandas\_libs\parsers.pyx in pandas._libs.parsers.TextReader._get_header()

pandas\_libs\parsers.pyx in pandas._libs.parsers.TextReader._tokenize_rows()

pandas\_libs\parsers.pyx in pandas._libs.parsers.raise_parser_error()

UnicodeDecodeError: 'cp949' codec can't decode byte 0x94 in position 23: illegal multibyte sequence

답변 4

0

kwc님의 프로필 이미지
kwc
질문자

엑셀로 한번 연 이후에는 에러가 나는 것 같습니다. 그냥 다운로드하여 바로 열면 성공입니다.

박조은님의 프로필 이미지
박조은
지식공유자

엑셀로 여는 것은 문제 없으나 아마 따로 저장하지 않으셨다면 자동저장이 되었을거에요. 그 과정에서 인코딩이 변경되게 됩니다.

0

kwc님의 프로필 이미지
kwc
질문자

해결했습니다. 삭제하고, 다운로드 다시 해서 성공했습니다. 감사합니다.

박조은님의 프로필 이미지
박조은
지식공유자

잘 해결되었다니 다행입니다. 감사합니다 :)

0

kwc님의 프로필 이미지
kwc
질문자

파일은 열었는데, 위와 같이 여전히 decode  에러가 납니다.

박조은님의 프로필 이미지
박조은
지식공유자

안녕하세요. 아마도 엑셀등으로 열거나 다운로드 받아 처리하는 과정에서 인코딩 방식이 바뀌었을 것 같습니다. 기존 csv 파일을 삭제하고 다시 다운로드 받아서 해당 폴더에 옮기고 로드해 보시겠어요? 

0

박조은님의 프로필 이미지
박조은
지식공유자

안녕하세요.

파일명 뒤에 .csv 가 누락되어 있습니다.

확장자를 대소문자를 맞춰서 작성해 주세요.

 

그래도 안 된다면 r"경로명.csv"  <= 이렇게 따옴표 앞에 r을 써주세요.

r은  raw의 약자로 역슬래시 등의 특수문자에 따라 경로가 잘못 해석되는 것을 방지합니다.

kwc님의 프로필 이미지
kwc

작성한 질문수

질문하기