Bird
Raised Fist0
Data Analysis Pythondata~10 mins

Removing duplicates (drop_duplicates) in Data Analysis Python - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to remove duplicate rows from the DataFrame df.

Data Analysis Python
df_unique = df.[1]()
Drag options to blanks, or click blank then click option'
Asort_values
Bdropna
Cfillna
Ddrop_duplicates
Attempts:
3 left
💡 Hint
Common Mistakes
Using dropna() which removes missing values, not duplicates.
Using fillna() which fills missing values.
Using sort_values() which sorts data but does not remove duplicates.
2fill in blank
medium

Complete the code to remove duplicates based only on the 'Name' column.

Data Analysis Python
df_unique = df.drop_duplicates(subset=[1])
Drag options to blanks, or click blank then click option'
A['City']
B['Name']
C['Salary']
D['Age']
Attempts:
3 left
💡 Hint
Common Mistakes
Choosing a column unrelated to duplicates.
Not using a list for the subset parameter.
3fill in blank
hard

Fix the error in the code to remove duplicates and keep the last occurrence.

Data Analysis Python
df_unique = df.drop_duplicates(keep=[1])
Drag options to blanks, or click blank then click option'
A'last'
B'none'
C'first'
D'all'
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'first' which keeps the first occurrence instead.
Using invalid options like 'none' or 'all'.
4fill in blank
hard

Fill both blanks to remove duplicates based on 'City' and keep only the first occurrence.

Data Analysis Python
df_unique = df.drop_duplicates(subset=[1], keep=[2])
Drag options to blanks, or click blank then click option'
A['City']
B'first'
C'last'
D['Name']
Attempts:
3 left
💡 Hint
Common Mistakes
Using the wrong column for subset.
Using 'last' instead of 'first' for keep.
5fill in blank
hard

Fill all three blanks to create a dictionary with names as keys and ages as values, only for unique names.

Data Analysis Python
unique_ages = { [3].[1]: [3].[2] for [3] in df.drop_duplicates(subset=['Name']).itertuples() }
Drag options to blanks, or click blank then click option'
AName
BAge
Crow
Ddf
Attempts:
3 left
💡 Hint
Common Mistakes
Using the DataFrame name 'df' as loop variable.
Swapping keys and values in the dictionary.
Not using the correct loop variable.

Practice

(1/5)
1. What does the drop_duplicates() function do in a pandas DataFrame?
easy
A. Fills missing values with zeros
B. Removes repeated rows based on all columns by default
C. Sorts the DataFrame rows in ascending order
D. Changes the data type of columns

Solution

  1. Step 1: Understand the function purpose

    drop_duplicates() is used to remove repeated rows in a DataFrame.
  2. Step 2: Default behavior

    By default, it checks all columns to find duplicates and keeps the first occurrence.
  3. Final Answer:

    Removes repeated rows based on all columns by default -> Option B
  4. Quick Check:

    drop_duplicates() removes repeated rows [OK]
Hint: Remember: drop_duplicates removes repeated rows [OK]
Common Mistakes:
  • Thinking it sorts data
  • Confusing with fillna()
  • 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_duplicates[]
B. df.remove_duplicates()
C. df.drop_duplicates()
D. df.drop_duplicates{}

Solution

  1. Step 1: Identify correct method call

    The method to remove duplicates is drop_duplicates(), called with parentheses.
  2. Step 2: Check syntax correctness

    Only df.drop_duplicates() is valid syntax; brackets or braces are incorrect.
  3. Final Answer:

    df.drop_duplicates() -> Option C
  4. Quick Check:

    Use parentheses to call methods [OK]
Hint: Use parentheses () to call drop_duplicates method [OK]
Common Mistakes:
  • Using square brackets instead of parentheses
  • Using a non-existent method name
  • Using curly braces instead of parentheses
3. Given the DataFrame df below, what will df.drop_duplicates(subset=['Name']) return?
import pandas as pd
data = {'Name': ['Anna', 'Bob', 'Anna', 'Cody'], 'Age': [25, 30, 25, 22]}
df = pd.DataFrame(data)
medium
A. [{'Name': 'Anna', 'Age': 25}, {'Name': 'Bob', 'Age': 30}, {'Name': 'Cody', 'Age': 22}]
B. [{'Name': 'Anna', 'Age': 25}, {'Name': 'Anna', 'Age': 25}, {'Name': 'Bob', 'Age': 30}, {'Name': 'Cody', 'Age': 22}]
C. [{'Name': 'Bob', 'Age': 30}, {'Name': 'Cody', 'Age': 22}]
D. [{'Name': 'Anna', 'Age': 25}, {'Name': 'Bob', 'Age': 30}]

Solution

  1. Step 1: Understand subset parameter

    Using subset=['Name'] means duplicates are checked only on the 'Name' column.
  2. Step 2: Identify duplicates by 'Name'

    'Anna' appears twice; only the first occurrence is kept, others dropped.
  3. Final Answer:

    [{'Name': 'Anna', 'Age': 25}, {'Name': 'Bob', 'Age': 30}, {'Name': 'Cody', 'Age': 22}] -> Option A
  4. Quick Check:

    Duplicates dropped by 'Name' column [OK]
Hint: Use subset to check duplicates on specific columns [OK]
Common Mistakes:
  • Not using subset and dropping all duplicates
  • Keeping all duplicates instead of first
  • Confusing which rows are dropped
4. What is wrong with this code snippet to remove duplicates from DataFrame df?
df.drop_duplicates(inplace=True)

After running it, duplicates still appear in df. Why?
medium
A. The DataFrame has no duplicates to remove
B. drop_duplicates() does not modify the original DataFrame even with inplace=True
C. The DataFrame was not reassigned and inplace=True is ignored
D. The inplace parameter is misspelled

Solution

  1. Step 1: Check inplace parameter usage

    inplace=True modifies the original DataFrame, so no reassignment needed.
  2. Step 2: Consider DataFrame content

    If duplicates still appear, likely the DataFrame had no duplicates to remove.
  3. Final Answer:

    The DataFrame has no duplicates to remove -> Option A
  4. Quick Check:

    inplace=True modifies original; no duplicates means no change [OK]
Hint: Check if DataFrame actually has duplicates before drop_duplicates [OK]
Common Mistakes:
  • Assuming inplace=True does nothing
  • Thinking drop_duplicates always changes data
  • Not verifying if duplicates exist
5. You have a DataFrame df with columns ['ID', 'Name', 'Score']. Some rows have duplicate ID values but different Score. How do you keep only the row with the highest Score for each ID?
hard
A. Use df.drop_duplicates(subset=['Score'])
B. Use df.drop_duplicates(subset=['ID']) without sorting
C. Use df.drop_duplicates(keep='last') without sorting
D. Use df.sort_values('Score', ascending=False).drop_duplicates(subset=['ID'])

Solution

  1. Step 1: Sort DataFrame by Score descending

    Sorting by 'Score' descending puts highest scores first for each ID.
  2. Step 2: Drop duplicates by ID keeping first

    After sorting, dropping duplicates by 'ID' keeps the first (highest score) row per ID.
  3. Final Answer:

    df.sort_values('Score', ascending=False).drop_duplicates(subset=['ID']) -> Option D
  4. Quick Check:

    Sort then drop duplicates keeps highest score per ID [OK]
Hint: Sort by score descending before drop_duplicates to keep max [OK]
Common Mistakes:
  • Not sorting before dropping duplicates
  • Dropping duplicates on wrong column
  • Using keep='last' without sorting
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard