📖 Scenario: You work in a small store that sells different types of fruits. You have a list of sales data showing how many fruits were sold each day. You want to summarize this data to see the total sales for each fruit and each day.
🎯 Goal: Build a pivot table using pandas to summarize total fruit sales by fruit type and day.
📋 What You'll Learn
Create a pandas DataFrame with sales data
Create a variable for the pivot table configuration
Use pivot_table() to summarize total sales by fruit and day
Print the resulting pivot table
💡 Why This Matters
🌍 Real World
Pivot tables help summarize and analyze sales data quickly, making it easier to understand trends and totals.
💼 Career
Data analysts and business intelligence professionals use pivot tables to create reports and insights from raw data.
Progress0 / 4 steps
1
Create the sales data DataFrame
Import pandas as pd and create a DataFrame called sales_data with these exact columns and rows: {'Fruit': ['Apple', 'Banana', 'Apple', 'Banana', 'Apple'], 'Day': ['Monday', 'Monday', 'Tuesday', 'Tuesday', 'Wednesday'], 'Quantity': [10, 5, 7, 3, 8]}
Data Analysis Python
Hint
Use pd.DataFrame() with a dictionary to create the data.
2
Set up the pivot table configuration
Create a variable called pivot_config that is a dictionary with keys index set to 'Fruit', columns set to 'Day', and values set to 'Quantity'.
Data Analysis Python
Hint
Use a dictionary with keys index, columns, and values.
3
Create the pivot table
Use pd.pivot_table() with sales_data and the pivot_config dictionary to create a pivot table called sales_pivot. Use the aggfunc parameter set to sum to add quantities.
Data Analysis Python
Hint
Use pd.pivot_table() with the keys from pivot_config and aggfunc=sum.
4
Print the pivot table
Print the sales_pivot pivot table to see the total quantities sold by fruit and day.
Data Analysis Python
Hint
Use print(sales_pivot) to display the pivot table.
Practice
(1/5)
1. What does the index parameter do in the pivot_table() function?
easy
A. It sets the rows of the pivot table.
B. It sets the columns of the pivot table.
C. It defines the aggregation function.
D. It filters the data before pivoting.
Solution
Step 1: Understand the role of index in pivot_table()
The index parameter specifies which column(s) to use as the rows in the resulting pivot table.
Step 2: Differentiate from other parameters
The columns parameter sets the columns, aggfunc sets the aggregation, and filtering is done separately.
Final Answer:
It sets the rows of the pivot table. -> Option A
Quick Check:
index = rows [OK]
Hint: Remember: index = rows, columns = columns [OK]
Common Mistakes:
Confusing index with columns
Thinking aggfunc sets rows
Assuming index filters data
2. Which of the following is the correct syntax to create a pivot table with pandas using pivot_table()?
easy
A. pd.pivot_table(data, index='Category', columns='Year', aggfunc='sum')
B. pd.pivot(data, index='Category', columns='Year', aggfunc='sum')
C. pd.pivot_table(data, rows='Category', cols='Year', aggfunc='sum')
D. pd.pivot_table(data, groupby='Category', by='Year', aggfunc='sum')
Solution
Step 1: Recall the correct function and parameters
The correct function is pd.pivot_table() with parameters index for rows and columns for columns.
Step 2: Check each option
pd.pivot_table(data, index='Category', columns='Year', aggfunc='sum') uses correct function and parameters. Options B, C, and D use incorrect function names or parameter names.
Final Answer:
pd.pivot_table(data, index='Category', columns='Year', aggfunc='sum') -> Option A
Quick Check:
Correct function and parameters = pd.pivot_table(data, index='Category', columns='Year', aggfunc='sum') [OK]
Hint: Use index= for rows, columns= for columns in pivot_table [OK]
Common Mistakes:
Using pd.pivot instead of pd.pivot_table
Wrong parameter names like rows or cols
Mixing groupby parameters with pivot_table
3. Given the DataFrame df below:
Product Region Sales
0 A East 100
1 B East 150
2 A West 200
3 B West 250
4 A East 50
5 B West 100
A. The index parameter must be a list, not a string.
B. The aggfunc 'average' is not a valid aggregation function.
C. The values parameter cannot be a column name.
D. The columns parameter should be 'cols' instead of 'columns'.
Solution
Step 1: Check the aggfunc parameter value
The valid aggregation functions include 'mean', 'sum', 'count', etc. 'average' is not recognized by pandas.
Step 2: Verify other parameters
columns is correct, values can be a column name string, and index can be a string or list.
Final Answer:
The aggfunc 'average' is not a valid aggregation function. -> Option B
Quick Check:
aggfunc must be valid like 'mean' [OK]
Hint: Use 'mean' not 'average' for aggregation [OK]
Common Mistakes:
Using 'average' instead of 'mean'
Changing columns to cols
Passing values as non-column
5. You have a sales DataFrame with columns: Store, Product, Month, and Revenue. You want a pivot table showing total revenue per store for each product, but only for months January and February. Which code correctly creates this pivot table?
hard
A. pd.pivot_table(df, index='Store', columns='Product', values='Revenue', aggfunc='sum').loc[['January', 'February']]
B. pd.pivot_table(df, index='Store', columns='Product', values='Revenue', aggfunc='sum', filter=['January', 'February'])
C. pd.pivot_table(df, index='Month', columns='Product', values='Revenue', aggfunc='sum').query('Month in ["January", "February"]')
D. pd.pivot_table(df[df['Month'].isin(['January', 'February'])], index='Store', columns='Product', values='Revenue', aggfunc='sum')
Solution
Step 1: Filter data for January and February
Use df[df['Month'].isin(['January', 'February'])] to select only those months before pivoting.
Step 2: Create pivot table with Store as rows and Product as columns
Use index='Store', columns='Product', and sum revenue with aggfunc='sum'.
Final Answer:
pd.pivot_table(df[df['Month'].isin(['January', 'February'])], index='Store', columns='Product', values='Revenue', aggfunc='sum') -> Option D
Quick Check:
Filter first, then pivot with sum [OK]
Hint: Filter data before pivoting to limit rows [OK]
Common Mistakes:
Trying to filter inside pivot_table with invalid parameter
Filtering after pivoting causing wrong results
Using wrong index or columns
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.