Encadenamiento de m茅todos

Escribe una soluci贸n para listar los animales cuyo peso es estrictamente mayor a 100 kilogramos. Regresa los nombres de los animales ordenados por peso en 贸rden descendente.

#pandas#advanced-techniques#introduction-to-pandas
DataFrame animals
+-------------+--------+
| Column Name | Type   |
+-------------+--------+
| name        | object |
| species     | object |
| age         | int    |
| weight      | int    |
+-------------+--------+

El formato del resultado se muestra en el siguiente ejemplo.

Ejemplo 1:

Entrada:

DataFrame animals:
+----------+---------+-----+--------+
| name     | species | age | weight |
+----------+---------+-----+--------+
| Tatiana  | Snake   | 98  | 464    |
| Khaled   | Giraffe | 50  | 41     |
| Alex     | Leopard | 6   | 328    |
| Jonathan | Monkey  | 45  | 463    |
| Stefan   | Bear    | 100 | 50     |
| Tommy    | Panda   | 26  | 349    |
+----------+---------+-----+--------+

Salida:

+----------+
| name     |
+----------+
| Tatiana  |
| Jonathan |
| Tommy    |
| Alex     |
+----------+

Explicaci贸n: 
- Todos los animales que pesan mas de 100 kilogramos deben ser incluidos en la tabla de resultado.
- El peso de Tatiana es 464, el peso de Jonathan es 463, el peso de Tommy es 349, y el de Alex es 328.
- Los resultados deben ordenarse en orden de peso descendente.

En Pandas, encadenar m茅todos nos permite realizar operaciones en un DataFrame sin separar cada operaci贸n en varias l铆neas o crear variables temporales.

驴Puedes completar esta tarea con solo una l铆nea de c贸digo usando el encadenamiento de m茅todos?

Soluci贸n

import pandas as pd


def findHeavyAnimals(animals: pd.DataFrame) -> pd.DataFrame:
    heavy_animals = animals.loc[
        animals['weight'].gt(100),
        ['name', 'weight']
    ]
    heavy_animals.sort_values(by='weight',
                              ascending=False,
                              inplace=True)
    return heavy_animals[['name']]

slackmart blog 漏 2024