Comment contourner le problème de traitement de grands fichiers dans Pandas qui ne tiennent pas en mémoire?
sobes.tech IA
Réponse de l'IA
Pour traiter de gros fichiers dans Pandas qui ne tiennent pas en mémoire, plusieurs approches sont possibles:
- Lecture par morceaux (chunking)
Utilisez le paramètre
chunksizedans les fonctions de lecture, commepd.read_csv(), pour charger les données par portions et les traiter séparément:
import pandas as pd
chunksize = 10**6 # nombre de lignes par morceau
for chunk in pd.read_csv('large_file.csv', chunksize=chunksize):
# traitement de chaque morceau séparément
process(chunk)
-
Utilisation de bibliothèques pour gérer de grands ensembles de données
- Dask DataFrame — API compatible avec Pandas, mais supporte les calculs paresseux et le traitement distribué.
- Vaex — pour travailler avec de grands ensembles de données sans tout charger en mémoire.
-
Optimisation des types de données Lors de la lecture, spécifiez explicitement les types de colonnes pour réduire la consommation mémoire (par exemple, utiliser
categorypour les colonnes de chaînes avec des valeurs répétées). -
Utilisation de bases de données ou de formats supportant le chargement partiel Charger les données dans une base de données (par exemple, SQLite) et effectuer des requêtes par morceaux.
En combinant la lecture par morceaux et l'optimisation des types, il est possible de travailler efficacement avec de gros fichiers dans Pandas.