Bird
Raised Fist0
Pandasdata~10 mins

Multiple conditions with & and | in Pandas - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to select rows where the 'age' column is greater than 30.

Pandas
filtered = df[df['age'] [1] 30]
Drag options to blanks, or click blank then click option'
A>
B<
C==
D!=
Attempts:
3 left
💡 Hint
Common Mistakes
Using '<' instead of '>' will select wrong rows.
Using '==' will select only rows where age is exactly 30.
2fill in blank
medium

Complete the code to select rows where 'age' is greater than 30 and 'score' is at least 80.

Pandas
filtered = df[(df['age'] > 30) [1] (df['score'] >= 80)]
Drag options to blanks, or click blank then click option'
A|
B&
Cor
Dand
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'and' or 'or' directly causes errors in pandas.
Using '|' instead of '&' changes the logic to 'or'.
3fill in blank
hard

Fix the error in the code to select rows where 'age' is less than 25 or 'score' is greater than 90.

Pandas
filtered = df[(df['age'] [1] 25) | (df['score'] > 90)]
Drag options to blanks, or click blank then click option'
A<
B<=
C==
D>
Attempts:
3 left
💡 Hint
Common Mistakes
Using '<=' selects ages 25 and below, which is not the requirement.
Using '>' or '==' will select wrong rows.
4fill in blank
hard

Fill both blanks to create a dictionary of words and their lengths for words longer than 4 characters.

Pandas
lengths = {word: [1] for word in words if len(word) [2] 4}
Drag options to blanks, or click blank then click option'
Alen(word)
B<=
C>
Dword
Attempts:
3 left
💡 Hint
Common Mistakes
Using '<=' includes words of length 4 or less.
Using 'word' as value stores the word itself, not its length.
5fill in blank
hard

Fill all three blanks to create a dictionary with uppercase words as keys and their scores for scores above 50.

Pandas
result = { [1]: [2] for word, score in data.items() if score [3] 50 }
Drag options to blanks, or click blank then click option'
Aword.upper()
Bscore
C>
Dword.lower()
Attempts:
3 left
💡 Hint
Common Mistakes
Using word.lower() for keys instead of uppercase.
Using '<' or '<=' in condition selects wrong scores.

Practice

(1/5)
1. Which operator should you use in pandas to select rows where age is greater than 30 and salary is above 50000?
easy
A. Use and to combine the two conditions without parentheses.
B. Use | to combine the two conditions without parentheses.
C. Use & to combine the two conditions with parentheses around each.
D. Use or to combine the two conditions with parentheses.

Solution

  1. Step 1: Understand the condition type

    We want rows where both conditions are true, so this is an AND condition.
  2. Step 2: Choose the correct pandas operator

    In pandas, & is used for AND between conditions, and each condition must be in parentheses.
  3. Final Answer:

    Use & to combine the two conditions with parentheses around each. -> Option C
  4. Quick Check:

    AND condition = & with parentheses [OK]
Hint: Use & with parentheses for AND conditions in pandas [OK]
Common Mistakes:
  • Using 'and' instead of & causes errors.
  • Not wrapping each condition in parentheses.
  • Using | instead of & for AND conditions.
2. Which of the following is the correct syntax to filter a DataFrame df for rows where df['A'] > 10 or df['B'] < 5?
easy
A. df[(df['A'] > 10) | (df['B'] < 5)]
B. df[(df['A'] > 10) & (df['B'] < 5)]
C. df[df['A'] > 10 | df['B'] < 5]
D. df[df['A'] > 10 or df['B'] < 5]

Solution

  1. Step 1: Identify the condition type

    The question asks for rows where either condition is true, so this is an OR condition.
  2. Step 2: Use correct pandas syntax for OR

    In pandas, | is used for OR, and each condition must be wrapped in parentheses inside the DataFrame filter.
  3. Final Answer:

    df[(df['A'] > 10) | (df['B'] < 5)] -> Option A
  4. Quick Check:

    OR condition = | with parentheses [OK]
