Los objetos DataFrame de Pandas cuentan con un par de métodos mediante los cuales se puede ordenar los registros en base a los valores de una o varias columnas y obtener como resultado los n primeros. Una funcionalidad con la que se puede simplificar algunos análisis. En concreto, el método df.nlargest() ordena de mayor a menor los registros de un conjunto de datos y devuelve los n primeros. Para obtener los valores ordenados de modo ascendente debería usarse el método df.nsmallest(). Veamos a continuación como usar estos métodos para conseguir los primeros registros ordenados de un DataFrame.
En esta ocasión vamos a emplear el conjunto de datos tips de Seaborn a modos de ejemplo. Un conjunto de datos que ya se han usado en otras ocasiones y en el que se pueden ver las propinas recibidas en un restaurante. Para importar el conjunto de datos solamente se tienen que importar la función load_dataset() y ejecutar el siguiente código.
from seaborn import load_dataset
tips = load_dataset("tips")
tips.head() total_bill tip sex smoker day time size 0 16.99 1.01 Female No Sun Dinner 2 1 10.34 1.66 Male No Sun Dinner 3 2 21.01 3.50 Male No Sun Dinner 3 3 23.68 3.31 Male No Sun Dinner 2 4 24.59 3.61 Female No Sun Dinner 4
Obteniendo un conjunto de datos con siete carteristas.
Ahora, si se desea obtener los 6 registros en los que los clientes hayan dejado una mayor propina se puede usar el método df.nlargest(). Siendo el primer parámetro el número de registros que se desea obtener como resultado y el segundo la columna usada para ordenar los datos. En el ejemplo planteado anteriormente esto sería 6 y ‘tip’ respectivamente. Lo que se hace en el siguiente código.
tips.nlargest(6, 'tip')
total_bill tip sex smoker day time size 170 50.81 10.00 Male Yes Sat Dinner 3 212 48.33 9.00 Male No Sat Dinner 4 23 39.42 7.58 Male No Sat Dinner 4 59 48.27 6.73 Male No Sat Dinner 4 141 34.30 6.70 Male No Thur Lunch 6 183 23.17 6.50 Male Yes Sun Dinner 4
Con lo que se obtiene el resultado deseado.
El método df.nlargest() también admite como segundo parámetro una lista con los nombres de las columnas. En tal caso ordenará los registros primero por la primera columna y posteriormente por la segunda. Por lo que, por ejemplo, se podría ordenar los registros primero en base al tamaño de la mesa y posteriormente en base a la propina. Algo que se puede conseguir con el siguiente código.
tips.nlargest(6, ['size', 'tip'])
total_bill tip sex smoker day time size 141 34.30 6.70 Male No Thur Lunch 6 143 27.05 5.00 Female No Thur Lunch 6 156 48.17 5.00 Male No Sun Dinner 6 125 29.80 4.20 Female No Thur Lunch 6 155 29.85 5.14 Female No Sun Dinner 5 142 41.19 5.00 Male No Thur Lunch 5
En donde se puede ver que en primer lugar aparecen los registros para la mesa 6 comensales y luego la de 5. Ordenando en segundo lugar los registros en base a la propina.
El método df.nlargest() ordena los registros de mayor a menor, esto es, en orden descendente. Si se desea ordenar los vales de menor a mayor, en orden asiente, se deberá recurrir al método df.nsmallest(). Un método que admite exactamente los mismos parámetros. Así, se puede repetir el ejemplo anterior, pero cambiar la forma de ordenar.
tips.nsmallest(6, ['size', 'tip'])
total_bill tip sex smoker day time size 67 3.07 1.00 Female Yes Sat Dinner 1 111 7.25 1.00 Female No Sat Dinner 1 82 10.07 1.83 Female No Thur Lunch 1 222 8.58 1.92 Male Yes Fri Lunch 1 92 5.75 1.00 Female Yes Fri Dinner 2 236 12.60 1.00 Male Yes Sat Dinner 2
En esta ocasión se ha visto una serie de métodos mediante los que es posible conseguir los primeros registros ordenados de un DataFrame Pandas. Unos métodos con los que se puede simplificar este tipo de análisis. Aunque esto también se puede conseguir ordenando manualmente los DataFrames, si se desea obtener solamente los primeros registros esta es una forma mucho más sencilla de conseguirlo.
Cuando un banco evalúa una solicitud de crédito necesita responder a una pregunta aparentemente simple:…
En el octavo aniversario de Analytics Lane seguimos ampliando nuestro laboratorio de aplicaciones interactivas y,…
Hoy, 2 de mayo de 2026, Analytics Lane cumple exactamente ocho años. Todo empezó con…
La nueva herramienta permite calcular la rentabilidad real de inversiones con múltiples aportaciones, retiradas y…
Analytics Lane continúa ampliando su laboratorio de utilidades para desarrolladores y analistas de datos con…
Analytics Lane continúa ampliando su laboratorio de herramientas para desarrolladores con el lanzamiento del Formateador…
This website uses cookies.