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:
- Citirea în bucăți (chunking)
Utilizați parametrul
chunksizeîn funcțiile de citire, precumpd.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)
-
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.
-
Optimizarea tipurilor de date La citirea datelor, specificați explicit tipurile coloanelor pentru a reduce consumul de memorie (de exemplu, folosiți
categorypentru coloanele de șiruri cu valori repetate). -
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.