Python read_csv tokenizing error / Чтение из несовместимого CSV-файла - PullRequest
0 голосов
/ 19 октября 2019

У меня есть CSV-файл, который имеет несколько сотен строк и 13 столбцов. CSV-файл имеет следующую структуру (пример):

a  b  c  d 

23 43 54 65

76 23 43 63

.

.

a  b  e  c  d

21 12 43 12 09 

23 12 32 43 87

Значения одного заголовка отображаются под другим заголовком. В результате, когда я использую read_csv, я получаю ParserError: Ошибка токенизации данных. Ошибка C: Ожидается 12 полей в строке 27458, п. 13.

Любые предложения о том, как я могу очистить / переставить файл CSV и поместить правильные значения столбца под правым столбцом? Может быть, создать новый CSV или ввести его в БД. БЛАГОДАРЯ

Ответы [ 2 ]

0 голосов
/ 19 октября 2019

Если вы можете указать имена столбцов (всего 13 ) в файле csv в качестве первой строки файла, вы сможете использовать read_csv , который будетвозвращать данные со значением NULL, где бы ни было указано значение, а затем вы можете заменить NaN на любое другое значение, которое вы хотите.

0 голосов
/ 19 октября 2019

Если вам особенно не нужно создавать фрейм данных, то вы можете легко справиться с этим, не используя панд. Стандартный модуль CSV будет с радостью читать строки различной длины. Каждая строка возвращается в виде списка. Вы можете использовать их напрямую или, если вам нужно очистить CSV, вы можете добавить пустые строки в списки, чтобы они были одинаковой длины, и записать их обратно в новый файл.

import csv

with open('test.txt','r') as f:
    rdr=csv.reader(f)
    for i in rdr:
        print(i)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...