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é

Ajouter un commentaire

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