Saltar al contenido principal
InicioTutorialesPython

Tutorial Pandas Ordenar Valores

Aprende a ordenar filas de datos en un Dataframe de pandas utilizando la función .sort_values().
Actualizado 11 sept 2024  · 4 min leer

Encontrar datos interesantes en un Marco de datos suele ser más fácil si cambias el orden de las filas. Puedes ordenar las filas pasando un nombre de columna a .sort_values().

En los casos en que las filas tengan el mismo valor (esto es habitual si ordenas sobre una variable categórica), puedes romper los empates ordenando sobre otra columna. Puedes ordenar varias columnas de esta forma pasando una lista de nombres de columnas.

nombres de columna

Modificar el orden de las columnas

Puedes cambiar el orden de las filas ordenándolas de forma que los datos más interesantes estén en la parte superior del marco de datos.

Por ejemplo, si aplicamos sort_values() a la columna weight_kg del marco de datos perros, obtendremos el perro más ligero en la parte superior, Stella la Chihuahua, y el perro más pesado en la parte inferior, Bernie el San Bernardo.

dogs.sort_values("weight_kg")
      name        breed  color  height_cm  weight_kg date_of_birth
5   Stella    Chihuahua    Tan         18          2    2015-04-20
3   Cooper    Schnauzer   Gray         49         17    2011-12-11
0    Bella     Labrador  Brown         56         24    2013-07-01
1  Charlie       Poodle  Black         43         24    2016-09-16
2     Lucy    Chow Chow  Brown         46         24    2014-08-25
4      Max     Labrador  Black         59         29    2017-01-20
6   Bernie  St. Bernard  White         77         74    2018-02-27

Si estableces el argumento ascending en Falso, los datos se ordenarán al revés, del perro más pesado al más ligero.

dogs.sort_values("weight_kg", ascending=False)
      name        breed  color  height_cm  weight_kg date_of_birth
6   Bernie  St. Bernard  White         77         74    2018-02-27
4      Max     Labrador  Black         59         29    2017-01-20
0    Bella     Labrador  Brown         56         24    2013-07-01
1  Charlie       Poodle  Black         43         24    2016-09-16
2     Lucy    Chow Chow  Brown         46         24    2014-08-25
3   Cooper    Schnauzer   Gray         49         17    2011-12-11
5   Stella    Chihuahua    Tan         18          2    2015-04-20

Ordenar por múltiples variables

Podemos ordenar por múltiples variables pasando una lista de nombres de columnas a sort_values. Aquí, ordenamos primero por peso y luego por altura. Ahora, Charlie, Lucy y Bella están ordenados del más bajo al más alto, aunque todos pesan lo mismo.

dogs.sort_values(["weight_kg", "height_cm"])
      name        breed  color  height_cm  weight_kg date_of_birth
5   Stella    Chihuahua    Tan         18          2    2015-04-20
3   Cooper    Schnauzer   Gray         49         17    2011-12-11
1  Charlie       Poodle  Black         43         24    2016-09-16
2     Lucy    Chow Chow  Brown         46         24    2014-08-25
0    Bella     Labrador  Brown         56         24    2013-07-01
4      Max     Labrador  Black         59         29    2017-01-20
6   Bernie  St. Bernard  White         77         74    2018-02-27

Para cambiar la dirección en la que se ordenan los valores, pasa una lista al argumento ascendente para especificar en qué dirección se debe ordenar cada variable. Ahora, Charlie, Lucy y Bella están ordenados del más alto al más bajo.

dogs.sort_values(["weight_kg", "height_cm"], ascending=[True, False])
      name        breed  color  height_cm  weight_kg date_of_birth
5   Stella    Chihuahua    Tan         18          2    2015-04-20
3   Cooper    Schnauzer   Gray         49         17    2011-12-11
0    Bella     Labrador  Brown         56         24    2013-07-01
2     Lucy    Chow Chow  Brown         46         24    2014-08-25
1  Charlie       Poodle  Black         43         24    2016-09-16
4      Max     Labrador  Black         59         29    2017-01-20
6   Bernie  St. Bernard  White         77         74    2018-02-27

Ejemplo interactivo

En el siguiente ejemplo, ordenarás homelessness por el número de personas sin hogar, de menor a mayor, y lo guardarás como homelessness_ind. Por último, imprimirás la cabeza del DataFrame ordenado.

# Sort homelessness by individuals
homelessness_ind = homelessness.sort_values("individuals")

# Print the top few rows
print(homelessness_ind.head())

Cuando ejecutamos el código anterior, se obtiene el siguiente resultado:

                region         state  individuals  family_members  state_pop
50            Mountain       Wyoming        434.0           205.0     577601
34  West North Central  North Dakota        467.0            75.0     758080
7       South Atlantic      Delaware        708.0           374.0     965479
39         New England  Rhode Island        747.0           354.0    1058287
45         New England       Vermont        780.0           511.0     624358

Pruébalo tú mismo.

Para saber más sobre cómo ordenar y subconjuntar los datos, consulta este vídeo de nuestro curso Manipulación de datos con pandas.

Este contenido está tomado del curso Manipulación de Datos con pandas de DataCamp, impartido por Maggie Matsui y Richie Cotton.

Tenemos muchos otros tutoriales útiles sobre pandas, entre ellos

Temas

Cursos de Python

Certificación disponible

Course

Introducción a Python

4 hr
5.5M
Domina los fundamentos del análisis de datos con Python en sólo cuatro horas. Este curso online introducirá la interfaz de Python y explorará paquetes populares.
See DetailsRight Arrow
Start Course
Ver másRight Arrow