2016-12-23 1 views
2

3.5의 대용량 csv 파일이 있는데 팬더를 사용하여 읽고 싶습니다.데이터 토큰 화 중 오류가 발생했습니다. C 오류 : 메모리 부족 pandas python, 대용량 파일 csv

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 

내 RAM의 용량은 8 이동입니다 :이 오류가

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) 

:

내 코드입니다.

+0

무엇 단지'pd.read_csv ('train_2011_2012_2013.csv'에 대한 즉, 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 else : -> 930 out = np.empty (out_shape, dtype = dtype) 932 func = _get_take_nd_function (arr.ndim, arr.dtype, out.dtype, axis = 축, MemoryError : –

1

당신은 error_bad_lines을 설정하려고 할 수 있습니다 =

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