Ordene por los valores a lo largo de cada eje.
- Parámetros
-
- por : str o lista de str
-
Nombre o lista de nombres para ordenar.
- eje : 0 o ‘índice’, 1 o ‘columnas’, 0 por defecto
-
Eje a ordenar.
- ascendente : bool o lista de bool, por defecto Verdadero
-
Clasifique de forma ascendente o descendente. Especifique la lista para múltiples órdenes de clasificación. Si se trata de una lista de bools, debe coincidir con la longitud del by.
- en su lugar : bool, por defecto Falso
-
Si es verdadero, realice la operación en el lugar.
- amable : ‘quicksort’, ‘mergesort’, ‘heapsort’, predeterminado ‘quicksort’
-
Elección del algoritmo de clasificación. Consulte también ndarray.np.sort para obtener más información. mergesort es el único algoritmo estable. Para DataFrames, esta opción solo se aplica al ordenar en una sola columna o etiqueta.
- na_position : ‘primero’, ‘último’, predeterminado ‘último’
-
Pone NaN al principio si primero; último pone NaN al final.
- ignore_index : bool, por defecto Falso
-
Si es Verdadero, el eje resultante se etiquetará como 0, 1,…, n – 1.
Nuevo en la versión 1.0.0.
- key : invocable, opcional
-
Aplica el key función a los valores antes de ordenar. Esto es similar al key argumento en el incorporado sorted()
función, con la notable diferencia de que esta key la función debe ser vectorizado. Debería esperar un Series
y devuelve una Serie con la misma forma que la entrada. Se aplicará a cada columna en por independientemente.
Nuevo en la versión 1.1.0.
- Devoluciones
-
- DataFrame o Ninguno
-
DataFrame con valores ordenados o Ninguno si inplace=True
.
Ver también
DataFrame.sort_index
-
Ordene un DataFrame por índice.
Series.sort_values
-
Método similar para una serie.
Ejemplos de
>>> df = pd.DataFrame(...'col1':['A','A','B', np.nan,'D','C'],...'col2':[2,1,9,8,7,4],...'col3':[0,1,9,4,2,3],...'col4':['a','B','c','D','e','F']...)>>> df
col1 col2 col3 col4
0 A 20 a
1 A 11 B
2 B 99 c
3 NaN 84 D
4 D 72 e
5 C 43 F
Ordenar por col1
>>> df.sort_values(by=['col1'])
col1 col2 col3 col4
0 A 20 a
1 A 11 B
2 B 99 c
5 C 43 F
4 D 72 e
3 NaN 84 D
Ordenar por varias columnas
>>> df.sort_values(by=['col1','col2'])
col1 col2 col3 col4
1 A 11 B
0 A 20 a
2 B 99 c
5 C 43 F
4 D 72 e
3 NaN 84 D
Orden descendiente
>>> df.sort_values(by='col1', ascending=False)
col1 col2 col3 col4
4 D 72 e
5 C 43 F
2 B 99 c
0 A 20 a
1 A 11 B
3 NaN 84 D
Poniendo a los NA primero
>>> df.sort_values(by='col1', ascending=False, na_position='first')
col1 col2 col3 col4
3 NaN 84 D
4 D 72 e
5 C 43 F
2 B 99 c
0 A 20 a
1 A 11 B
Clasificando con un key función
>>> df.sort_values(by='col4', key=lambda col: col.str.lower())
col1 col2 col3 col4
0 A 20 a
1 A 11 B
2 B 99 c
3 NaN 84 D
4 D 72 e
5 C 43 F
Orden natural con el key argumento, usando el natsort paquete.
>>> df = pd.DataFrame(..."time":['0hr','128hr','72hr','48hr','96hr'],..."value":[10,20,30,40,50]...)>>> df
time value
0 0hr 101 128hr 202 72hr 303 48hr 404 96hr 50>>>from natsort import index_natsorted
>>> df.sort_values(... by="time",... key=lambda x: np.argsort(index_natsorted(df["time"]))...)
time value
0 0hr 103 48hr 402 72hr 304 96hr 501 128hr 20