Comment convertir la sortie Pandas GroupBy en DataFrame
Ce tutoriel explique comment convertir la sortie d’un pandas GroupBy en un pandas DataFrame.
Exemple : convertir la sortie Pandas GroupBy en DataFrame
Supposons que nous ayons le DataFrame pandas suivant qui montre les points marqués par les basketteurs de différentes équipes :
import pandas as pd
#create DataFrame
df = pd.DataFrame({'team': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
'position': ['G', 'G', 'F', 'C', 'G', 'F', 'F', 'F'],
'points': [5, 7, 7, 10, 12, 22, 15, 10]})
#view DataFrame
print(df)
team position points
0 A G 5
1 A G 7
2 A F 7
3 A C 10
4 B G 12
5 B F 22
6 B F 15
7 B F 10
On peut utiliser la syntaxe suivante pour compter le nombre de joueurs, regroupés par équipe et poste :
#count number of players, grouped by team and position
group = df.groupby(['team', 'position']).size()
#view output
print(group)
team position
A C 1
F 1
G 2
B F 3
G 1
dtype: int64
À partir de la sortie, nous pouvons voir le nombre total de joueurs, regroupés par équipe et position .
Cependant, supposons que nous souhaitions que notre sortie affiche le nom de l’équipe dans chaque ligne comme ceci :
team position count
0 A C 1
1 A F 1
2 A G 2
3 B F 3
4 B G 1
Pour obtenir ce résultat, nous pouvons simplement utiliser reset_index() lors de l’exécution de GroupBy :
#count number of players, grouped by team and position
df_out = df.groupby(['team', 'position']).size().reset_index(name='count')
#view output
print(df_out)
team position count
0 A C 1
1 A F 1
2 A G 2
3 B F 3
4 B G 1
La sortie apparaît maintenant dans le format souhaité.
Notez que l’argument name dans reset_index() spécifie le nom de la nouvelle colonne produite par GroupBy.
Nous pouvons également confirmer que le résultat est bien un DataFrame pandas :
#display object type of df_out
type(df_out)
pandas.core.frame.DataFrame
Remarque : Vous pouvez trouver la documentation complète de l’opération GroupBy dans pandas ici .
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres opérations courantes dans les pandas :
Pandas : comment calculer la somme cumulée par groupe
Pandas : comment compter les valeurs uniques par groupe
Pandas : comment calculer la corrélation par groupe