Comment découper efficacement un grand DataFrame Pandas en morceaux par AcctName ?

Barbara Streisand
Libérer: 2024-10-25 22:04:28
original
370 Les gens l'ont consulté

How to Efficiently Slice a Large Pandas DataFrame into Chunks by AcctName?

Pandas - Découpez une grande trame de données en morceaux par AcctName

Dans l'analyse de données, travailler avec de grandes trames de données peut souvent entraîner des erreurs de mémoire. Pour résoudre ce problème, diviser le dataframe en morceaux plus petits et gérables peut s’avérer une stratégie précieuse. Cet article explique comment découper efficacement une grande trame de données en morceaux en fonction d'une colonne spécifique, en particulier AcctName.

Vous pouvez utiliser la compréhension de liste pour réaliser ce découpage :

<code class="python">import numpy as np
import pandas as pd

# Define the chunk size
n = 200,000

# Create a list to store the chunks
list_df = []

# Extract unique AcctName values
AcctNames = df['AcctName'].unique()

# Create a dictionary of dataframes for each AcctName
DataFrameDict = {acct: pd.DataFrame for acct in AcctNames}

# Split the dataframe into chunks by AcctName
for acct in DataFrameDict.keys():
    DataFrameDict[acct] = df[df['AcctName'] == acct]
    
    # Apply your function to the chunk
    trans_times_2(DataFrameDict[acct])
    list_df.append(DataFrameDict[acct])
    
# Rejoin the chunks into a single dataframe
rejoined_df = pd.concat(list_df)</code>
Copier après la connexion

Vous pouvez également exploitez la fonction array_split de NumPy :

<code class="python">list_df = np.array_split(df, math.ceil(len(df) / n))</code>
Copier après la connexion

Cette approche crée une liste de morceaux, auxquels vous pouvez accéder individuellement.

Pour réassembler le dataframe d'origine, utilisez simplement pd.concat :

<code class="python">rejoined_df = pd.concat(list_df)</code>
Copier après la connexion

En utilisant ces techniques, vous pouvez découper efficacement votre grande trame de données en morceaux plus petits, appliquer les transformations nécessaires, puis réassembler les données résultantes en une seule trame de données. Cette approche peut réduire considérablement l'utilisation de la mémoire et améliorer l'efficacité de vos opérations de traitement de données.

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!