Я читаю большой CSV-файл
df = pd.read_csv(filename, sep=';',
encoding='cp850', quoting=3)
В некоторых строках появляется сообщение об ошибке из-за лишних точек с запятой
Error tokenizing data. C error:
Expected 33 fields in line 23836, saw 34
При открытии файла в Vim большинствовремя ошибки именно на этой линии.Но иногда это не номер этой строки, а строка / несколько строк выше.
Если я ищу строку вручную, я получаю другой номер строки, то есть номер строки, в которой я нахожу ошибку вредактор.
with open(filename, encoding='cp850') as f1:
lines = f1.readlines()
[(e, l) for e, l in enumerate(lines)
if len(split(';')) == 34]
Результат
[(23835, '.....
Так что для этого примера ошибка была не в строке 23836, а в 23835.
Эта проблема возникает как сc и механизм python для read_csv.
Было бы очень полезно, если бы read_csv мог показать содержимое строки ошибки с сообщением об ошибке.
Есть ли способ сделать это?
ОБНОВЛЕНИЕ:
Кажется, что в строках файла импорта есть разрывы строк, и read_csv, кажется, принимает эти строки какисправить, если строка разбита на две строки, так что после 33 полей всегда есть разрыв.Но с этой строки количество строк в сообщении об ошибке больше не соответствует разрывам строк файла.