Разобрать csv с кавычками и запятыми - PullRequest
0 голосов
/ 30 марта 2019

Я пытаюсь прочитать csv в Pandas (через функцию read_csv), где второй атрибут text содержит строку, заключенную в двойные кавычки. Некоторые примеры содержат больше кавычек внутри строки, которые экранируются, например, "He said \"Okay, I will\" but I doubt it".

e.g. 
  id, text
   0, "random text"
   1, "He said \"Okay, I will\" but I doubt it"

Всякий раз, когда я запускаю функцию read_csv, я получаю ошибку CParserError: Error tokenizing data. C error: Expected 2 fields in line 1, saw 3. Это связано с тем, что запятая внутри подстроки \"Okay, I will\" распознается как разделитель, а если нет -

Как я могу это исправить?


Редактировать

Я нашел решение в другой записи . Все, что мне нужно сделать, это добавить 2 атрибута к read_csv: pd.read_csv('dataset.csv', escapechar='\\', encoding='utf-8'). Теперь работает нормально.

Ответы [ 3 ]

1 голос
/ 30 марта 2019

Файл, который вы показываете, неверен. Кавычки внутри указанных полей должны быть удвоены. И после пробела не должно быть пробелов. Должно быть:

id,text
0,"random text"
1,"He said ""Okay, I will"" but I doubt it"
0 голосов
/ 01 апреля 2019

Я нашел решение в другой записи .Все, что мне нужно сделать, это добавить 2 атрибута к read_csv: pd.read_csv('dataset.csv', escapechar='\\', encoding='utf-8').Сейчас работает нормально.

0 голосов
/ 30 марта 2019

Вы хотите read_csv() s quotechar параметр:

Символ, используемый для обозначения начала и конца цитируемого элемента.Пункты в кавычках могут включать разделитель, и он будет игнорироваться.

Поэтому добавьте quotechar='"'.

...