Pandas : Comment trier les valeurs dans un tableau croisé
Vous pouvez utiliser les méthodes suivantes pour trier les lignes ou les colonnes dans un tableau croisé Pandas :
Méthode 1 : Trier le tableau croisé par valeurs de ligne
pd.crosstab(df.col1, df.col2).sort_index(axis=0, ascending=False)
Méthode 2 : Trier le tableau croisé par valeurs de colonne
pd.crosstab(df.col1, df.col2).sort_index(axis=1, ascending=False)
Les exemples suivants montrent comment utiliser chacune de ces méthodes en pratique avec le tableau croisé pandas suivant :
import pandas as pd #create DataFrame df = pd.DataFrame({'team': ['A', 'A', 'A', 'B', 'B', 'B', 'B', 'C', 'C', 'C', 'C'], 'position':['G', 'G', 'F', 'G', 'F', 'F', 'F', 'G', 'G', 'F', 'F'], 'points': [22, 25, 24, 39, 34, 20, 18, 17, 20, 19, 22]}) #create crosstab to display count of players by team and position my_crosstab = pd.crosstab(df.team, df.position) #view crosstab print(my_crosstab) position F G team A 1 2 B 3 1 C 2 2
Exemple 1 : Trier le tableau croisé par valeurs de ligne
Nous pouvons utiliser la syntaxe suivante pour trier les lignes du tableau croisé en fonction des valeurs de la colonne d’équipe par ordre décroissant (de Z à A) :
#create crosstab with rows sorted from Z to A pd.crosstab(df.team, df.position).sort_index(axis=0, ascending=False) position F G team C 2 2 B 3 1 A 1 2
Notez que les lignes du tableau croisé sont désormais triées en fonction des valeurs d’équipe dans l’ordre alphabétique inverse.
Remarque : La fonction crosstab() affiche par défaut les valeurs des lignes du tableau croisé par ordre alphabétique (de A à Z).
Exemple 2 : Trier le tableau croisé par valeurs de colonne
Nous pouvons utiliser la syntaxe suivante pour trier les colonnes du tableau croisé en fonction des valeurs de la colonne équipe par ordre décroissant (de Z à A) :
#create crosstab with columns sorted from Z to A pd.crosstab(df.team, df.position).sort_index(axis=1, ascending=False) position G F team A 2 1 B 1 3 C 2 2
Notez que les colonnes du tableau croisé sont désormais triées en fonction des valeurs de position dans l’ordre alphabétique inverse.
Remarque : La fonction crosstab() affiche par défaut les valeurs des colonnes du tableau croisé par ordre alphabétique (de A à Z).
Remarque : Vous pouvez trouver la documentation complète de la fonction pandas crosstab() ici .
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans les pandas :
Pandas : Comment créer un tableau croisé avec des pourcentages
Pandas : Comment utiliser aggfunc dans la fonction crosstab()
Pandas : Comment créer un tracé à barres à partir d’un tableau croisé