Course
Tutorial Pandas Ordenar Valores
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.
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
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
Cursos de Python
Course
Python intermedio
Course