📖 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
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.
Step 2: Compare with other options
Sorting, removing duplicates, and changing data types are different operations and not what groupby() does.
Final Answer:
It splits the data into groups based on column values. -> Option A
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
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.
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.
Final Answer:
df.groupby('Category') -> Option C
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
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.
Step 2: Sum points in each group
Sum for A = 10 + 15 = 25, B = 10 + 5 = 15, C = 20.
Final Answer:
Team Points
A 25
B 15
C 20 -> Option A
Quick Check:
Sum points per team = 25, 15, 20 [OK]
Hint: Sum points after groupby to get totals per group [OK]