Comment trier un Pandas DataFrame par index?


91

Lorsqu'il existe un DataFrame comme celui-ci:

import pandas as pd
df = pd.DataFrame([1, 1, 1, 1, 1], index=[100, 29, 234, 1, 150], columns=['A'])

Comment puis-je trier cette trame de données par index avec chaque combinaison d'index et de valeur de colonne intacte?

Réponses:


149

Les dataframes ont une sort_indexméthode qui renvoie une copie par défaut. Passez inplace=Trueà fonctionner en place.

import pandas as pd
df = pd.DataFrame([1, 2, 3, 4, 5], index=[100, 29, 234, 1, 150], columns=['A'])
df.sort_index(inplace=True)
print(df.to_string())

Donne moi:

     A
1    4
29   2
100  1
150  5
234  3

13

Légèrement plus compact:

df = pd.DataFrame([1, 2, 3, 4, 5], index=[100, 29, 234, 1, 150], columns=['A'])
df = df.sort_index()
print(df)

Remarque:


9
.sort()docstring ditDEPRECATED: use DataFrame.sort_values()
endolith

1
@endolith Indeed .sort()est depuis obsolète. Le remplacement serait .sort_index()comme Paul H l'utilise dans sa réponse, auquel cas la seule différence entre nos réponses est que je ne l'utilise pas inplace=True.
fantastique
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.