거대한 .csv 파일 읽기

| | |

현재 최대 100만 행과 200열(파일 범위는 100mb에서 1.6gb)이 있는 Python 2.7의 .csv 파일에서 데이터를 읽으려고 합니다. 300,000행 미만이지만 그 이상으로 이동하면 메모리 오류가 발생합니다.내 코드는 다음과 같습니다.

def getdata(filename, criteria): data=[] for criteria in criteria: data. append(getstuff(파일 이름, 기준)) 데이터 반환 def gettuff(파일 이름, 기준): csv data=[]를 open(filename, "rb")으로 csvfile: datareader=csv.reader(csvfile) for row for datareader: if row[3]=="column header": data.append(row) elif len(data)<2 및 row[3]!=criterion: elif row[3]==criterion: data.append(row ) else: return data 

getstuff 함수에서 else 절을 사용하는 이유는 기준에 맞는 모든 요소가 csv 파일에 함께 나열되기 때문입니다. 시간을 절약하기 위해 통과했습니다.

내 질문은 다음과 같습니다.

  1. 어떻게 하면 얻을 수 있습니까? 더 큰 파일로 작업하려면?

  2. 더 빠르게 만들 수 있는 방법이 있습니까?

내 컴퓨터는 8GB RAM, 64비트 Windows 7 실행, 프로세서는 3.40GHz입니다(필요한 정보가 확실하지 않음).

Shop

Learn programming in R: courses

$

Best Python online courses for 2022

$

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Latest questions

NUMPYNUMPY

psycopg2: insert multiple rows with one query

12 answers

NUMPYNUMPY

How to convert Nonetype to int or string?

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Javascript Error: IPython is not defined in JupyterLab

12 answers

News


Wiki

Python OpenCV | cv2.putText () method

numpy.arctan2 () in Python

Python | os.path.realpath () method

Python OpenCV | cv2.circle () method

Python OpenCV cv2.cvtColor () method

Python - Move item to the end of the list

time.perf_counter () function in Python

Check if one list is a subset of another in Python

Python os.path.join () method