> Modules non standards > Pandas > Tri de Dataframes
Tri de Dataframes
Tri selon les étiquettes de lignes ou de colonnes :
df.sort_index(axis = 0, ascending = False) : renvoie un dataframe avec les lignes triées par ordre décroissant des labels (le défaut est ascendant) :
A B C D
a3 5.3 9 1.5 15
a2 2.7 10 5.4 7
a1 1.1 2 3.3 4
df.sort_index(axis = 1, ascending = False) : renvoie un dataframe avec les colonnes triées par ordre décroissant des labels :
D C B A
a1 4 3.3 2 1.1
a2 7 5.4 10 2.7
a3 15 1.5 9 5.3
Tri selon les valeurs :
df.sort_values(by = 'C') : renvoie un dataframe avec les lignes triées de telle sorte que la colonne 'C' soit dans l'ordre croissant :
A B C D
a3 5.3 9 1.5 15
a1 1.1 2 3.3 4
a2 2.7 10 5.4 7
df.sort_values(by = ['C', 'A']) : tri selon 2 colonnes successives, d'abord C, puis A.
df.sort_values(by = 'C', ascending = False) : tri par ordre décroissant.
df.sort_values(by = ['C', 'A'], ascending = [True, False]) : tri selon 2 clefs, la première par ordre croissant et la 2ème par ordre décroissant.
df.sort_values(by = 'C', inplace = True) : ne renvoie rien et fait le tri en place.
df.sort_values(..., kind = 'mergesort') : utilise mergesort qui est un algorithme de tri stable (ne change pas l'ordre initial si valeurs de clefs identiques). Le défaut est quicksort qui n'est pas stable.
df.sort_values(by = ['a'], ..., key = myFunc) : applique myFunc à la series 'a' et retourne une series de la même taille qui donne la clef utilisée pour le tri (myFunc doit prendre une series et renvoyer une series).
df.sort_index(axis = 0, ..., key = myFunc) : applique myFunc à l'index et retourne un index qui est utilisé pour le tri.
Pour trier sur une colonne calculée : df = df.assign(newCol = df['A'] + df['C']).sort_values('newCol').drop('newCol', axis = 1)
Copyright python-simple.com
programmer en python, tutoriel python, graphes en python, Aymeric Duclert