Maison > base de données > tutoriel mysql > Comment puis-je éviter les erreurs de mémoire lors de la création de grands DataFrames Pandas à partir de bases de données ?

Comment puis-je éviter les erreurs de mémoire lors de la création de grands DataFrames Pandas à partir de bases de données ?

Barbara Streisand
Libérer: 2025-01-13 09:31:12
original
308 Les gens l'ont consulté

How Can I Avoid Memory Errors When Creating Large Pandas DataFrames from Databases?

Gé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 :

<code class="language-python">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</code>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal