Exemple de comment trier une dataframe en fonction d'une colonne donnée sous pandas en python:
Créer une dataframe
Créons par exemple la dataframe suivante
import pandas as pddata = {'Name':['Ben','Anna','Zoe','Tom','John','Steve','Becky','Bob'],'Age':[20,27,20,43,30,20,22,21]}df = pd.DataFrame(data)df
ce qui donne
Name Age0 Ben 201 Anna 272 Zoe 203 Tom 434 John 305 Steve 206 Becky 227 Bob 21
Trier la dataframe en fonction de l'age
Trier la dataframe en fonction de l'age, une solution est d'utiliser la fonction sort_values, exemple:
df.sort_values(by=['Age'])
ce qui donne
Name Age0 Ben 202 Zoe 205 Steve 207 Bob 216 Becky 221 Anna 274 John 303 Tom 43
Attention ici la dataframe n'a pas été modifiée, pour cela il faut utiliser l'option inplace=True:
df.sort_values(by=['Age'], inplace=True)
donne
Name Age0 Ben 201 Anna 272 Zoe 203 Tom 434 John 305 Steve 206 Becky 227 Bob 21
Note: Si on veut uniquement la colonne 'Age', on peut aussi faire comme ceci:
df['Age'].sort_values()
donne
0 202 205 207 216 221 274 303 43
Trier la dataframe en fonction du nom
On peut aussi trier la dataframe en fonction du nom:
df.sort_values(by=['Name'])print(df.sort_values(by=['Name']))
donne ici
Name Age1 Anna 276 Becky 220 Ben 207 Bob 214 John 305 Steve 203 Tom 432 Zoe 20
Trier la dataframe en ordre décroissant
Par défaut les données sont triées par ordre croissant. Pour trier la dataframe en ordre décroissant on peut. utiliser l'option ascending=False:
df.sort_values(by=['Age'],ascending=False)print(df.sort_values(by=['Age'],ascending=False))
donne
Name Age3 Tom 434 John 301 Anna 276 Becky 227 Bob 210 Ben 202 Zoe 205 Steve 20
Trier la dataframe en fonction de deux colonnes ( l'age et le nom)
Trier la dataframe en fonction de l'age
df.sort_values(by=['Age'])
donne
Name Age0 Ben 202 Zoe 205 Steve 207 Bob 216 Becky 221 Anna 274 John 303 Tom 43
Trier la dataframe en fonction de l'age et du nom:
df.sort_values(by=['Age','Name'])print(df.sort_values(by=['Age','Name']))
donne
Name Age0 Ben 205 Steve 202 Zoe 207 Bob 216 Becky 221 Anna 274 John 303 Tom 43
