Understand the idea
Combine row conditions to say exactly which records qualify. Each comparison must have its own parentheses.
A small example
For a row with age 4 and species Cat: (age >= 2) is True and (species != "Cat") is False.
Follow the code
Apply the idea to the supplied table. Read from top to bottom; the final line displays the result.
df[(df["price"] > 2.1) & (df["flavour"] == "fruity")]What each part does
(df["price"] > 2.1)- The first test marks prices above 2.1.
&- Keep a row only when both parenthesised tests are True.
(df["flavour"] == "fruity")- The second test marks fruity rows; == compares values.
df[...]- Use the combined True/False mask to keep matching rows.
Other choices for later exercises
|- Use this instead of & when either test may be True.
~- Reverse a True/False mask.
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 where price is greater than 2.1 AND flavour equals "fruity".
Hint
Parenthesize each comparison before combining them with &.
Reveal solution
One way to do it. Keep any supplied setup in the editor and use this in the Your work section.
df[(df["price"] > 2.1) & (df["flavour"] == "fruity")]Optional stretch
Replace & with |, then try ~(df["{c}"] == "{cat}"). Predict which rows return first.