Ошибка токенизации данных при загрузке файла CSV в Pandas Dataframe - PullRequest
0 голосов
/ 04 января 2019

У меня есть 8GB CSV-файл, который содержит информацию о компаниях, созданных во Франции. Когда я пытаюсь загрузить его в Python с помощью pandas.read_csv, я получаю различные типы ошибок; Я считаю, что это сочетание трех факторов, которые вызывают проблему:

  • Размер файла (8 ГБ)
  • Французские символы в ячейках (например, «é»)
  • Тот факт, что этот файл CSV организован как файл Excel; поля разделены столбцом, как файл XLS

Когда я пытался импортировать файл, используя:

import pandas as pd
df = pd.read_csv(r'C:\..\data.csv')

Я получил следующую ошибку: OSError: Ошибка инициализации из файла

Затем, чтобы устранить проблему с размером, я копирую файл (data.csv) и вставляю его, сохраняя только первые 25 строк (data2.csv). Это гораздо более легкий файл, чтобы устранить проблему с размером:

df = pd.read_csv(r'C:\..\data2.csv')

Я получаю ту же ошибку OSError: Ошибка инициализации из файла Ошибка.

После некоторого исследования я пробую следующий код с Data2.csv

df = pd.read_csv(r'C:\..\data2.csv', sep="\t", encoding="latin")

На этот раз импорт успешно работает, но в странном формате, например: https://imgur.com/a/y6WJHC5. Все поля находятся в одном столбце.

Так что даже если проблема с размером устранена, он не читает файл CSV должным образом. И все же мне нужно работать с основным файлом Data.csv. Поэтому я пытаюсь использовать тот же код в исходном файле (data.csv):

df = pd.read_csv(r'C:\..\data.csv', sep="\t", encoding="latin")

Я получаю: ParserError: Ошибка токенизации данных. Ошибка C: недостаточно памяти

Какой правильный код для правильного чтения этих data.csv?

Спасибо,

1 Ответ

0 голосов
/ 04 января 2019

На вашем изображении похоже, что файл отделен точкой с запятой (;). Попробуйте использовать ";" как септ в функции read_csv.

Pandas считывает CSV в оперативную память - файл 8 ГБ может легко исчерпать это - попробуйте прочитать файл кусками. Смотрите этот ответ.

...