web-dev-qa-db-fra.com

Erreur lors de la tokenisation des données. Erreur C: mémoire insuffisante pandas python, grand fichier csv

J'ai un gros fichier csv de 3,5 Go et je veux le lire en utilisant des pandas.

Voici mon code:

import pandas as pd
tp = pd.read_csv('train_2011_2012_2013.csv', sep=';', iterator=True, chunksize=20000000, low_memory = False)
df = pd.concat(tp, ignore_index=True)

Je reçois cette erreur:

pandas/parser.pyx in pandas.parser.TextReader.read (pandas/parser.c:8771)()

pandas/parser.pyx in pandas.parser.TextReader._read_rows (pandas/parser.c:9731)()

pandas/parser.pyx in pandas.parser.TextReader._tokenize_rows (pandas/parser.c:9602)()

pandas/parser.pyx in pandas.parser.raise_parser_error (pandas/parser.c:23325)()

CParserError: Error tokenizing data. C error: out of 

La capacité de mon bélier est de 8 Go.

10
Amal Kostali Targhi

essayez ce frère:

mylist = []

for chunk in  pd.read_csv('train_2011_2012_2013.csv', sep=';', chunksize=20000):
    mylist.append(chunk)

big_data = pd.concat(mylist, axis= 0)
del mylist
11
ℕʘʘḆḽḘ

Cette erreur peut également être causée par le chunksize = 200000. Diminuer cela a résolu le problème dans mon cas. Dans la solution de ℕʘʘḆḽḘ, la taille des morceaux est également réduite, ce qui aurait pu faire l'affaire.

2
Justas

Vous pouvez essayer de définir error_bad_lines = False lors de l'appel du fichier csv, c'est-à-dire.

import pandas as pd
df = pd.read_csv('my_big_file.csv', error_bad_lines = False)
2
Dutse I