Непонятная ошибка 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
Теперь, чтобы загрузить файл в Excel, мне нужно было одновременно указывать табуляцию и пробел в качестве разделителей, чтобы правильно прочитать файл в этой строке 8, чего нельзя сделать с помощью панд (насколько я знаю). Sublime Text читает файл точно напрямую.
Я не хочу пропустить плохие строки с error_bad_lines
так как с ними все в порядке. Я также использовал lineterminator
без успеха.
1 ответ
Попробуйте опцию "delim_whitespace".
df = pd.read_table("seeds_dataset.txt", header=None, delim_whitespace = True)
РЕДАКТИРОВАТЬ: более подробное объяснение:
Подпись метода для read_table
здесь У него есть все виды опций, один из которых sep
, Это определяет разделитель между полями, и его значение по умолчанию - "\t" (вкладка). Одним из решений является изменение sep
аргумент. Реализация синтаксического анализатора pandas на python позволяет вам использовать разделители регулярных выражений, поэтому sep = "\\s+"
будет ограничивать любое количество пробелов. Однако синтаксический анализатор C (который выглядит так, как будто вы используете из сообщения об ошибке) не позволяет использовать регулярные выражения. Это имеет delim_whitespace
Вариант, который точно соответствует вашим потребностям!