Hint: Boolean filtering picks rows where condition is true [OK]
Common Mistakes:
Confusing filtering with sorting
Thinking it changes data types
Assuming it removes duplicates
2. Which of the following is the correct syntax to filter rows where column age is greater than 30 in a DataFrame df?
easy
A. df['age' > 30]
B. df[df['age'] > 30]
C. df.age[df.age > 30]
D. df[df['age'] < 30]
Solution
Step 1: Identify correct boolean filtering syntax
The correct way is to put the condition inside square brackets after the DataFrame.
Step 2: Check each option
df[df['age'] > 30] uses df[df['age'] > 30], which is correct syntax. df['age' > 30] is invalid syntax. df.age[df.age > 30] incorrectly filters only the age column, returning a Series not DataFrame. df[df['age'] < 30] filters less than 30, not greater.
Final Answer:
df[df['age'] > 30] -> Option B
Quick Check:
Correct syntax = df[df['age'] > 30] [OK]
Hint: Use df[condition] with column in quotes for filtering [OK]
What will df[df['score'] > 80 and df['passed']] return?
medium
A. ValueError due to missing parentheses
B. Rows where score > 80 or passed is true
C. Rows where score > 80 and passed is true
D. Empty DataFrame
Solution
Step 1: Analyze the boolean expression
The expression uses and without parentheses around each condition, which causes a ValueError in pandas.
Step 2: Understand pandas boolean filtering rules
Each condition must be in parentheses when combined with & or |. So df['score'] > 80 and df['passed'] raises ValueError.
Final Answer:
ValueError due to missing parentheses -> Option A
Quick Check:
Use parentheses around conditions with & or | [OK]
Hint: Always wrap each condition in parentheses when using & or | [OK]
Common Mistakes:
Not using parentheses around conditions
Confusing & with and
Expecting output without fixing syntax
4. Consider this code snippet:
import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3, 4]})
filtered = df[df['A'] > 2 or df['A'] < 4]
What is the error and how to fix it?
medium
A. ValueError: Use parentheses around conditions with or
B. SyntaxError: Missing colon after if
C. No error, code runs fine
D. ValueError: Cannot compare integers
Solution
Step 1: Identify the error cause
The expression df['A'] > 2 or df['A'] < 4 lacks parentheses around each condition, causing a ValueError.
Step 2: Fix the error by adding parentheses
Correct syntax is df[(df['A'] > 2) | (df['A'] < 4)] to ensure proper evaluation.
Final Answer:
ValueError: Use parentheses around conditions with or -> Option A
Quick Check:
Parentheses needed around each condition with | or & [OK]
Hint: Wrap each condition in parentheses when using | or & [OK]
Common Mistakes:
Forgetting parentheses around conditions
Using Python 'or' instead of |
Assuming no error with missing parentheses
5. You have a DataFrame df with columns age and income. You want to filter rows where age is between 25 and 40 inclusive, and income is above 50000. Which code correctly applies boolean filtering?
D. df[df['age'] >= 25 and df['age'] <= 40 and df['income'] > 50000]
Solution
Step 1: Understand the filtering conditions
We want age between 25 and 40 inclusive, so age >= 25 and age <= 40, and income > 50000.
Step 2: Check correct syntax for combining conditions
Conditions must be in parentheses and combined with &. df[(df['age'] >= 25) & (df['age'] <= 40) & (df['income'] > 50000)] correctly uses parentheses and & operators.
Step 3: Identify errors in other options
df[df['age'] >= 25 & df['age'] <= 40 & df['income'] > 50000] lacks parentheses around each condition, causing errors. df[(df['age'] > 25) | (df['age'] < 40) & (df['income'] > 50000)] uses | instead of & incorrectly. df[df['age'] >= 25 and df['age'] <= 40 and df['income'] > 50000] uses Python 'and' which does not work with pandas Series.