Understand the idea
groupby gathers rows with the same category. Select the numeric column, then reduce each group to one summary value.
A small example
For A: [2, 6] and B: [9], group means are A: 4 and B: 9; group totals are A: 8 and B: 9.
Follow the code
Apply the idea to the supplied table. Read from top to bottom; the final line displays the result.
df.groupby("flavour")["price"].agg("mean")What each part does
groupby("flavour")- gather equal labels
["price"]- choose the measured column
agg("mean")- one average for each group
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 mean price for each flavour category as a Series.
- Use: groupby(), agg().
Hint
Group by the category, select the measurement, then aggregate it.
Reveal solution
One way to do it. Keep any supplied setup in the editor and use this in the Your work section.
df.groupby("flavour")["price"].agg("mean")