Czytanie ogromnego pliku .csv

| | |

Obecnie próbuję odczytać dane z plików .csv w Pythonie 2.7 z maksymalnie 1 milionem wierszy i 200 kolumnami (pliki w zakresie od 100 MB do 1,6 GB). Mogę to zrobić (bardzo powoli) dla plików z poniżej 300 000 wierszy, ale gdy pójdę powyżej, dostaję błędy pamięci.Mój kod wygląda tak:

def getdata(nazwa pliku, kryteria): data=[] dla kryterium w kryteriach: dane. append(getstuff(nazwapliku, kryterium)) return data def getstuff(nazwapliku, kryterium): import csv data=[] with open(nazwapliku, "rb") jako csvfile: datareader=csv.reader(csvfile) dla wiersza w czytniku danych: if row[3]=="nagłówek kolumny": data.append(wiersz) elif len(dane)<2 i row[3]!=kryterium: pass elif row[3]==kryterium: data.append(wiersz ) else: return data 

Przyczyną klauzuli else w funkcji getstuff jest to, że wszystkie elementy pasujące do kryterium zostaną wymienione razem w pliku csv, więc zostawiam pętlę, gdy Pokonuję je, aby zaoszczędzić czas.

Moje pytania to:

  1. Jak mogę uzyskać to działa z większymi plikami?

  2. Czy jest jakiś sposób, aby to przyspieszyć?

Mój komputer ma 8 GB pamięci RAM, 64-bitowy system Windows 7, a procesor to 3,40 GHz (nie jestem pewien, jakich informacji potrzebujesz).

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