Hint: Use mean() to get average of numeric columns [OK]
Common Mistakes:
Using count() instead of mean()
Confusing value_counts() with average
Trying to sum without grouping
3. Given the following code, what will be the output?
import pandas as pd
data = {'gender': ['M', 'F', 'F', 'M', 'F'], 'score': [5, 3, 4, 2, 5]}
df = pd.DataFrame(data)
result = df.groupby('gender')['score'].mean()
print(result)
medium
A. gender
F 3.5
M 4.0
Name: score, dtype: float64
B. gender
F 4.0
M 3.5
Name: score, dtype: float64
C. gender
M 4.0
F 3.5
Name: score, dtype: float64
D. gender
F 3.0
M 4.0
Name: score, dtype: float64
Solution
Step 1: Group scores by gender
Group 'score' values by 'gender': For 'F' scores are [3,4,5], for 'M' scores are [5,2].
Step 2: Calculate mean for each group
Mean for 'F' = (3+4+5)/3 = 4.0; Mean for 'M' = (5+2)/2 = 3.5.
Final Answer:
gender
F 4.0
M 3.5
Name: score, dtype: float64 -> Option B
Quick Check:
Group mean = correct averages [OK]
Hint: Calculate group means by averaging grouped values [OK]
Common Mistakes:
Mixing up group labels and values
Calculating sums instead of means
Ignoring group sizes
4. The following code is intended to count how many times each answer appears in the 'response' column, but it raises an error. What is the error and how to fix it?
A. KeyError because 'response' column does not exist
B. SyntaxError due to missing parentheses in print statement
C. TypeError because value_count() requires an argument
D. AttributeError because the method name should be value_counts()
Solution
Step 1: Identify the method name error
The method value_count() is incorrect; the correct method is value_counts() with an 's' at the end.
Step 2: Correct the method name
Changing value_count() to value_counts() fixes the AttributeError and allows counting unique values.
Final Answer:
AttributeError because the method name should be value_counts() -> Option D
Quick Check:
Correct method is value_counts() [OK]
Hint: Remember the method ends with 's': value_counts() [OK]
Common Mistakes:
Misspelling method name without 's'
Confusing print syntax errors
Assuming column name is missing
5. You have a survey DataFrame df with columns age_group and satisfaction_score. How would you calculate the average satisfaction score for each age group and then find which age group has the highest average score?
hard
A. Use df.groupby('age_group')['satisfaction_score'].mean().idxmax()
B. Use df['satisfaction_score'].max() directly
C. Use df.value_counts('age_group') and pick max
D. Use df.groupby('satisfaction_score')['age_group'].mean()
Solution
Step 1: Group by age group and calculate average satisfaction
Use groupby('age_group')['satisfaction_score'].mean() to get average scores per group.
Step 2: Find the age group with the highest average
Use idxmax() on the resulting Series to get the group label with the highest average score.
Final Answer:
Use df.groupby('age_group')['satisfaction_score'].mean().idxmax() -> Option A
Quick Check:
Group mean + idxmax() finds highest average [OK]
Hint: Chain mean() and idxmax() to find top group quickly [OK]
Common Mistakes:
Using max() on scores without grouping
Confusing value_counts() with averages
Grouping by wrong column
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.