📖 Scenario: You have a small sales dataset with some missing values and inconsistent text. You want to clean it so it is easier to analyze.
🎯 Goal: Build a pandas DataFrame with sales data, then clean it by filling missing values and fixing text formatting in one combined step.
📋 What You'll Learn
Create a pandas DataFrame with given sales data
Create a variable for the fill value for missing sales
Use a single chained pandas command to fill missing sales and fix product names
Print the cleaned DataFrame
💡 Why This Matters
🌍 Real World
Cleaning data is a common first step in data science to prepare messy real-world data for analysis.
💼 Career
Data scientists and analysts often combine multiple cleaning steps to make data consistent and ready for insights.
Progress0 / 4 steps
1
Create the sales DataFrame
Create a pandas DataFrame called sales with these exact columns and values: {'Product': ['apple', 'Banana', 'orange', 'banana', 'Apple'], 'Sales': [10, 15, None, 20, None]}
Pandas
Hint
Use pd.DataFrame() with a dictionary for columns.
2
Set the fill value for missing sales
Create a variable called fill_value and set it to 0 to use for filling missing sales values.
Pandas
Hint
Just assign 0 to fill_value.
3
Clean the sales DataFrame
Create a new DataFrame called cleaned_sales by filling missing values in sales['Sales'] with fill_value and making all sales['Product'] names lowercase in one combined command using method chaining.
Pandas
Hint
Use assign() to change Product to lowercase and fillna() to fill missing Sales, chaining them together.
4
Print the cleaned DataFrame
Print the cleaned_sales DataFrame to see the cleaned data.
Pandas
Hint
Use print(cleaned_sales) to show the cleaned DataFrame.
Practice
(1/5)
1. What is the main benefit of combining multiple cleaning steps in pandas using method chaining?
easy
A. It creates multiple copies of the data.
B. It slows down the data processing.
C. It makes the code shorter and easier to read.
D. It hides errors in the data.
Solution
Step 1: Understand method chaining
Method chaining lets you apply many cleaning steps one after another in one line or block.
Step 2: Benefits of chaining
This approach reduces code length and improves readability by avoiding intermediate variables.
Final Answer:
It makes the code shorter and easier to read. -> Option C
Quick Check:
Method chaining = shorter, readable code [OK]
Hint: Chaining keeps code neat and easy to follow [OK]
Common Mistakes:
Thinking chaining slows down processing
Believing it creates multiple data copies
Assuming it hides data errors
2. Which of the following is the correct syntax to chain pandas cleaning methods to drop missing values and then reset the index?
easy
A. df.dropna().reset_index(drop=True
B. df.dropna.reset_index(drop=True)
C. df.dropna().reset_index(drop=True))
D. df.dropna().reset_index(drop=True)
Solution
Step 1: Check method calls
Each method must be called with parentheses: dropna() and reset_index().
Step 2: Verify parentheses balance
df.dropna().reset_index(drop=True) has balanced parentheses and correct chaining syntax.
Final Answer:
df.dropna().reset_index(drop=True) -> Option D
Quick Check:
Method calls need parentheses [OK]
Hint: Always use () after pandas methods when chaining [OK]
Common Mistakes:
Missing parentheses after methods
Unbalanced parentheses causing syntax errors
Using incorrect method names
3. Given the DataFrame df below, what will be the output after applying the chained cleaning steps?
Rows with any missing values are removed. Row 1 and 2 have missing values, so only rows 0 and 3 remain.
Step 2: Reset index
Resetting index with drop=True gives new index 0 and 1 for the remaining rows.
Final Answer:
{'A': [1.0, 4.0], 'B': ['x', 'z']} -> Option B
Quick Check:
dropna removes rows with NaN, reset_index fixes index [OK]
Hint: dropna removes rows with NaN, reset_index fixes numbering [OK]
Common Mistakes:
Forgetting dropna removes rows with any NaN
Not resetting index after dropping rows
Assuming missing values are filled automatically
4. The following code is intended to clean a DataFrame by filling missing values with 0 and then dropping duplicates. What is the error?
cleaned = df.fillna(0).drop_duplicates
medium
A. Missing parentheses after drop_duplicates method.
B. fillna should be called after drop_duplicates.
C. drop_duplicates does not exist in pandas.
D. fillna cannot be chained with drop_duplicates.
Solution
Step 1: Check method calls
fillna(0) is called correctly with parentheses, but drop_duplicates is missing parentheses.
Step 2: Understand method chaining syntax
All methods must be called with parentheses to execute them.
Final Answer:
Missing parentheses after drop_duplicates method. -> Option A
Quick Check:
Methods need () to run [OK]
Hint: Always add () after pandas methods when chaining [OK]
Common Mistakes:
Forgetting parentheses after methods
Changing method order unnecessarily
Thinking drop_duplicates is not a pandas method
5. You have a DataFrame df with columns 'Name', 'Age', and 'Score'. Some 'Age' values are missing, and some rows are duplicates. You want to fill missing 'Age' with the average age, remove duplicates, and reset the index. Which chained code correctly does this?
hard
A. df.fillna({'Age': df['Age'].mean()}).drop_duplicates().reset_index(drop=True)
B. df.drop_duplicates().fillna(df['Age'].mean()).reset_index(drop=True)
C. df.fillna(df['Age'].mean()).drop_duplicates.reset_index(drop=True)
D. df.reset_index(drop=True).fillna({'Age': df['Age'].mean()}).drop_duplicates()
Solution
Step 1: Fill missing 'Age' with average
Use fillna with a dictionary to fill only 'Age' column with its mean.
Step 2: Remove duplicates and reset index
Then drop duplicates and reset index with drop=True to clean the DataFrame fully.
Final Answer:
df.fillna({'Age': df['Age'].mean()}).drop_duplicates().reset_index(drop=True) -> Option A
Quick Check:
Fill missing, drop duplicates, reset index in order [OK]
Hint: Fill missing with dict, then drop duplicates, reset index last [OK]
Common Mistakes:
Filling all columns instead of only 'Age'
Missing parentheses on drop_duplicates
Resetting index before cleaning data
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.