Проблемы с чтением CSV-файла с запятыми и символами в пандах

Я пытаюсь прочитать файл csv с помощью pandas, и в файле есть столбец под названием «Теги», который состоит из пользовательских тегов и имеет теги типа «,», «», 1950-е, 16-й век. Поскольку они предоставляются пользователю, есть много специальных символов, которые вводятся по ошибке. Проблема в том, что я не могу открыть файл csv с помощью pandas read_csv. Он показывает ошибку: Cparser, данные токенизации ошибок. Может кто-нибудь помочь мне с чтением файла csv в панды?

One Solution collect form web for “Проблемы с чтением CSV-файла с запятыми и символами в пандах”

Хорошо. Начиная с плохо отформатированной CSV мы не можем читать:

>>> !cat unquoted.csv 1950's,xyz.nl/user_003,bad, 123 17th,red,flower,xyz.nl/user_001,good,203 "",xyz.nl/user_239,not very,345 >>> pd.read_csv("unquoted.csv", header=None) Traceback (most recent call last): File "<ipython-input-40-7d9aadb2fad5>", line 1, in <module> pd.read_csv("unquoted.csv", header=None) [...] File "parser.pyx", line 1572, in pandas._parser.raise_parser_error (pandas/src/parser.c:17041) CParserError: Error tokenizing data. C error: Expected 4 fields in line 2, saw 6 

Мы можем сделать более приятную версию, воспользовавшись тем, что последние три столбца хорошо себя ведут:

 import csv with open("unquoted.csv", "rb") as infile, open("quoted.csv", "wb") as outfile: reader = csv.reader(infile) writer = csv.writer(outfile) for line in reader: newline = [','.join(line[:-3])] + line[-3:] writer.writerow(newline) 

который производит

 >>> !cat quoted.csv 1950's,xyz.nl/user_003,bad, 123 "17th,red,flower",xyz.nl/user_001,good,203 ,xyz.nl/user_239,not very,345 

и тогда мы можем прочитать его:

 >>> pd.read_csv("quoted.csv", header=None) 0 1 2 3 0 1950's xyz.nl/user_003 bad 123 1 17th,red,flower xyz.nl/user_001 good 203 2 NaN xyz.nl/user_239 not very 345 

Однако я хотел бы изучить эту проблему в источнике и получить данные в переносимом формате. Трюки, подобные этому, не нужны, и было бы очень легко восстановить его.

Python - лучший язык программирования в мире.