2016-12-23 13 views
2

У меня есть большой файл csv 3.5 go, и я хочу его прочитать с помощью pandas.Ошибка данных для токенизации. C ошибка: из памяти pandas python, большой файл csv

Это мой код:

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) 

Я получаю эту ошибку:

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 

Емкость моей памяти составляет 8 Go.

+0

насчет просто 'pd.read_csv ('train_2011_2012_2013.csv', sep = ';') '? – Boud

+0

В дополнение к любым другим предложениям, вы также должны указать 'dtypes'. – 3novak

+0

@Boud мой компьютер не поддерживает его –

ответ

3

попробовать этот братан:

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 
+0

Спасибо за помощь, но там есть ошибка в big_data = pd.concat (mylist, axis = 0) out = np.empty (out_shape, dtype = dtype, order = 'F') 929: -> 930 out = np.empty (out_shape, dtype = dtype) 932 func = _get_take_nd_function (arr.ndim, arr.dtype, out.dtype, axis = axis, MemoryError: –

1

Вы можете попробовать установить error_bad_lines = False при вызове файла CSV т.е.

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