Maison >développement back-end >Tutoriel Python >Voici quelques options de titre, chacune mettant en évidence un aspect différent de la solution : Se concentrer sur le problème : * Comment traiter de grandes DataFrames Pandas sans erreurs de mémoire ? * Erreur de mémoire dans Pandas :
Problème :
Tentatives de transmission d'une grande trame de données à travers un la fonction entraîne une erreur de mémoire, ce qui suggère que la taille de la trame de données est excessive. L'objectif est de :
Solution :
Découpage par nombre de lignes
Le fractionnement selon un nombre de lignes fixe peut être effectué à l'aide d'une liste compréhension ou array_split de numpy :
<code class="python">n = 200000 # Chunk row size list_df = [df[i:i + n] for i in range(0, df.shape[0], n)]</code>
<code class="python">list_df = np.array_split(df, math.ceil(len(df) / n))</code>
Découpage par AcctName
Pour découper en fonction d'une valeur de colonne spécifique, telle que AcctName :
<code class="python">list_df = [] for n, g in df.groupby('AcctName'): list_df.append(g)</code>
Consolidation
Une fois le grand dataframe découpé, il peut être réassemblé à l'aide de pd.concat :
<code class="python">consolidated_df = pd.concat(list_df)</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!