Bird
Raised Fist0
Pandasdata~5 mins

Multiple conditions with & and | in Pandas - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does the & operator do in pandas when filtering data?
The & operator is used to combine multiple conditions with a logical AND, meaning both conditions must be true for the row to be selected.
Click to reveal answer
beginner
How do you combine multiple conditions with OR in pandas?
Use the | operator to combine conditions with a logical OR, so if any condition is true, the row is selected.
Click to reveal answer
intermediate
Why do you need to put each condition in parentheses when using & or | in pandas?
Parentheses ensure the correct order of operations because & and | have lower precedence than comparison operators like > or ==.
Click to reveal answer
beginner
Example: What does df[(df['age'] > 20) & (df['score'] < 50)] do?
It selects rows where the 'age' is greater than 20 AND the 'score' is less than 50.
Click to reveal answer
beginner
Can you use 'and' or 'or' instead of & and | for filtering pandas DataFrames?
No, 'and' and 'or' do not work element-wise on pandas Series. You must use & for AND and | for OR with parentheses.
Click to reveal answer
Which operator is used for element-wise AND in pandas filtering?
A|
Band
C&
D&&
What is the correct way to filter rows where 'age' > 30 OR 'score' < 70?
Adf[(df['age'] > 30) | (df['score'] < 70)]
Bdf[df['age'] > 30 | df['score'] < 70]
Cdf[df['age'] > 30 or df['score'] < 70]
Ddf[(df['age'] > 30) and (df['score'] < 70)]
Why must each condition be in parentheses when using & or | in pandas?
ABecause & and | have lower precedence than comparison operators
BTo improve code readability only
CIt is optional
DTo avoid syntax errors unrelated to precedence
What happens if you use 'and' instead of '&' in pandas filtering?
AIt works the same
BIt raises an error
CIt filters rows incorrectly
DIt converts to '&' automatically
Which of these filters rows where 'status' is 'active' AND 'score' is above 80?
Adf[df['status'] == 'active' and df['score'] > 80]
Bdf[df['status'] == 'active' & df['score'] > 80]
Cdf[(df['status'] == 'active') and (df['score'] > 80)]
Ddf[(df['status'] == 'active') & (df['score'] > 80)]
Explain how to filter a pandas DataFrame using multiple conditions with & and | operators.
Think about how to combine true/false checks for each row.
You got /4 concepts.
    Describe why parentheses are important when using multiple conditions in pandas filtering.
    Consider how Python reads expressions step-by-step.
    You got /3 concepts.

      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