Я пытаюсь прочитать файл .tsv, однако заметил, что в моих данных есть определенная строка, которая вызывает следующую ошибку:
ParserError: Expected 112 fields in line 112, saw 115
Я проследил ошибку и обнаружил, что в моих данных есть "\\t", который, когда я пытаюсь прочитать файл, думает, что он разделен табуляцией...
Я пробовал следующее без везения:
df = pd.read_csv('data.tsv.gz', header=None, sep='\t',
quoting=csv.QUOTE_NONE, compression='gzip', engine='python',
encoding='iso8859_1')
Я также пытался использовать: sep='^\\t|\t'.
Пример данных:
There\tShould \\t Only\tbe\t6\tcolumns\t\t
Вывод в фрейме данных должен производить 6 столбцов со строкой «\\t»:
|There|Should \\t Only|be|6|columns|NA|
такое простое решение я проглядел! Большое спасибо Йохан!






Если у вас нет нулевых значений и вы можете жить с чтением его как нулевого, вы можете использовать аргумент na-values как часть read_csv и назначить это значение как N/A.
К сожалению, в данных присутствуют нулевые значения
Вы также можете попробовать установить false_values, чтобы установить это значение в False при чтении.
@JohanL предоставил следующее решение: escapechar='\\', и оно работает как шарм.
@Aslan: Пожалуйста, измените (или удалите) принятый ответ, поскольку он указывает на неработающее решение. Это сбивает с толку того, кто придет к этому вопросу позже. Я добавил рабочий, как ссылку.
Вы можете добавить к pd.read_csv() аргумент под названием escapechar. Setting the escape char to'\'`, который решит вашу проблему. Таким образом
df = pd.read_csv('data.tsv.gz', header=None, sep='\t', escapechar='\\',
quoting=csv.QUOTE_NONE, compression='gzip', engine='python',
encoding='iso8859_1')
делает свое дело, как вы показали в своем обновленном вопросе.
Вы пытались добавить
escapechar='\\'в свой список аргументовpd.read_csv()?