Maison  >  Article  >  développement back-end  >  Comment traiter efficacement des DataFrames volumineux dans Pandas : fragmentez-les !

Comment traiter efficacement des DataFrames volumineux dans Pandas : fragmentez-les !

Susan Sarandon
Susan Sarandonoriginal
2024-10-27 07:57:03498parcourir

How to Efficiently Process Large DataFrames in Pandas: Chunk It Up!

Pandas - Découper de grandes trames de données en morceaux

Lorsque vous essayez de traiter des trames de données surdimensionnées, un obstacle courant est la redoutable erreur de mémoire. Une solution efficace consiste à diviser la trame de données en morceaux plus petits et gérables. Cette stratégie réduit non seulement la consommation de mémoire, mais facilite également un traitement efficace.

Pour y parvenir, nous pouvons exploiter soit la compréhension de liste, soit la fonction NumPy array_split.

Compréhension de liste

<code class="python">n = 200000  # Chunk row size
list_df = [df[i:i+n] for i in range(0, df.shape[0], n)]</code>

NumPy array_split

<code class="python">list_df = np.array_split(df, math.ceil(len(df) / n))</code>

Des morceaux individuels peuvent ensuite être récupérés en utilisant :

<code class="python">list_df[0]
list_df[1]
...</code>

Pour réassembler les morceaux en une seule trame de données, utilisez pd.concat :

<code class="python"># Example: Concatenating by chunks
rejoined_df = pd.concat(list_df)</code>

Découpage par AcctName

Pour diviser la trame de données par valeurs AcctName, utilisez la méthode groupby :

<code class="python">list_df = []

for n, g in df.groupby('AcctName'):
    list_df.append(g)</code>

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