Maison  >  Article  >  développement back-end  >  Comment diviser un grand Pandas DataFrame en parties égales lorsque le nombre de lignes n'est pas divisible par le nombre de parties ?

Comment diviser un grand Pandas DataFrame en parties égales lorsque le nombre de lignes n'est pas divisible par le nombre de parties ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-28 03:29:30846parcourir

How do I split a large Pandas DataFrame into equal parts when the number of rows is not divisible by the number of parts?

Diviser les grandes trames de données Pandas en parties égales

Lorsque vous travaillez avec de grands ensembles de données dans Pandas, il est souvent nécessaire de les diviser en morceaux plus petits pour traitement ou analyse. Une méthode couramment utilisée pour diviser des trames de données est np.split, qui distribue les données dans un nombre égal de tableaux le long d'un axe spécifié. Cependant, tenter de diviser un nombre impair de lignes à l'aide de cette méthode peut entraîner une ValueError.

Approche alternative utilisant np.array_split

Pour surmonter ce problème, envisagez d'utiliser np.array_split à la place. Cette fonction permet une division inégale de la trame de données, comme démontré dans le code Python suivant :

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

df = pd.DataFrame({'A' : ['foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'foo'],
                    'B' : ['one', 'one', 'two', 'three', 'two', 'two', 'one', 'three'],
                    'C' : np.random.randn(8), 'D' : np.random.randn(8)})

print(df)

split_data = np.array_split(df, 4)

for part in split_data:
    print(part)</code>

La sortie de ce code montre la trame de données divisée en quatre parties égales :

     A      B         C         D
0  foo    one -0.174067 -0.608579
1  bar    one -0.860386 -1.210518
2  foo    two  0.614102  1.689837
3  bar  three -0.284792 -1.071160
4  foo    two  0.843610  0.803712
5  bar    two -1.514722  0.870861
6  foo    one  0.131529 -0.968151
7  foo  three -1.002946 -0.257468

     A      B         C         D
0  foo    one -0.174067 -0.608579
1  bar    one -0.860386 -1.210518
2  foo    two  0.614102  1.689837
3  bar  three -0.284792 -1.071160
4  foo    two  0.843610  0.803712
5  bar    two -1.514722  0.870861

     A      B         C         D
0  foo    one  0.131529 -0.968151
1  foo  three -1.002946 -0.257468

     A      B         C         D
0  bar    one -0.860386 -1.210518
1  foo    two  0.614102  1.689837
2  bar  three -0.284792 -1.071160
3  foo    two  0.843610  0.803712
4  bar    two -1.514722  0.870861

L'utilisation de np.array_split garantit une répartition uniforme des lignes du dataframe, quel que soit leur nombre total. Cela fournit une méthode pratique pour diviser de grands ensembles de données en morceaux gérables pour un traitement ultérieur.

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