2014-11-12 4 views
2

병합 할 두 개의 CSV 파일이 있습니다. 팬더와 함께 내가 사용하는 것이 : 오류가 반환되기 전에 내 RAM 사용량은 4기가바이트에서 1.9 GB에서 2.2GB로 이동하지만, :팬더가없는 두 개의 CSV 병합

pd.merge(df1,df2, how='left', left_on='ST_LOGINID', right_on='LOGINID')

그러나 팬더는이 작업 ("MemoryError의")을 수행하는 메모리가 부족. 나는 따라서 이러한 솔루션 중 하나를 찾고 있어요

:이 보이기 때문에 1) 한 가지 방법은, 메모리에 팬더가 더 많은 RAM을 사용할 수 있도록 2) 한 가지 방법은 파일을로드하지 않고 작동/가입 이러한 병합을 수행하는 사용할 수있는 충분한 메모리가 있다는 것입니다.

답변

3

csvkit을 시도해보십시오

첫째로 설치 : 다음

pip install csvkit 

: 당신이 큰 CSV 데이터가있는 경우

csvjoin -c "ST_LOGINID, LOGINID" --outer file1.csv file2.csv 
-1

NYSOL's mcmd이 최고입니다.

mjoin k=ST_LOGINID K=LOGINID m=df2.csv i=df1.csv o=output.csv 

매우 먼저 실행됩니다.

자세한 내용을 보려면 here을 참조하십시오.