Understand the idea
A crosstab counts pairs of category labels. Each cell says how many rows have that exact combination.
A small example
If two records are Cat + A and one is Dog + A, the A column contains Cat: 2 and Dog: 1.
Follow the code
Apply the idea to the supplied table. Read from top to bottom; the final line displays the result.
pd.crosstab(df["flavour"], df["shelf"])What each part does
pd.crosstab(...)- Count how often pairs of category values occur.
df["flavour"]- The first Series supplies the output row labels.
df["shelf"]- The second Series supplies the output column labels.
each cell- The number of records with that row-and-column combination.
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 a crosstab of flavour rows against shelf columns.
Hint
The first crosstab argument labels rows; the second labels columns.
Reveal solution
One way to do it. Keep any supplied setup in the editor and use this in the Your work section.
pd.crosstab(df["flavour"], df["shelf"])