Hint: Use | with parentheses for OR conditions in pandas [OK]
Common Mistakes:
  • Using & instead of | for OR conditions.
  • Not wrapping conditions in parentheses.
  • Using Python 'or' instead of | causes errors.
3. Given the DataFrame df below:
import pandas as pd
df = pd.DataFrame({'age': [25, 40, 35, 28], 'salary': [40000, 60000, 50000, 45000]})
filtered = df[(df['age'] > 30) & (df['salary'] >= 50000)]
print(filtered)

What will be the output?
medium
A. Rows with age > 30 or salary >= 50000: rows 1, 2, and 3
B. Rows with age > 30 and salary >= 50000: rows 1 and 2
C. Rows with age > 30 and salary >= 50000: row 1 only
D. Empty DataFrame

Solution

  1. Step 1: Check each row against conditions

    Row 0: age=25 (no), salary=40000 (no)
    Row 1: age=40 (yes), salary=60000 (yes)
    Row 2: age=35 (yes), salary=50000 (yes)
    Row 3: age=28 (no), salary=45000 (no)
  2. Step 2: Select rows where both conditions are true

    Rows 1 and 2 satisfy both conditions.
  3. Final Answer:

    Rows with age > 30 and salary >= 50000: rows 1 and 2 -> Option B
  4. Quick Check:

    Both conditions true for rows 1 and 2 [OK]
Hint: Check each condition row-wise, then combine with & [OK]
Common Mistakes:
  • Confusing & with | and selecting wrong rows.
  • Ignoring parentheses causing syntax errors.
  • Misreading >= as > or vice versa.
4. What is wrong with this pandas filter code?
df[(df['score'] > 80) & df['age'] < 30]

Choose the best fix.
medium
A. Use 'and' instead of &.
B. Replace & with | to fix the syntax.
C. Remove parentheses around the first condition.
D. Add parentheses around the second condition: df[(df['score'] > 80) & (df['age'] < 30)]

Solution

  1. Step 1: Identify the syntax error

    The second condition df['age'] < 30 is not wrapped in parentheses, which is required when using &.
  2. Step 2: Correct the syntax by adding parentheses

    Wrap the second condition in parentheses to fix the error: df[(df['score'] > 80) & (df['age'] < 30)]
  3. Final Answer:

    Add parentheses around the second condition: df[(df['score'] > 80) & (df['age'] < 30)] -> Option D
  4. Quick Check:

    Each condition must be in parentheses with & [OK]
Hint: Wrap each condition in parentheses when using & or | [OK]
Common Mistakes:
  • Not using parentheses around all conditions.
  • Using 'and' instead of &.
  • Changing & to | without reason.
5. You have a DataFrame df with columns temperature and humidity. You want to select rows where temperature is between 20 and 30 inclusive, or humidity is below 40. Which of the following code snippets correctly applies these conditions?
hard
A. df[((df['temperature'] >= 20) & (df['temperature'] <= 30)) | (df['humidity'] < 40)]
B. df[(df['temperature'] >= 20) & df['temperature'] <= 30 | (df['humidity'] < 40)]
C. df[(df['temperature'] >= 20) | (df['temperature'] <= 30) & (df['humidity'] < 40)]
D. df[(df['temperature'] >= 20) & (df['humidity'] < 40) | (df['temperature'] <= 30)]

Solution

  1. Step 1: Understand the condition logic

    We want rows where temperature is between 20 and 30 (both conditions combined with AND), OR humidity is below 40.
  2. Step 2: Apply correct operator precedence with parentheses

    Use parentheses to group the temperature range conditions with & and then combine with | for humidity condition.
  3. Final Answer:

    df[((df['temperature'] >= 20) & (df['temperature'] <= 30)) | (df['humidity'] < 40)] -> Option A
  4. Quick Check:

    Group AND conditions, then OR with other condition [OK]
Hint: Group AND conditions in parentheses before OR [OK]
Common Mistakes:
  • Missing parentheses causing wrong logic.
  • Mixing & and | without grouping.
  • Using | inside AND group incorrectly.
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard