5. You have a DataFrame df with a column sales containing daily sales numbers. You want to find the average sales but only for days where sales were above zero. Which code correctly calculates this?
hard
A. df['sales'].mean()
B. df[df['sales'] > 0]['sales'].mean()
C. df['sales'].sum() / df['sales'].count()
D. df['sales'].count() / df['sales'].sum()
Solution
Step 1: Filter rows where sales > 0
Use df[df['sales'] > 0] to keep only positive sales days.
Step 2: Calculate mean of filtered sales
Apply ['sales'].mean() on filtered data to get average of positive sales only.
Final Answer:
df[df['sales'] > 0]['sales'].mean() -> Option B
Quick Check:
Filter then mean() for conditional average [OK]
Hint: Filter data first, then apply mean() for conditional average [OK]
Common Mistakes:
Using mean() without filtering
Dividing sum by count without filtering
Swapping sum and count in division
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.