Pandas: parse_csv выдает «ValueError: невозможно проанализировать строку», когда столбец начинается с: «Python

Программы на Python
Гость
Pandas: parse_csv выдает «ValueError: невозможно проанализировать строку», когда столбец начинается с: «

Сообщение Гость »


Я пытаюсь прочитать файл, разделенный табуляцией, с помощью pandas

импортировать панд как pd Basics_cols_to_use = [ «tconst», «titleType», «originalTitle», «startYear», «runtimeMinutes», «жанры» ] chunk_gen = pd.read_csv( 'воспроизвести.tsv', разделитель = '\ т', итератор = Истина, размер чанка = 10, na_values="\\N", usecols=basics_cols_to_use, dtype={ 'startYear': 'Int16', # Int8 не работает со значениями NaN :S 'runtimeMinutes': 'Int16' }, on_bad_lines="предупреждать" ) для чанка в chunk_gen: проходить и я получаю следующее исключение:

Traceback (последний вызов последний): Файл «lib.pyx», строка 2368, в pandas._libs.lib.maybe_convert_numeric ValueError: невозможно проанализировать строку «Реалити-ТВ». Во время обработки вышеуказанного исключения произошло другое исключение: Traceback (последний вызов последний): Файл «/home/user/proj/raw_data/tiskata.py», строка 21, в для чанка в chunk_gen: Файл «/home/user/.venv/imdbapi/lib/python3.10/site-packages/pandas/io/parsers/readers.py», строка 1668, в __next__ вернуть self.get_chunk() Файл «/home/user/.venv/imdbapi/lib/python3.10/site-packages/pandas/io/parsers/readers.py», строка 1777, в get_chunk вернуть self.read(nrows=размер) Файл "/home/user/.venv/imdbapi/lib/python3.10/site-packages/pandas/io/parsers/readers.py", строка 1748, прочитан ) = self._engine.read( # тип: ignore[attr-defined] Файл "/home/user/.venv/imdbapi/lib/python3.10/site-packages/pandas/io/parsers/c_parser_wrapper.py", строка 234, прочитан куски = self._reader.read_low_memory(nrows) Файл «parsers.pyx», строка 855, в pandas._libs.parsers.TextReader.read_low_memory Файл «parsers.pyx», строка 920, в pandas._libs.parsers.TextReader._read_rows Файл «parsers.pyx», строка 1065, в pandas._libs.parsers.TextReader._convert_column_data Файл «parsers.pyx», строка 1104, в pandas._libs.parsers.TextReader._convert_tokens Файл «parsers.pyx», строка 1210, в pandas._libs.parsers.TextReader._convert_with_dtype Файл "/home/user/.venv/imdbapi/lib/python3.10/site-packages/pandas/core/arrays/numeric.py", строка 275, в _from_sequence_of_strings скаляры = to_numeric(strings, error="raise", dtype_backend="numpy_nullable") Файл «/home/user/.venv/imdbapi/lib/python3.10/site-packages/pandas/core/tools/numeric.py», строка 222, в to_numeric значения, new_mask = lib.maybe_convert_numeric( # type: ignore[call-overload] # noqa: E501 Файл «lib.pyx», строка 2410, в pandas._libs.lib.maybe_convert_numeric ValueError: невозможно проанализировать строку «Реалити-ТВ» в позиции 1. (Не обращайте внимания на «Позицию 1» выше. Она относится к количеству строк внутри фрагмента — reproduce.tsv имеет только заголовок и две строки)

Уменьшив размер фрагмента, мне удалось определить одну из точек, где это происходит:

tconst titleType PrimaryTitle originalTitle isAdult startГод конецГод выполненияМинуты жанры tt10233360 tvEpisode Венганса Бенджамина Венганса Бенджамина 0 2019 \N \N Криминал,Драма,Триллер tt10233364 tvEpisode «Катаясь в глубоком блюде» Катясь в глубоком блюде 0 2019 \N \N Reality-TV Похоже, что когда столбец начинается с двойной кавычки, например "Rolling in the Deep Dish выше, возникает эта вводящая в заблуждение ошибка.

Есть ли способ игнорировать такие строки?

Заранее спасибо
Python 3.10.12 панды==2.1.0

Вернуться в «Python»