728x90
반응형
질문 : Python으로 Pandas에서 CSV 파일을 읽을 때 UnicodeDecodeError
30,000 개의 유사한 파일을 처리하는 프로그램을 실행하고 있습니다. 임의의 숫자가 중지되고이 오류가 발생합니다.
File "C:\Importer\src\dfman\importer.py", line 26, in import_chr
data = pd.read_csv(filepath, names=fields)
File "C:\Python33\lib\site-packages\pandas\io\parsers.py", line 400, in parser_f
return _read(filepath_or_buffer, kwds)
File "C:\Python33\lib\site-packages\pandas\io\parsers.py", line 205, in _read
return parser.read()
File "C:\Python33\lib\site-packages\pandas\io\parsers.py", line 608, in read
ret = self._engine.read(nrows)
File "C:\Python33\lib\site-packages\pandas\io\parsers.py", line 1028, in read
data = self._reader.read(nrows)
File "parser.pyx", line 706, in pandas.parser.TextReader.read (pandas\parser.c:6745)
File "parser.pyx", line 728, in pandas.parser.TextReader._read_low_memory (pandas\parser.c:6964)
File "parser.pyx", line 804, in pandas.parser.TextReader._read_rows (pandas\parser.c:7780)
File "parser.pyx", line 890, in pandas.parser.TextReader._convert_column_data (pandas\parser.c:8793)
File "parser.pyx", line 950, in pandas.parser.TextReader._convert_tokens (pandas\parser.c:9484)
File "parser.pyx", line 1026, in pandas.parser.TextReader._convert_with_dtype (pandas\parser.c:10642)
File "parser.pyx", line 1046, in pandas.parser.TextReader._string_convert (pandas\parser.c:10853)
File "parser.pyx", line 1278, in pandas.parser._string_box_utf8 (pandas\parser.c:15657)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xda in position 6: invalid continuation byte
이러한 파일의 소스 / 생성은 모두 동일한 위치에서 제공됩니다. 가져 오기를 진행하기 위해이를 수정하는 가장 좋은 방법은 무엇입니까?
답변
read_csv
는 encoding
옵션을 사용하여 다른 형식의 파일을 처리합니다. 나는 주로 read_csv('file', encoding = "ISO-8859-1")
을 사용하거나, 또는 encoding = "utf-8"
을 읽기에 사용하고 일반적으로 utf-8
을 to_csv
합니다.
'ISO-8859-1'
대신 'latin'
과 같은 alias
옵션 중 하나를 사용할 수 있습니다 ( python docs 참조, 다른 여러 인코딩에 대한 정보 참조).
관련 Pandas 문서 , csv 파일에 대한 python 문서 예제 및 여기 SO에 대한 많은 관련 질문을 참조하십시오. 좋은 배경 리소스는 모든 개발자가 유니 코드 및 문자 집합에 대해 알아야 할 사항 입니다.
인코딩을 감지하려면 (파일에 ASCII가 아닌 문자가 포함되어 있다고 가정) enca
( man page 참조 ) 또는 file -i
(linux) 또는 file -I
(osx) ( man page 참조 )를 사용할 수 있습니다.
출처 : https://stackoverflow.com/questions/18171739/unicodedecodeerror-when-reading-csv-file-in-pandas-with-python
728x90
반응형
'프로그래밍 언어 > Python' 카테고리의 다른 글
파이썬에서 '//' 연산자 (0) | 2021.12.07 |
---|---|
파이썬에서 'Enum'을 표현하는 방법 (0) | 2021.12.07 |
파이썬에서 딕셔너리 키를 리스트로 반환하는 방법 (0) | 2021.12.05 |
Python 및 pip, 사용 가능한 모든 버전의 패키지 나열하는 방법 (0) | 2021.12.05 |
프로젝트 오일러와의 속도 비교 : C vs Python vs Erlang vs Haskell (0) | 2021.12.05 |