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