Bird
Raised Fist0
Data Analysis Pythondata~20 mins

Aggregation functions (sum, mean, count) in Data Analysis Python - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Aggregation Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of sum aggregation on DataFrame column
What is the output of the following Python code using pandas?
Data Analysis Python
import pandas as pd

df = pd.DataFrame({'values': [10, 20, 30, 40]})
result = df['values'].sum()
print(result)
A40
BTypeError
C25
D100
Attempts:
2 left
💡 Hint

Sum adds all numbers in the column.

❓ data_output
intermediate
2:00remaining
Count of non-null entries in DataFrame column
Given this DataFrame, what is the output of the count aggregation?
Data Analysis Python
import pandas as pd

df = pd.DataFrame({'scores': [5, None, 7, None, 9]})
result = df['scores'].count()
print(result)
A5
B3
C2
DNone
Attempts:
2 left
💡 Hint

Count counts only non-null values.

❓ Predict Output
advanced
2:00remaining
Mean aggregation with missing values
What is the output of this code calculating the mean?
Data Analysis Python
import pandas as pd

df = pd.DataFrame({'temps': [20, 25, None, 30]})
result = df['temps'].mean()
print(round(result, 2))
ANone
B18.75
C25.0
DTypeError
Attempts:
2 left
💡 Hint

Mean ignores missing values by default.

❓ visualization
advanced
3:00remaining
Bar chart of sum aggregation by group
Which option shows the correct bar chart output for sum of sales by region?
Data Analysis Python
import pandas as pd
import matplotlib.pyplot as plt

data = {'region': ['East', 'West', 'East', 'West'], 'sales': [100, 200, 150, 300]}
df = pd.DataFrame(data)
sum_sales = df.groupby('region')['sales'].sum()
sum_sales.plot(kind='bar')
plt.show()
ABar chart with East=250 and West=500
BBar chart with East=100 and West=200
CBar chart with East=150 and West=300
DLine chart with East=250 and West=500
Attempts:
2 left
💡 Hint

Group sums add sales per region.

🧠 Conceptual
expert
3:00remaining
Understanding count vs size in groupby
In pandas, what is the difference between using count() and size() after a groupby operation?
A<code>count()</code> counts non-null values per group; <code>size()</code> counts all rows per group including nulls.
B<code>count()</code> counts all rows including nulls; <code>size()</code> counts only non-null values.
C<code>count()</code> returns the sum of values; <code>size()</code> returns the mean.
D<code>count()</code> and <code>size()</code> are identical and interchangeable.
Attempts:
2 left
💡 Hint

Think about how missing data affects counts.

Practice

(1/5)
1. What does the sum() function do when applied to a column of numbers in a DataFrame?
easy
A. Counts how many numbers are in the column
B. Finds the middle value of the numbers
C. Adds all the numbers together to get a total
D. Sorts the numbers from smallest to largest

Solution

  1. Step 1: Understand the purpose of sum()

    The sum() function adds all values in a column to get their total.
  2. Step 2: Compare with other functions

    mean() finds average, count() counts entries, so they do different things.
  3. Final Answer:

    Adds all the numbers together to get a total -> Option C
  4. Quick Check:

    sum() = total of values [OK]
Hint: Sum adds values, mean averages, count counts entries [OK]
Common Mistakes:
  • Confusing sum() with mean()
  • Thinking sum() counts entries
  • Assuming sum() sorts data
2. Which of the following is the correct way to calculate the average of a DataFrame column named sales using pandas?
easy
A. df.sales.sum() / df.sales.count()
B. df.mean('sales')
C. mean(df.sales)
D. df['sales'].mean()

Solution

  1. Step 1: Identify correct pandas syntax for mean()

    In pandas, to get the mean of a column, use df['column'].mean().
  2. Step 2: Check other options

    df.mean('sales') is invalid syntax; mean(df.sales) is not pandas method; df.sales.sum() / df.sales.count() works but is longer and less direct.
  3. Final Answer:

    df['sales'].mean() -> Option D
  4. Quick Check:

    Use df['column'].mean() for average [OK]
Hint: Use df['col'].mean() to get average quickly [OK]
Common Mistakes:
  • Using mean() as a standalone function
  • Passing column name as argument to df.mean()
  • Dividing sum by count manually instead of mean()
3. Given the DataFrame df below:
import pandas as pd
data = {'score': [10, 20, 30, 40, 50]}
df = pd.DataFrame(data)

What is the output of df['score'].count()?
medium
A. 5
B. 150
C. 30
D. Error

Solution

  1. Step 1: Understand what count() does on a column

    count() counts the number of non-missing entries in the column. Here, all 5 values are present.
  2. Step 2: Count the entries in 'score'

    There are 5 numbers: 10, 20, 30, 40, 50, so count() returns 5.
  3. Final Answer:

    5 -> Option A
  4. Quick Check:

    count() = number of entries [OK]
Hint: count() returns number of non-empty entries [OK]
Common Mistakes:
  • Confusing count() with sum()
  • Expecting count() to return total value
  • Thinking count() returns average
4. Consider this code snippet:
import pandas as pd
data = {'values': [5, None, 15, 20]}
df = pd.DataFrame(data)
result = df['values'].sum()

What is the value of result?
medium
A. 40
B. None
C. Error
D. 20

Solution

  1. Step 1: Understand how sum() handles None values

    In pandas, sum() ignores None (missing) values and sums only the numbers.
  2. Step 2: Calculate sum ignoring None

    Values are 5, None, 15, 20. Sum = 5 + 15 + 20 = 40.
  3. Final Answer:

    40 -> Option A
  4. Quick Check:

    sum() skips None and adds numbers [OK]
Hint: sum() ignores None/null values automatically [OK]
Common Mistakes:
  • Expecting sum() to return None if any missing
  • Getting error due to None value
  • Counting None as zero explicitly
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

  1. Step 1: Filter rows where sales > 0

    Use df[df['sales'] > 0] to keep only positive sales days.
  2. Step 2: Calculate mean of filtered sales

    Apply ['sales'].mean() on filtered data to get average of positive sales only.
  3. Final Answer:

    df[df['sales'] > 0]['sales'].mean() -> Option B
  4. 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 unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard