📖 Scenario: Imagine you work in a small bakery. You have sales data for different types of bread sold each day. The data is messy and hard to analyze because it is not organized well. You want to reshape the data to make it easier to understand and find trends.
🎯 Goal: You will reshape the bakery sales data from a wide format to a long format using pandas. This will help you see daily sales for each bread type clearly.
📋 What You'll Learn
Create a pandas DataFrame with daily sales data for three bread types.
Create a variable to hold the list of bread types.
Use pandas melt function to reshape the data from wide to long format.
Print the reshaped DataFrame.
💡 Why This Matters
🌍 Real World
Reshaping data is important in real life because data often comes in formats that are hard to analyze. Changing the shape helps us see patterns and make better decisions.
💼 Career
Data scientists and analysts frequently reshape data to prepare it for analysis, reporting, and visualization. Knowing how to reshape data with pandas is a key skill in many data jobs.
Progress0 / 4 steps
1
Create the bakery sales DataFrame
Create a pandas DataFrame called sales_data with these exact columns and values: 'Day' with values ['Monday', 'Tuesday', 'Wednesday'], 'Sourdough' with values [10, 12, 9], 'Baguette' with values [5, 7, 6], and 'Rye' with values [3, 4, 2].
Pandas
Hint
Use pd.DataFrame with a dictionary where keys are column names and values are lists of data.
2
Create a list of bread types
Create a list called bread_types that contains the strings 'Sourdough', 'Baguette', and 'Rye'.
Pandas
Hint
Use square brackets to create a list with the exact bread names as strings.
3
Reshape the data using pandas melt
Use the pandas melt function on sales_data to reshape it from wide to long format. Store the result in a variable called reshaped_data. Use id_vars='Day' and value_vars=bread_types. Set var_name='Bread' and value_name='Sales'.
Pandas
Hint
Use pd.melt() with the correct parameters to reshape the DataFrame.
4
Print the reshaped DataFrame
Print the variable reshaped_data to display the reshaped bakery sales data.
Pandas
Hint
Use print(reshaped_data) to show the reshaped data.
Practice
(1/5)
1. Why is reshaping data important in pandas?
easy
A. It organizes data to make analysis and visualization easier.
B. It deletes unnecessary rows automatically.
C. It changes data types of columns.
D. It encrypts data for security.
Solution
Step 1: Understand the purpose of reshaping
Reshaping changes the layout of data to make it easier to work with.
Step 2: Identify the benefit for analysis and visualization
Organized data helps tools and people understand patterns and trends better.
Final Answer:
It organizes data to make analysis and visualization easier. -> Option A
Quick Check:
Reshaping = Organizing data [OK]
Hint: Think: reshaping makes data easier to read and use [OK]
Common Mistakes:
Confusing reshaping with deleting data
Thinking reshaping changes data types
Believing reshaping encrypts data
2. Which pandas function would you use to make a DataFrame longer by turning columns into rows?
easy
A. groupby()
B. pivot()
C. melt()
D. concat()
Solution
Step 1: Recall the function to make data longer
The melt() function converts columns into rows, making data longer.
Step 2: Differentiate from pivot()
pivot() does the opposite by making data wider, so it is not correct here.
Final Answer:
melt() -> Option C
Quick Check:
Longer data = melt() [OK]
Hint: Remember: melt makes data longer, pivot makes it wider [OK]
Common Mistakes:
Choosing pivot() instead of melt()
Confusing groupby() with reshaping
Using concat() which combines dataframes, not reshapes
A. An error because melt() needs a list for id_vars.
B. A DataFrame with columns Name, Math, Science unchanged.
C. A DataFrame with columns Name, Subject, Score but only 2 rows.
D. A DataFrame with columns Name, Subject, Score and 4 rows showing each subject score per student.
Solution
Step 1: Understand melt() with id_vars
The melt() keeps 'Name' fixed and turns 'Math' and 'Science' columns into rows.
Step 2: Count resulting rows and columns
Each student has 2 subjects, so 2 students x 2 subjects = 4 rows with columns Name, Subject, Score.
Final Answer:
A DataFrame with columns Name, Subject, Score and 4 rows showing each subject score per student. -> Option D
Quick Check:
melt() expands columns to rows [OK]
Hint: melt with id_vars keeps those columns fixed [OK]
Common Mistakes:
Thinking melt() keeps original shape
Believing id_vars must be a list, not a string
Expecting fewer rows than subjects x students
4. You try to reshape data using pivot() but get an error: "ValueError: Index contains duplicate entries, cannot reshape". What is the likely cause?
medium
A. pivot() requires numeric columns only.
B. The DataFrame has duplicate index values preventing pivot.
C. pivot() needs a list for columns parameter.
D. pivot() cannot be used on DataFrames with missing values.
Solution
Step 1: Understand pivot() requirements
pivot() needs unique index/column pairs to reshape data without duplicates.
Step 2: Identify cause of duplicate entries error
If duplicates exist in the index or columns used, pivot() cannot reshape and throws this error.
Final Answer:
The DataFrame has duplicate index values preventing pivot. -> Option B
Quick Check:
Duplicate entries block pivot() [OK]
Hint: Check for duplicates before pivoting [OK]
Common Mistakes:
Assuming pivot() only works with numeric data
Thinking pivot() needs list for columns always
Believing missing values cause this error
5. You have sales data with columns: Store, Month, and Sales. You want a table showing each store as a row and each month as a column with sales values. Which steps correctly reshape the data?
hard
A. Use pivot(index='Store', columns='Month', values='Sales') to make data wider.
B. Use melt() to make data longer, then groupby() to sum sales.
C. Use concat() to join Store and Month columns.
D. Use drop_duplicates() to remove repeated sales before pivoting.
Solution
Step 1: Identify desired shape
You want stores as rows and months as columns, which means making data wider.
Step 2: Choose correct function for widening
pivot() reshapes data from long to wide format using specified index, columns, and values.
Final Answer:
Use pivot(index='Store', columns='Month', values='Sales') to make data wider. -> Option A
Quick Check:
Wide table = pivot() [OK]
Hint: pivot() makes wide tables from long data [OK]
Common Mistakes:
Using melt() when wide format is needed
Trying concat() to reshape data
Dropping duplicates unnecessarily before pivot
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.