Pandas ParserError: Ошибка токенизации данных. C ошибка: EOF внутри строки - PullRequest
2 голосов
/ 21 февраля 2020

У меня есть данные длиной более 400 000 строк. При запуске этого кода:

f=pd.read_csv(filename,error_bad_lines=False)

я получаю следующую ошибку:

pandas.errors.ParserError: Error tokenizing data. C error: EOF inside string starting at row 454751

Мои данные к концу файла выглядят так:

BTC 9948    8718    1.57E+12    ASK
BTC 52      8718    1.57E+12    ASK
BTC 120     8718    1.57E+12    ASK
BTC 200     8718    1.57E+12    ASK
BTC 150     8718    1.57E+12    ASK
BTC 50      8718    1.57E+12    ASK
BTC 10      8718    1.57E+12    ASK
BTC 57      8718    1.57E+12    ASK
BTC 50      8718    1.57E+12    ASK
BTC 50191   8718    

Вот строка 454751: BTC 50 8718 1.57E+12 ASK
Я попытался запустить error_bad_lines=False, как показано выше, но это все еще не работает. Я также искал цитаты в моем файле, но у меня их нет.

Ответы [ 2 ]

1 голос
/ 21 февраля 2020

Изменение движка парсера с C на Python должно решить вашу проблему. Используйте следующую строку для чтения вашего csv:

f=pd.read_csv(filename,error_bad_lines=False, engine="python")

Из документации read_csv :

engine {'c', 'python'}, необязательно Парсер движок для использования. Двигатель C работает быстрее, в то время как двигатель python в настоящее время более функциональный.

1 голос
/ 21 февраля 2020
    import pandas as pd
    for chunk in pd.read_csv(<filepath>, chunksize=<your_chunksize_here>)
      do_processing()
      train_algorithm()

Пожалуйста, разделите и прочитайте файл, как указано выше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...