2016-11-16 2 views
0

저는 약 4000,0000 개의 행과 3 개의 컬럼을 가지고 있습니다. 파이썬을 읽고이 데이터로 데이터 프레임을 만들고 싶습니다. 나는 항상 기억 상실이있다.거대한 csv를 읽고 데이터 프레임을 만듭니다.

df = pd.concat([chunk for chunk in pd.read_csv(cmct_0430x.csv',chunksize=1000)]) 

또한 생성기에서 만든 creat pandas DataFrame을 사용해도 여전히 메모리 오류가 있습니다.

for line in open("cmct_0430x.csv"): 
     yield line 

내 컴퓨터는 내가이 문제를 해결하는 방법을

win64,8G

입니까? 고마워요.

+0

답변 됨, 크기는 양호해야합니다. 크기가 메모리 용량을 초과하면 데이터 프레임을 저장할 수 없으므로 메모리에 저장됩니다. 파일 형식과 관련된 몇 가지 문제가 있다고 생각합니다. 예를 들어 기본이 아닌 인코딩 (ascii 또는 utf8)을 사용하여 파일을 읽으면 유사한 오류 메시지가 나타날 수 있습니다. –

+0

파일의 작은 버전으로도 제대로 작동합니까? 그리고 모든 것을 Dataframe에로드 할지라도 프레임을 사용할 충분한 공간이 없을 수 있습니다. – hpaulj

+0

그것은 작은 file.yes와 함께 작동, 나는 그것과 함께 일할 충분한 공간이 없을 수도 있습니다 같아요. – lemon

답변

1

df = pd.read_csv('cmct_0430x.csv')

4000 만 행은 문제가되지 않습니다.

는이

+0

CParserError : 데이터 토큰 오류입니다. C 오류 : 메모리 부족 – lemon

1

작동하지 않는 경우가 실제로 청크 분할 모드 CSV 파일을 읽어하여 오류 메시지를 게시하지만, RAM에서 하나의 데이터 프레임로 병합하십시오. 그래서 문제는 여전히 존재합니다. 데이터를 여러 프레임으로 나눌 수 있으며 별도로 작업 할 수 있습니다.

reader = pd.read_csv(file_name, chunksize=chunk_size, iterator=True) 

while True: 
    try: 
     df = reader.get_chunk(chunk_size) 
     # work on df 
    except: 
     break 
    del df 
관련 문제