Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 6, 2020 23:23:59

cornypie
Зарегистрирован: 2020-02-06
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Ошибка Skipping line 1009: expected 13 fields, saw 14

Есть csv файл. Импортирую в датафрейм с разделителем ‘#’. В нем названия фильмов, в одном из названий есть #, поэтому код воспринимает его как разделитель. Как настроить цитирование, чтобы символы между ‘\n’ и ‘ #" ’ воспринимались как единое целое?

import pandas as pd
movies=pd.read_csv('movies.csv',
sep='#',
error_bad_lines=False)

файл

Прикреплённый файлы:
attachment movies.csv (415,3 KБ)

Офлайн

#2 Фев. 7, 2020 00:54:12

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10031
Репутация: +  857  -
Профиль   Отправить e-mail  

Ошибка Skipping line 1009: expected 13 fields, saw 14

cornypie
Есть csv файл.
Расширение csv у файла ещё не означает, что внутри него данные в формате CSV.

Вот описание CSV-формата
https://tools.ietf.org/html/rfc4180

В твоём файле нарушены концы строк (в CSV они должны быть CRLF, а не просто LF). Также в файле используются двойные кавычки там, где они не нужны. Почему так произошло и откуда они взялись? Я думаю, ты занёс текст с кавычками и эти кавычки не проэкранировал. Получились кавычки, которые вообще ничего не делают и при чтении CSV исчезнут как просто кавычки. В CSV-формате кавычки экранируются через повтор кавычек.

Так что тебе надо сначала сделать из этого файла csv-файл, а уже потом его передавать в pandas.

cornypie
В нем названия фильмов, в одном из названий есть #, поэтому код воспринимает его как разделитель.
В CSV-формате ничего подобного не происходит, так как там существуют надёжные средства экранирования. Поэтому в CSV-формате ты можешь и разделитель полей как текст внутри поля записывать, и разделитель строк как текст внутри поля записывать.

Причина проблем в том, что это у тебя не CSV-формат, а невалидные, похожие на CSV данные. Они только похожи на CSV, но это просто какие-то данные. И дело не в другом разделителе, а вообще во всём.



Отредактировано py.user.next (Фев. 7, 2020 00:55:53)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version