Bird
Raised Fist0
Pandasdata~30 mins

groupby() basics in Pandas - Mini Project: Build & Apply

Choose your learning style10 modes available
Using groupby() Basics in pandas
📖 Scenario: You work in a small store. You have a list of sales with product names and amounts sold. You want to find out how many units were sold for each product.
🎯 Goal: Build a small program that groups sales by product name and sums the amounts sold for each product using groupby() in pandas.
📋 What You'll Learn
Create a pandas DataFrame with sales data
Create a variable for grouping by product
Use groupby() and sum() to get total sales per product
Print the grouped result
💡 Why This Matters
🌍 Real World
Grouping data by categories and summarizing is common in sales, finance, and many fields to understand totals or averages.
💼 Career
Data analysts and scientists often use <code>groupby()</code> in pandas to prepare data for reports and insights.
Progress0 / 4 steps
1
Create the sales DataFrame
Create a pandas DataFrame called sales with two columns: 'product' and 'amount'. Use these exact rows: 'apple', 10, 'banana', 5, 'apple', 7, 'banana', 3, 'orange', 8.
Pandas
Hint

Use pd.DataFrame with a dictionary containing the two columns and their values.

2
Set the grouping variable
Create a variable called group_column and set it to the string 'product'. This will be used to group the sales data by product.
Pandas
Hint

Just assign the string 'product' to the variable group_column.

3
Group and sum the sales
Create a variable called grouped_sales that groups the sales DataFrame by group_column and sums the amount for each product.
Pandas
Hint

Use sales.groupby(group_column)['amount'].sum() to get total sales per product.

4
Print the grouped sales result
Print the grouped_sales variable to show the total amount sold for each product.
Pandas
Hint

Use print(grouped_sales) to display the result.

Practice

(1/5)
1. What does the groupby() function do in pandas?
easy
A. It splits the data into groups based on column values.
B. It sorts the data in ascending order.
C. It removes duplicate rows from the data.
D. It changes the data type of columns.

Solution

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

    The groupby() function is used to split data into groups based on the values in one or more columns.
  2. Step 2: Compare with other options

    Sorting, removing duplicates, and changing data types are different operations and not what groupby() does.
  3. Final Answer:

    It splits the data into groups based on column values. -> Option A
  4. Quick Check:

    groupby() = split data into groups [OK]
Hint: Remember: groupby splits data by column values [OK]
Common Mistakes:
  • Confusing groupby with sorting
  • Thinking groupby removes duplicates
  • Assuming groupby changes data types
2. Which of the following is the correct syntax to group a DataFrame df by the column 'Category'?
easy
A. df.group_by('Category')
B. df.groupby['Category']
C. df.groupby('Category')
D. df.groupby(Category)

Solution

  1. Step 1: Recall the correct method name and syntax

    The correct method is groupby() called with parentheses and the column name as a string argument.
  2. Step 2: Check each option

    df.groupby('Category') uses df.groupby('Category') which is correct. df.group_by('Category') uses wrong method name group_by. df.groupby['Category'] uses square brackets instead of parentheses. df.groupby(Category) misses quotes around the column name.
  3. Final Answer:

    df.groupby('Category') -> Option C
  4. Quick Check:

    Correct syntax uses parentheses and string column name [OK]
Hint: Use df.groupby('column_name') with parentheses and quotes [OK]
Common Mistakes:
  • Using wrong method name like group_by
  • Using square brackets instead of parentheses
  • Not quoting the column name string
3. Given the DataFrame:
import pandas as pd
data = {'Team': ['A', 'A', 'B', 'B', 'C'], 'Points': [10, 15, 10, 5, 20]}
df = pd.DataFrame(data)
result = df.groupby('Team').sum()

What is the output of result?
medium
A. Team Points A 25 B 15 C 20
B. {'Team': ['A', 'B', 'C'], 'Points': [25, 15, 20]}
C. Team Points A 10 B 10 C 20
D. Team Points A 15 B 5 C 20

Solution

  1. Step 1: Group data by 'Team'

    The groups are: A with points 10 and 15, B with points 10 and 5, C with points 20.
  2. Step 2: Sum points in each group

    Sum for A = 10 + 15 = 25, B = 10 + 5 = 15, C = 20.
  3. Final Answer:

    Team Points A 25 B 15 C 20 -> Option A
  4. Quick Check:

    Sum points per team = 25, 15, 20 [OK]
Hint: Sum points after groupby to get totals per group [OK]
Common Mistakes:
  • Not summing points, just taking first value
  • Mixing up group sums
  • Confusing output format
4. What is wrong with this code snippet?
df = pd.DataFrame({'City': ['X', 'Y', 'X'], 'Sales': [100, 200, 150]})
result = df.groupby.City.sum()
medium
A. DataFrame is missing import statement.
B. The column name 'City' is misspelled.
C. The sum() function cannot be used after groupby.
D. You cannot use dot notation after groupby; it should be parentheses.

Solution

  1. Step 1: Check groupby syntax

    The correct way to group by a column is df.groupby('City') with parentheses and quotes.
  2. Step 2: Identify the error in dot notation

    Using dot notation like df.groupby.City is invalid because groupby is a method, not an attribute.
  3. Final Answer:

    You cannot use dot notation after groupby; it should be parentheses. -> Option D
  4. Quick Check:

    Use parentheses with groupby, not dot notation [OK]
Hint: Always use parentheses with groupby, not dot notation [OK]
Common Mistakes:
  • Using dot notation instead of parentheses
  • Misspelling column names
  • Thinking sum() is invalid after groupby
5. You have a sales DataFrame:
import pandas as pd
data = {'Store': ['A', 'A', 'B', 'B', 'B'], 'Product': ['X', 'Y', 'X', 'Y', 'X'], 'Sales': [100, 150, 200, 250, 300]}
df = pd.DataFrame(data)

How do you find the total sales for each store and product combination?
hard
A. df.groupby('Product').sum('Store')
B. df.groupby(['Store', 'Product']).sum()
C. df.groupby('Store').sum('Product')
D. df.groupby(['Store']).sum(['Product'])

Solution

  1. Step 1: Understand grouping by multiple columns

    To group by both 'Store' and 'Product', pass a list of column names to groupby().
  2. Step 2: Use sum() to aggregate sales

    After grouping, use sum() to add sales values for each group.
  3. Final Answer:

    df.groupby(['Store', 'Product']).sum() -> Option B
  4. Quick Check:

    Group by multiple columns using list, then sum [OK]
Hint: Group by list of columns for multi-level grouping [OK]
Common Mistakes:
  • Passing column names to sum() instead of groupby()
  • Grouping by single column only
  • Using wrong syntax for groupby
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