📖 Scenario: You work in a small store that keeps track of sales data in a table. Sometimes, the same sale is accidentally recorded twice. You want to clean the data by removing these duplicate sales.
🎯 Goal: Build a small program that creates a sales data table, sets a column to check for duplicates, removes duplicate rows using drop_duplicates(), and prints the cleaned data.
📋 What You'll Learn
Create a pandas DataFrame called sales_data with exact columns and rows
Create a variable called subset_column to specify which column to check for duplicates
Use drop_duplicates() on sales_data with the subset parameter set to subset_column
Print the cleaned DataFrame
💡 Why This Matters
🌍 Real World
Cleaning duplicate records is a common task in data analysis to ensure accurate results.
💼 Career
Data scientists and analysts often need to clean data by removing duplicates before analysis or reporting.
Progress0 / 4 steps
1
Create the sales data DataFrame
Create a pandas DataFrame called sales_data with these exact columns and rows: SaleID: [101, 102, 103, 102, 104] Product: ['Apple', 'Banana', 'Apple', 'Banana', 'Orange'] Quantity: [5, 3, 5, 3, 2]
Pandas
Hint
Use pd.DataFrame and pass a dictionary with keys as column names and values as lists of data.
2
Set the column to check for duplicates
Create a variable called subset_column and set it to the string 'SaleID' to specify which column to check for duplicates.
Pandas
Hint
Just assign the string 'SaleID' to the variable subset_column.
3
Remove duplicate rows using drop_duplicates()
Create a new DataFrame called cleaned_data by using sales_data.drop_duplicates() with the subset parameter set to subset_column.
Pandas
Hint
Use drop_duplicates() on sales_data and pass subset=subset_column.
4
Print the cleaned data
Print the cleaned_data DataFrame to see the sales data after removing duplicates.
Pandas
Hint
Use print(cleaned_data) to show the cleaned table.
Practice
(1/5)
1. What does the drop_duplicates() function do in pandas?
easy
A. Removes repeated rows from a DataFrame
B. Adds new rows to a DataFrame
C. Sorts the DataFrame by column values
D. Changes the data type of columns
Solution
Step 1: Understand the purpose of drop_duplicates()
This function is designed to remove rows that appear more than once in a DataFrame.
Step 2: Compare options with function behavior
Only Removes repeated rows from a DataFrame correctly describes removing repeated rows. Other options describe different functions.
Final Answer:
Removes repeated rows from a DataFrame -> Option A
Quick Check:
drop_duplicates() removes repeats [OK]
Hint: Remember: drop_duplicates() cleans repeated rows fast [OK]
Common Mistakes:
Confusing drop_duplicates() with sorting functions
Thinking it adds or modifies data instead of removing duplicates
Assuming it changes data types
2. Which of the following is the correct syntax to remove duplicate rows from a DataFrame df?
easy
A. df.drop_duplicate_rows()
B. df.remove_duplicates()
C. df.delete_duplicates()
D. df.drop_duplicates()
Solution
Step 1: Recall the exact pandas method name
The correct method to remove duplicates is drop_duplicates().
Step 2: Check each option for correct syntax
Only df.drop_duplicates() uses the correct method name and syntax. Others are invalid pandas methods.
Final Answer:
df.drop_duplicates() -> Option D
Quick Check:
Correct method name is drop_duplicates() [OK]
Hint: Use exact method name: drop_duplicates() [OK]
Common Mistakes:
Using incorrect method names like remove_duplicates()
Adding extra words like delete or rows
Confusing with other DataFrame methods
3. Given the DataFrame df below:
import pandas as pd
data = {'A': [1, 2, 2, 3], 'B': ['x', 'y', 'y', 'z']}
df = pd.DataFrame(data)
print(df.drop_duplicates())
What will be the output?
medium
A. Rows with index 1, 2, and 3
B. Rows with index 0, 1, and 3
C. Rows with index 0, 2, and 3
D. All rows remain unchanged
Solution
Step 1: Identify duplicate rows in the DataFrame
Rows 2 and 3 have the same values (A=2, B='y'). So one will be removed.
Step 2: Understand default behavior of drop_duplicates()
By default, it keeps the first occurrence and removes later duplicates. So row 1 stays, row 2 is removed.
Final Answer:
Rows with index 0, 1, and 3 -> Option B
Quick Check:
First duplicates kept, later removed [OK]
Hint: drop_duplicates() keeps first by default [OK]
Common Mistakes:
Assuming last duplicate is kept instead of first
Thinking all duplicates are removed including first
Confusing row indices after removal
4. What is wrong with this code snippet to remove duplicates from DataFrame df?
B. Using inplace=True and then printing drop_duplicates() returns original data
C. drop_duplicates() does not have inplace parameter
D. print statement syntax is incorrect
Solution
Step 1: Understand inplace=True effect
Using inplace=True modifies df directly by removing duplicates.
Step 2: Analyze print statement
After the first call, df is already deduplicated. The second call to df.drop_duplicates() is redundant as it returns the same DataFrame since there are no duplicates left.
Final Answer:
Calling drop_duplicates() twice is redundant -> Option A
Quick Check:
Second call redundant after inplace [OK]
Hint: inplace=True changes df; extra drop_duplicates() returns copy [OK]
5. You have a DataFrame df with columns ['Name', 'Age', 'City']. You want to remove duplicates only based on Name and City, keeping the last occurrence. Which code achieves this?
hard
A. df.drop_duplicates(columns=['Name', 'City'], keep='last')
B. df.drop_duplicates(subset=['Name', 'City'], keep='first')
C. df.drop_duplicates(subset=['Name', 'City'], keep='last')
D. df.drop_duplicates(subset=['Age'], keep='last')
Solution
Step 1: Use subset parameter to specify columns
To check duplicates only on 'Name' and 'City', use subset=['Name', 'City'].
Step 2: Set keep='last' to keep last occurrence
keep='last' keeps the last duplicate row, removing earlier ones.
Final Answer:
df.drop_duplicates(subset=['Name', 'City'], keep='last') -> Option C
Quick Check:
subset selects columns; keep='last' keeps last duplicate [OK]
Hint: Use subset for columns, keep='last' to keep last duplicate [OK]
Common Mistakes:
Using 'columns' instead of 'subset' parameter
Forgetting to set keep='last' to keep last occurrence
Selecting wrong columns for subset
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.