Maison > développement back-end > Tutoriel Python > Comment puis-je gérer efficacement les grands DataFrames dans Pandas pour éviter les erreurs de mémoire ?

Comment puis-je gérer efficacement les grands DataFrames dans Pandas pour éviter les erreurs de mémoire ?

Susan Sarandon
Libérer: 2024-10-26 01:24:28
original
393 Les gens l'ont consulté

How can I effectively handle large DataFrames in Pandas to avoid memory errors?

Pandas - Découpez un grand DataFrame en morceaux

Les grands DataFrames peuvent être difficiles à utiliser, en particulier lorsqu'ils sont transmis via des fonctions. Des erreurs de mémoire peuvent survenir lorsque vous travaillez avec des DataFrames volumineux, et les découper en morceaux plus petits peut aider à atténuer ce problème.

Pour découper un DataFrame en morceaux plus petits :

  1. Compréhension de la liste : Utilisez la compréhension de liste pour créer une liste de DataFrames plus petits.
<code class="python">n = 200000  # chunk row size
list_df = [df[i:i+n] for i in range(0, df.shape[0], n)]</code>
Copier après la connexion
  1. Numpy array_split : Tirez parti de la fonction array_split de numpy pour diviser le DataFrame.
<code class="python">list_df = np.array_split(df, math.ceil(len(df)/n))</code>
Copier après la connexion

Pour accéder aux morceaux, indexez simplement la liste :

<code class="python">list_df[0]
list_df[1]
etc...</code>
Copier après la connexion

En divisant le DataFrame par AcctName :

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

for n, g in df.groupby('AcctName'):
    list_df.append(g)</code>
Copier après la connexion

Une fois le DataFrame divisé en morceaux, il peut être transmis via une fonction puis réassemblé en un seul DataFrame à l'aide de pd.concat.

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 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