


Comment puis-je éviter les erreurs de mémoire lors de la création de grands DataFrames Pandas à partir de bases de données ?
Jan 13, 2025 am 09:31 AMGérer la mémoire lorsque vous travaillez avec des bases de données volumineuses et des DataFrames Pandas
Le traitement de bases de données volumineuses et leur chargement directement dans Pandas DataFrames entraînent souvent des erreurs de mémoire. Même si des requêtes plus petites peuvent fonctionner, le dépassement de la capacité de la mémoire système entraîne des problèmes. Heureusement, Pandas propose des solutions efficaces pour gérer de tels ensembles de données.
La méthode de l'itérateur Chunksize
Semblable au traitement de gros fichiers CSV, la fonction read_sql
de Pandas fournit les paramètres iterator
et chunksize
. Définir iterator=True
et spécifier un chunksize
permet de traiter la requête de base de données en portions gérables.
Exemple de code :
import pandas as pd sql = "SELECT * FROM MyTable" chunksize = 10000 # Adjust as needed for chunk in pd.read_sql_query(sql, engine, chunksize=chunksize): # Process each chunk individually
Cette approche itérative évite la surcharge de mémoire en traitant les données par incréments plus petits et contrôlés.
Stratégies supplémentaires pour gérer de très grands ensembles de données
Si la méthode chunksize n'est pas suffisante, envisagez ces alternatives :
- Requêtes SQL directes : Utilisez le pilote de votre base de données pour exécuter des requêtes et récupérer des données par lots plus petits directement à partir de la base de données.
- Requêtes par lots : Décomposez la requête globale en plusieurs requêtes plus petites et ciblées, en traitant leurs résultats par lots.
- Stockage de fichiers externe : Interrogez les données dans un format de fichier tel que CSV en morceaux, puis chargez le fichier dans Pandas si nécessaire. Cela évite de conserver l'ensemble des données en mémoire d'un seul coup.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Réduisez l'utilisation de la mémoire MySQL dans Docker

Comment modifier une table dans MySQL en utilisant l'instruction ALTER TABLE?

Comment résoudre le problème de MySQL ne peut pas ouvrir la bibliothèque partagée

Exécutez MySQL dans Linux (avec / sans conteneur Podman avec phpmyadmin)

Comment sécuriser MySQL contre les vulnérabilités communes (injection SQL, attaques par force brute)?

Exécuter plusieurs versions MySQL sur macOS: un guide étape par étape

Comment configurer le cryptage SSL / TLS pour les connexions MySQL?
