Understand the idea
Sorting moves whole rows together. With multiple sort keys, the first sets the main order and the next resolves ties.
A small example
Sorting group ascending, score descending puts group A before B, then higher scores first within each group.
Follow the code
Apply the idea to the supplied table. Read from top to bottom; the final line displays the result.
filtered = df[df["price"] > 2.1]
filtered.sort_values("rating", ascending=False)What each part does
sort_values("rating")- sort by that column
ascending=False- largest first
filtered =- give an intermediate table a useful name
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, keep rows with price greater than 2.1; then sort them from highest to lowest rating.
- Use: sort_values().
Hint
Filter first, then sort the remaining whole rows; ascending=False puts the highest first.
Reveal solution
One way to do it. Keep any supplied setup in the editor and use this in the Your work section.
filtered = df[df["price"] > 2.1]
filtered.sort_values("rating", ascending=False)