Bird
Raised Fist0
Pandasdata~5 mins

duplicated() for finding duplicates in Pandas

Choose your learning style10 modes available
Introduction

We use duplicated() to find repeated rows in data. It helps spot copies or repeated information easily.

When cleaning a list of customer records to remove repeated entries.
When checking survey responses to find if someone answered twice.
When analyzing sales data to find duplicate transactions.
When preparing data for analysis and want to avoid counting duplicates.
When merging data and want to check if duplicates appeared after combining.
Syntax
Pandas
DataFrame.duplicated(subset=None, keep='first')

subset lets you choose columns to check for duplicates. If None, all columns are checked.

keep decides which duplicates to mark as False: 'first' keeps first occurrence, 'last' keeps last, False marks all duplicates True.

Examples
Find duplicates considering all columns, mark all but first occurrence as True.
Pandas
df.duplicated()
Find duplicates only based on 'Name' and 'Age' columns.
Pandas
df.duplicated(subset=['Name', 'Age'])
Mark duplicates as True except the last occurrence.
Pandas
df.duplicated(keep='last')
Mark all duplicates as True, including the first occurrence.
Pandas
df.duplicated(keep=False)
Sample Program

This code creates a small table of people with their age and city. It then finds duplicates in two ways: first by all columns, second by just name and age, marking all duplicates.

Pandas
import pandas as pd

data = {'Name': ['Anna', 'Bob', 'Anna', 'Mike', 'Bob'],
        'Age': [25, 30, 25, 40, 30],
        'City': ['NY', 'LA', 'NY', 'Chicago', 'LA']}
df = pd.DataFrame(data)

# Find duplicates considering all columns
duplicates_all = df.duplicated()

# Find duplicates based on Name and Age only
duplicates_name_age = df.duplicated(subset=['Name', 'Age'], keep=False)

print('Duplicates (all columns):')
print(duplicates_all)
print('\nDuplicates (Name and Age, all duplicates marked):')
print(duplicates_name_age)
OutputSuccess
Important Notes

Use duplicated() before removing duplicates to understand your data better.

Remember that duplicated() returns a boolean Series, not the duplicate rows themselves.

Combine with drop_duplicates() to remove duplicates after finding them.

Summary

duplicated() helps find repeated rows in data.

You can check duplicates by all columns or specific columns.

It returns True for duplicates and False for unique rows, depending on the keep setting.

Practice

(1/5)
1. What does the duplicated() function in pandas do?
easy
A. It identifies duplicate rows in a DataFrame.
B. It removes duplicate rows from a DataFrame.
C. It sorts the DataFrame by duplicate values.
D. It counts the number of unique rows in a DataFrame.

Solution

  1. Step 1: Understand the purpose of duplicated()

    The duplicated() function checks each row and marks it as True if it is a duplicate of a previous row.
  2. Step 2: Differentiate from other functions

    Unlike functions that remove duplicates or count unique rows, duplicated() only flags duplicates without changing the DataFrame.
  3. Final Answer:

    It identifies duplicate rows in a DataFrame. -> Option A
  4. Quick Check:

    duplicated() = identifies duplicates [OK]
Hint: Remember: duplicated() flags duplicates, doesn't remove them [OK]
Common Mistakes:
  • Confusing duplicated() with drop_duplicates()
  • Thinking duplicated() sorts data
  • Assuming duplicated() counts unique rows
2. Which of the following is the correct syntax to find duplicates in a pandas DataFrame df?
easy
A. df.duplicated()
B. df.duplicates()
C. df.find_duplicates()
D. df.duplicate()

Solution

  1. Step 1: Recall the exact function name

    The correct pandas function to find duplicate rows is duplicated(), not any other variation.
  2. Step 2: Verify syntax correctness

    The function is called on the DataFrame object as df.duplicated() with parentheses.
  3. Final Answer:

    df.duplicated() -> Option A
  4. Quick Check:

    Correct function name = df.duplicated() [OK]
Hint: Use exact function name: duplicated() with parentheses [OK]
Common Mistakes:
  • Misspelling the function name
  • Omitting parentheses after duplicated
  • Using non-existent functions like duplicates()
3. Given the DataFrame df below, what is the output of df.duplicated()?
import pandas as pd
data = {'A': [1, 2, 2, 3], 'B': ['x', 'y', 'y', 'z']}
df = pd.DataFrame(data)
print(df.duplicated())
medium
A. [True, False, True, False]
B. [False, False, True, False]
C. [False, True, False, True]
D. [False, False, False, True]

Solution

  1. Step 1: Identify duplicate rows in the DataFrame

    The rows are: 0: (1, 'x'), 1: (2, 'y'), 2: (2, 'y'), 3: (3, 'z'). Row 2 is a duplicate of row 1.
  2. Step 2: Understand duplicated() output

    duplicated() returns False for the first occurrence and True for duplicates. So, rows 0,1,3 are False; row 2 is True.
  3. Final Answer:

    [False, False, True, False] -> Option B
  4. Quick Check:

    First duplicate row marked True = [False, False, True, False] [OK]
Hint: First occurrence is False, duplicates after are True [OK]
Common Mistakes:
  • Marking first occurrence as True
  • Confusing row indices with values
  • Assuming all duplicates are True regardless of position
4. What is wrong with this code snippet to find duplicates in column 'A' of DataFrame df?
duplicates = df.duplicated['A']
print(duplicates)
medium
A. duplicated() cannot check specific columns
B. Missing import statement for pandas
C. The print statement is incorrect
D. Using square brackets instead of parentheses to call duplicated()

Solution

  1. Step 1: Check function call syntax

    The code uses square brackets [] instead of parentheses () to call the duplicated() method, which is incorrect syntax.
  2. Step 2: Correct way to specify columns

    To check duplicates based on column 'A', the correct syntax is df.duplicated(subset=['A']) with parentheses.
  3. Final Answer:

    Using square brackets instead of parentheses to call duplicated() -> Option D
  4. Quick Check:

    Call methods with () not [] [OK]
Hint: Call duplicated() with parentheses, not square brackets [OK]
Common Mistakes:
  • Using [] instead of () to call functions
  • Trying to access duplicated as an attribute
  • Not using subset parameter for specific columns
5. You have a DataFrame df with columns 'Name', 'Age', and 'City'. You want to find duplicates only based on 'Name' and 'City', ignoring 'Age'. Which code correctly finds these duplicates?
hard
A. df.duplicated(['Name', 'City'], keep=True)
B. df.duplicated(columns=['Name', 'City'])
C. df.duplicated(subset=['Name', 'City'])
D. df.duplicated('Name', 'City')

Solution

  1. Step 1: Use subset parameter to specify columns

    To check duplicates based on specific columns, use the subset parameter with a list of column names.
  2. Step 2: Validate correct syntax

    The correct syntax is df.duplicated(subset=['Name', 'City']). df.duplicated(columns=['Name', 'City']) uses a wrong parameter name (columns), and options A and C use invalid syntax.
  3. Final Answer:

    df.duplicated(subset=['Name', 'City']) -> Option C
  4. Quick Check:

    Use subset=['col1', 'col2'] to check specific columns [OK]
Hint: Use subset parameter to check duplicates on chosen columns [OK]
Common Mistakes:
  • Using wrong parameter name like columns instead of subset
  • Passing list without parameter name
  • Confusing keep parameter with subset
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