¿Cómo ordenar un DataFrame de Pandas por índice?


91

Cuando hay un DataFrame como el siguiente:

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

¿Cómo puedo ordenar este marco de datos por índice con cada combinación de índice y valor de columna intacta?

Respuestas:


149

Los marcos de datos tienen un sort_indexmétodo que devuelve una copia por defecto. Pase inplace=Truepara operar en su lugar.

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

Me da:

     A
1    4
29   2
100  1
150  5
234  3

13

Ligeramente más compacto:

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

Nota:


9
.sort()docstring diceDEPRECATED: use DataFrame.sort_values()
endolito

1
@endolith Indeed .sort()ha quedado obsoleto desde entonces. El reemplazo sería el que .sort_index()usa Paul H en su respuesta, en cuyo caso la única diferencia entre nuestras respuestas es que no uso inplace=True.
Fantabolous
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.