Sobes.tech
Middle

Cum să eviți problema procesării fișierelor mari în Pandas care nu încap în memorie?

sobes.tech AI

Răspuns de la AI

Pentru procesarea fișierelor mari în Pandas, care nu încape în memorie, se pot folosi mai multe abordări:

  1. Citirea în bucăți (chunking) Utilizați parametrul chunksize în funcțiile de citire, precum pd.read_csv(), pentru a încărca datele în porțiuni și a le procesa separat:
import pandas as pd

chunksize = 10**6  # numărul de rânduri într-o bucată
for chunk in pd.read_csv('large_file.csv', chunksize=chunksize):
    # procesarea fiecărei bucăți separat
    process(chunk)
  1. Utilizarea bibliotecilor pentru date mari

    • Dask DataFrame — API compatibil cu Pandas, suportă calcule leneșe și procesare distribuită.
    • Vaex — pentru lucrul cu seturi mari de date fără a le încărca pe toate în memorie.
  2. Optimizarea tipurilor de date La citirea datelor, specificați explicit tipurile coloanelor pentru a reduce consumul de memorie (de exemplu, folosiți category pentru coloanele de șiruri cu valori repetate).

  3. Utilizarea bazelor de date sau formatelor cu suport pentru încărcare parțială Încărcați datele într-o bază de date (de exemplu, SQLite) și executați interogări pe porțiuni.

Prin combinarea citirii în bucăți și a optimizării tipurilor, se poate lucra eficient cu fișiere mari în Pandas.