Comment convertir le tableau croisé dynamique Pandas en DataFrame
Vous pouvez utiliser la syntaxe suivante pour convertir un tableau croisé dynamique pandas en DataFrame pandas :
df = pivot_name.reset_index()
L’exemple suivant montre comment utiliser cette syntaxe dans la pratique.
Exemple : convertir un tableau croisé dynamique en DataFrame
Supposons que nous ayons le DataFrame pandas suivant :
import pandas as pd #create DataFrame df = pd.DataFrame({'team': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'], 'position': ['G', 'G', 'F', 'F', 'G', 'G', 'F', 'F'], 'points': [11, 8, 10, 6, 6, 5, 9, 12]}) #view DataFrame df team position points 0 A G 11 1 A G 8 2 A F 10 3 A F 6 4 B G 6 5 B G 5 6 B F 9 7 B F 12
Nous pouvons utiliser le code suivant pour créer un tableau croisé dynamique qui affiche la moyenne des points marqués par équipe et par position :
#create pivot table
df_pivot = pd.pivot_table(df, values='points', index='team', columns='position')
#view pivot table
df_pivot
position F G
team
A 8.0 9.5
B 10.5 5.5
Nous pouvons ensuite utiliser la fonction reset_index() pour convertir ce tableau croisé dynamique en DataFrame pandas :
#convert pivot table to DataFrame
df2 = df_pivot.reset_index()
#view DataFrame
df2
team F G
0 A 8.0 9.5
1 B 10.5 5.5
Le résultat est un DataFrame pandas avec deux lignes et trois colonnes.
On peut également utiliser la syntaxe suivante pour renommer les colonnes du DataFrame :
#convert pivot table to DataFrame
df2.columns = ['team', 'Forward_Pts', 'Guard_Pts']
#view updated DataFrame
df2
team Forward_Pts Guard_Pts
0 A 8.0 9.5
1 B 10.5 5.5
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres opérations courantes dans les pandas :
Pandas : Comment remodeler le DataFrame de long à large
Pandas : Comment remodeler le DataFrame de large à long
Pandas : comment regrouper et agréger sur plusieurs colonnes