Understand the idea
Extreme-value selection ranks whole records by a numeric column, then returns the requested number.
A small example
For scores [4, 9, 6], nlargest(2, "score") returns the rows for 9 then 6.
Follow the code
Apply the idea to the supplied table. Read from top to bottom; the final line displays the result.
df.nlargest(2, "price")What each part does
df.nlargest(2, "price")- two highest-price rows
Other choices for later exercises
df.nsmallest(2, "price")- two lowest-price rows
Your inputs
The editable setup on the right creates df. Run executes the setup and your work from top to bottom.
| candy | flavour | price | rating | shelf |
|---|---|---|---|---|
| Gummy Bear | fruity | 1.2 | 4.1 | A |
| Choco Pop | chocolate | 2.1 | 4.6 | B |
| Mint Bite | mint | 1.5 | 3.8 | A |
| Berry Loop | fruity | 2.8 | 4.4 | B |
| Cocoa Cube | chocolate | 3.4 | 4.9 | A |
| Lemon Drop | fruity | 1.8 | 4 | B |
Your task · Follow
- Using df, return the 2 rows with the largest price, highest first.
- Use: nlargest().
Hint
The count and ranking column are separate arguments; rank whole rows rather than sorting one Series.
Reveal solution
One way to do it. Keep any supplied setup in the editor and use this in the Your work section.
df.nlargest(2, "price")Optional stretch
Find the two smallest instead. Compare with sort_values(...).head(2).