2016-11-05 3 views
0

팬더를 사용하여 seeds dataset을 읽으려고합니다. 사용하여 파일을로드 할 때 :판다에서 혼란스러운 read_table 오류

df = pd.read_table("seeds_dataset.txt", header=None) 

를 내가 얻을 :

CParserError: Error tokenizing data. C error: Expected 8 fields in line 8, saw 10 

을 이제 엑셀로 파일을로드하기 위해, 나는 제대로을 읽고, 동시에 구분 기호로 탭과 공간을 지정하는 데 필요 그 줄에서 파일 8, 판다로 할 수없는 일 (내가 아는 한). 숭고한 텍스트는 파일을 정확하게 직접 읽습니다.

error_bad_lines으로 잘못된 줄을 건너 뛰고 싶지 않습니다. 아무 문제가 없으므로. 나는 또한 lineterminator을 성공적으로 사용했다.

답변

0

"delim_whitespace"옵션을 사용해보십시오.

df = pd.read_table("seeds_dataset.txt", header=None, delim_whitespace = True) 

편집 : 자세한 설명 : read_table에 대한

방법 서명이 here입니다. 그것은 모든 종류의 옵션 중 하나가 sep입니다. 이 필드 사이의 구분 기호를 정의하고 기본값은 '\ t'(탭)입니다. 한 가지 해결책은 sep 인수를 변경하는 것입니다. pandas 파서의 python 구현은 정규식 구분 기호를 사용할 수 있으므로 sep = "\\s+"은 공백을 구분합니다. 그러나 C 파서 (오류 메시지에서 사용하는 것처럼 보입니다)를 사용하면 정규 표현식을 사용할 수 없습니다. 그래도 고객의 요구에 정확히 맞는 delim_whitespace 옵션이 있습니다!

+0

답변 주셔서 감사합니다. 왜 'delim_whitespace'를 사용하는 것이 더 효과적입니까? 나는이 문제의 기원을 알기에 더 관심이있다. – Valilutzik

관련 문제