Maison >développement back-end >Tutoriel Python >Comment les pandas peuvent-ils gérer de grands ensembles de données dépassant la mémoire disponible ?

Comment les pandas peuvent-ils gérer de grands ensembles de données dépassant la mémoire disponible ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-10 19:49:11651parcourir

How Can Pandas Handle Large Datasets That Exceed Available Memory?

Flux de données volumineux utilisant Pandas

Lorsque vous traitez des ensembles de données trop volumineux pour tenir en mémoire, les flux de travail hors noyau sont essentiels. Dans ce contexte, nous explorons les meilleures pratiques pour gérer des données volumineuses à l'aide de pandas.

Pour gérer efficacement de grands ensembles de données, envisagez le flux de travail de bonnes pratiques suivant :

  1. Chargement de fichiers plats dans une structure de base de données sur disque :

    • Utilisez HDFStore pour stocker des fichiers volumineux ensembles de données sur le disque dans un format structuré.
    • Définissez des mappages de groupes pour organiser vos tables en fonction de regroupements de champs.
    • Ajoutez des données à chaque table en groupes, en vous assurant que les colonnes de données sont définies pour un sous-ensemble rapide de lignes.
  2. Interrogation de la base de données pour récupérer des données dans les données Pandas Structure :

    • Sélectionnez des regroupements de champs spécifiques pour récupérer efficacement les données.
    • Utilisez une fonction pour sélectionner et concaténer de manière transparente les données de plusieurs tables.
    • Créer des index sur les colonnes de données pour un sous-ensemble de lignes amélioré performances.
  3. Mise à jour de la base de données après avoir manipulé des pièces dans Pandas :

    • Créez de nouveaux groupes pour stocker les nouvelles colonnes créées à partir de manipulations de données.
    • Assurez-vous que les data_columns sont correctement définies dans les nouveaux groupes.
    • Activez la compression pour minimiser l'espace de stockage.

Exemple :

import pandas as pd

# Group mappings for logical field grouping
group_map = {
    "A": {"fields": ["field_1", "field_2"], "dc": ["field_1"]},
    "B": {"fields": ["field_10"], "dc": ["field_10"]},
    ...
}

# Iterate over flat files and append data to tables
for file in files:
    chunk = pd.read_table(file, chunksize=50000)
    for group, info in group_map.items():
        frame = chunk.reindex(columns=info["fields"], copy=False)
        store.append(group, frame, data_columns=info["dc"])

# Retrieve specific columns
selected_columns = ["field_1", "field_10"]
group_1 = "A"
group_2 = "B"
data = store.select_as_multiple([group_1, group_2], columns=selected_columns)

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!

Déclaration:
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