"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment traiter efficacement des DataFrames volumineux dans Pandas : fragmentez-les !

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

Publié le 2024-11-08
Parcourir:271

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

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

Lorsque vous tentez 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

n = 200000  # Chunk row size
list_df = [df[i:i n] for i in range(0, df.shape[0], n)]

NumPy array_split

list_df = np.array_split(df, math.ceil(len(df) / n))

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

list_df[0]
list_df[1]
...

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

# Example: Concatenating by chunks
rejoined_df = pd.concat(list_df)

Découpage par AcctName

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

list_df = []

for n, g in df.groupby('AcctName'):
    list_df.append(g)
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3