Как я могу исправить "Ошибка токенизации данных" на Pandas CSV Reader - PullRequest
0 голосов
/ 12 ноября 2018

Я пытаюсь прочитать CSV-файл с пандами. Этот файл на самом деле имеет только одну строку, но он вызывает ошибку всякий раз, когда я пытаюсь прочитать его. Кажется, что-то не так происходит в строке 8, но я едва мог найти восьмую строку, поскольку на ней явно только один ряд.

Мне нравится:

with codecs.open("path_to_file", "rU", "Shift-JIS", "ignore") as file:

df = pd.read_csv(file, header=None, sep="\t")
df

Тогда я получаю:

ParserError: Error tokenizing data. C error: Expected 1 fields in line 8, saw 3

Я не понимаю, что на самом деле происходит, поэтому любой ваш совет будет оценен.

Ответы [ 2 ]

0 голосов
/ 05 апреля 2019

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

delimiter = ','
max_columns = max(open(path_name, 'r'), key = lambda x: x.count(delimiter)).count(delimiter)
df = pd.read_csv(path_name, header = None, skiprows = 1, names = list(range(0,max_columns)))

Установите skiprows = 1, если на самом деле есть заголовок, вы всегда можете получить имена столбцов заголовков позже. Вы также можете определить строки, в которых больше столбцов, чем в именах столбцов исходного заголовка.

0 голосов
/ 12 ноября 2018

Попробуйте df = pd.read_csv(file, header=None, error_bad_lines=False)

...