Middle
Come aggirare il problema di elaborare grandi file in Pandas che non entrano in memoria?
sobes.tech AI
Risposta dell'AI
Per elaborare grandi file in Pandas che non entrano in memoria, è possibile utilizzare diversi approcci:
- Lettura a blocchi (chunking)
Utilizzare il parametro
chunksizenelle funzioni di lettura, comepd.read_csv(), per caricare i dati a blocchi e processarli separatamente:
import pandas as pd
chunksize = 10**6 # numero di righe per blocco
for chunk in pd.read_csv('large_file.csv', chunksize=chunksize):
# elaborazione di ogni blocco separatamente
process(chunk)
-
Utilizzo di librerie per grandi dati
- Dask DataFrame — API compatibile con Pandas, supporta calcoli pigri e elaborazione distribuita.
- Vaex — permette di lavorare con grandi set di dati senza caricarli tutti in memoria.
-
Ottimizzazione dei tipi di dati Durante la lettura, specificare esplicitamente i tipi di colonna per ridurre il consumo di memoria (ad esempio, usare
categoryper colonne di stringhe con valori ripetuti). -
Utilizzo di database o formati con supporto di caricamento parziale Caricare i dati in un database (ad esempio, SQLite) ed eseguire query a blocchi.
Combinando la lettura a blocchi e l'ottimizzazione dei tipi, è possibile lavorare efficacemente con grandi file in Pandas.