Understand the idea
Sorting moves the existing index labels with their rows. Resetting the index creates new labels 0, 1, 2, ….
A small example
After sorting, labels might be [2, 0, 1]. reset_index(drop=True) changes them to [0, 1, 2].
Follow the code
Apply the idea to the supplied table. Read from top to bottom; the final line displays the result.
df = df.sort_values("price").reset_index(drop=True)
dfWhat each part does
sort_values("price")- order smallest to largest
reset_index(drop=True)- a fresh consecutive index
.- chain the next operation on the returned table
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
- Sort df by price, smallest first, then reset its index without adding a column.
- Keep the changes in df and display it.
- Use: sort_values(), reset_index().
Hint
Sort whole rows before resetting their index; drop=True avoids adding the old labels as a column.
Reveal solution
One way to do it. Keep any supplied setup in the editor and use this in the Your work section.
df = df.sort_values("price").reset_index(drop=True)
df