Method Chaining Problem
EasyUpdated: Aug 2, 2025
Practice on:
Problem
DataFrame animals
+-------------+--------+
| Column Name | Type |
+-------------+--------+
| name | object |
| species | object |
| age | int |
| weight | int |
+-------------+--------+
Write a solution to list the names of animals that weigh strictly more than 100 kilograms.
Return the animals sorted by weight in descending order.
The result format is in the following example.
Examples
Example 1
Input:
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 |
+----------+---------+-----+--------+
Output:
+----------+
| name |
+----------+
| Tatiana |
| Jonathan |
| Tommy |
| Alex |
+----------+
Explanation:
All animals weighing more than 100 should be included in the results table.
Tatiana's weight is 464, Jonathan's weight is 463, Tommy's weight is 349, and Alex's weight is 328.
The results should be sorted in descending order of weight.
In Pandas, method chaining enables us to perform operations on a DataFrame without breaking up each operation into a separate line or creating multiple temporary variables.
Can you complete this task in just one line of code using method chaining?
Solution
Method 1 – Pandas Method Chaining
Intuition
To filter and sort the animals efficiently, use pandas method chaining: filter rows where weight > 100, then sort by weight descending, and select the name column.
Approach
- Filter rows where
weight > 100. - Sort the filtered DataFrame by
weightin descending order. - Select the
namecolumn. - Return the result as a DataFrame or Series.
Code
Python (Pandas)
def method_chaining(animals: 'pd.DataFrame') -> 'pd.DataFrame':
return animals[animals['weight'] > 100].sort_values('weight', ascending=False)[['name']]
Complexity
- ⏰ Time complexity:
O(n log n), for sorting. - 🧺 Space complexity:
O(n), for the filtered and sorted DataFrame.