Как правильно разобрать файл CSV с внутренними кавычками? - PullRequest
0 голосов
/ 27 мая 2018

Поэтому, как часть файла CSV, я пытаюсь преобразовать его в DataFrame с помощью pd.read_csv (). Я получаю эту ошибку:

pandas.errors.ParserError: Error tokenizing data. C error: Expected 3 fields in line 2, saw 4

Первые строки файла следующие:

  1. "yada", "yada", "yada"
  2. "yada", "yada", "aa bb" yada "cc dd, ee"

Дело в том, что в исходном бинарном контенте у "yada" второй строки нет escape-символа ...

Какие аргументы я должен включить в метод read_csv (), чтобы иметь надлежащийпарсинг этой строки, предполагая, что

"aa bb" yada "cc dd, ee"

- это один столбец?

1 Ответ

0 голосов
/ 27 мая 2018

Если проблема с кавычками возникает только в последнем столбце, то перед загрузкой в ​​виде кадра данных вы можете обработать данные следующим образом:

import pandas as pd      
import csv

data = []

with open('input.csv', newline='') as f_input:
    for row in csv.reader(f_input, quotechar='\x01'):
        data.append([v.strip('"') for v in row[:2] + [','.join(row[2:])]])

df = pd.DataFrame(data)        
print(df)

Для приведенных данных это даст вам:

      0     1                       2
0  yada  yada                    yada
1  yada  yada  aa bb "yada" cc dd, ee
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...