Como classificar um DataFrame Pandas por índice?

91

Quando há um DataFrame como o seguinte:

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

Como posso classificar esse dataframe por índice com cada combinação de índice e valor de coluna intacta?

Midtownguru
fonte

Respostas:

150

Dataframes têm um sort_indexmétodo que retorna uma cópia por padrão. Passe inplace=Truepara operar no local.

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())

Dá-me:

     A
1    4
29   2
100  1
150  5
234  3
Paul H
fonte
13

Um pouco mais compacto:

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

Nota:

fantabolous
fonte
9
.sort()docstring dizDEPRECATED: use DataFrame.sort_values()
endolith
1
@endolith De fato .sort(), desde então, está obsoleto. A substituição seria .sort_index()como Paul H usa em sua resposta, caso em que a única diferença entre nossas respostas é eu não uso inplace=True.
fantabolous