Comment répliquer des lignes dans un DataFrame Pandas



Vous pouvez utiliser la syntaxe de base suivante pour répliquer chaque ligne d’un DataFrame pandas un certain nombre de fois :

#replicate each row 3 times
df_new = pd.DataFrame(np.repeat(df.values, 3, axis=0))

Le nombre dans le deuxième argument de la fonction NumPy repeat() spécifie le nombre de fois où répliquer chaque ligne.

L’exemple suivant montre comment utiliser cette syntaxe dans la pratique.

Exemple : répliquer des lignes dans un DataFrame Pandas

Supposons que nous ayons le DataFrame pandas suivant qui contient des informations sur divers joueurs de basket-ball :

import pandas as pd

#create dataFrame
df = pd.DataFrame({'team': ['A', 'B', 'C', 'D', 'E', 'F'],
                   'points': [18, 20, 19, 14, 14, 11],
                   'assists': [5, 7, 7, 9, 12, 5],
                   'rebounds': [11, 8, 10, 6, 6, 5]})

#view DataFrame
print(df)

  team  points  assists  rebounds
0    A      18        5        11
1    B      20        7         8
2    C      19        7        10
3    D      14        9         6
4    E      14       12         6
5    F      11        5         5

Nous pouvons utiliser la syntaxe suivante pour répliquer chaque ligne du DataFrame trois fois :

import numpy as np

#define new DataFrame as original DataFrame with each row repeated 3 times
df_new = pd.DataFrame(np.repeat(df.values, 3, axis=0))

#assign column names of original DataFrame to new DataFrame
df_new.columns = df.columns

#view new DataFrame
print(df_new)

   team points assists rebounds
0     A     18       5       11
1     A     18       5       11
2     A     18       5       11
3     B     20       7        8
4     B     20       7        8
5     B     20       7        8
6     C     19       7       10
7     C     19       7       10
8     C     19       7       10
9     D     14       9        6
10    D     14       9        6
11    D     14       9        6
12    E     14      12        6
13    E     14      12        6
14    E     14      12        6
15    F     11       5        5
16    F     11       5        5
17    F     11       5        5

Le nouveau DataFrame contient chacune des lignes du DataFrame d’origine, répliquées trois fois chacune.

Notez que les valeurs d’index ont également été réinitialisées.

Les valeurs de l’index vont désormais de 0 à 17.

Remarque : Vous pouvez trouver la documentation complète de la fonction NumPy repeat() ici .

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans les pandas :

Pandas : comment trouver la différence entre deux colonnes
Pandas : comment trouver la différence entre deux lignes
Pandas : comment trier les colonnes par nom

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *