Bird
Raised Fist0
Pandasdata~30 mins

Counting duplicates in Pandas - Mini Project: Build & Apply

Choose your learning style10 modes available
Counting duplicates
📖 Scenario: You work in a small bookstore. You have a list of books sold today, but some books appear more than once because multiple copies were sold. You want to find out how many times each book was sold.
🎯 Goal: Build a small program using pandas to count how many times each book title appears in the sales list.
📋 What You'll Learn
Create a pandas DataFrame with a column named Book containing the exact book titles given.
Create a variable called count_duplicates that counts how many times each book title appears.
Print the count_duplicates variable to see the counts.
💡 Why This Matters
🌍 Real World
Counting duplicates helps businesses understand which products sell more and manage inventory better.
💼 Career
Data analysts often count duplicates to summarize data and find popular items or repeated entries.
Progress0 / 4 steps
1
Create the sales data
Import pandas as pd and create a DataFrame called sales with one column named Book. The column should have these exact values in this order: 'Harry Potter', 'The Hobbit', 'Harry Potter', '1984', 'The Hobbit', 'The Hobbit'.
Pandas
Hint

Use pd.DataFrame with a dictionary where the key is 'Book' and the value is the list of book titles.

2
Set up counting duplicates
Create a variable called count_duplicates that counts how many times each book title appears in the sales DataFrame using the value_counts() method on the Book column.
Pandas
Hint

Use sales['Book'].value_counts() to count duplicates.

3
Print the counts
Print the variable count_duplicates to display how many times each book title appears.
Pandas
Hint

Use print(count_duplicates) to show the counts.

4
Filter books sold more than once
Create a variable called duplicates_more_than_one that filters count_duplicates to keep only books sold more than once (count > 1). Then print duplicates_more_than_one.
Pandas
Hint

Use boolean indexing like count_duplicates[count_duplicates > 1] to filter.

Practice

(1/5)
1.

What does the duplicated() function in pandas do?

easy
A. It counts how many times each value appears in a column.
B. It removes all duplicate rows from the DataFrame.
C. It marks duplicate rows as True and unique rows as False.
D. It sorts the DataFrame by duplicate values.

Solution

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

    The duplicated() function checks each row and marks it True if it is a duplicate of a previous row, otherwise False.
  2. Step 2: Compare with other functions

    Unlike drop_duplicates() which removes duplicates, duplicated() only marks them. value_counts() counts values, not duplicates.
  3. Final Answer:

    It marks duplicate rows as True and unique rows as False. -> Option C
  4. Quick Check:

    duplicated() = True/False mask [OK]
Hint: duplicated() flags duplicates, does not remove them [OK]
Common Mistakes:
  • Thinking duplicated() removes duplicates
  • Confusing duplicated() with value_counts()
  • Assuming duplicated() sorts data
2.

Which of the following is the correct syntax to count duplicate rows in a pandas DataFrame df?

?
easy
A. df.duplicated().sum()
B. df.duplicate().count()
C. df.value_counts().duplicated()
D. df.count_duplicates()

Solution

  1. Step 1: Identify correct function names

    The correct function to find duplicates is duplicated(). There is no duplicate() or count_duplicates() in pandas.
  2. Step 2: Count duplicates using sum()

    duplicated() returns a boolean Series. Using sum() counts how many True values (duplicates) exist.
  3. Final Answer:

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

    duplicated() + sum() = count duplicates [OK]
Hint: Use duplicated() then sum() to count duplicates [OK]
Common Mistakes:
  • Using wrong function names like duplicate()
  • Trying to count duplicates with value_counts() directly
  • Using count() instead of sum() on boolean Series
3.

Given the DataFrame df below, what is the output of df.duplicated().sum()?

import pandas as pd
df = pd.DataFrame({'A': [1, 2, 2, 3, 1], 'B': ['x', 'y', 'y', 'z', 'x']})
print(df.duplicated().sum())
medium
A. 3
B. 2
C. 1
D. 0

Solution

  1. Step 1: Identify duplicate rows

    Rows 0 and 4 are identical (A=1, B='x'), and rows 1 and 2 are identical (A=2, B='y'). The first occurrence is not counted as duplicate.
  2. Step 2: Count duplicates marked True

    Row 2 and row 4 are duplicates (second occurrences), so duplicated() marks these two rows True. Summing gives 2.
  3. Final Answer:

    2 -> Option B
  4. Quick Check:

    Two duplicate rows found = 2 [OK]
Hint: duplicated() counts second+ occurrences only [OK]
Common Mistakes:
  • Counting all duplicates including first occurrence
  • Confusing duplicated() with value_counts()
  • Ignoring that duplicated() marks only later duplicates
4.

What is wrong with this code to count duplicates in DataFrame df?

duplicates = df.duplicated.count()
medium
A. duplicated is a method and needs parentheses before count()
B. count() cannot be used on duplicated() output
C. duplicated() does not exist in pandas
D. sum() should be used instead of count()

Solution

  1. Step 1: Check method call syntax

    duplicated is a method and must be called with parentheses: duplicated().
  2. Step 2: Understand method chaining

    Without parentheses, df.duplicated.count() tries to access count attribute of the method itself, causing error. Correct is df.duplicated().count(), but this counts all rows, not duplicates.
  3. Final Answer:

    duplicated is a method and needs parentheses before count() -> Option A
  4. Quick Check:

    Call duplicated() with () before count() [OK]
Hint: Always use parentheses to call duplicated() method [OK]
Common Mistakes:
  • Forgetting parentheses on duplicated()
  • Using count() instead of sum() to count duplicates
  • Assuming duplicated is a property, not a method
5.

You have a DataFrame df with a column 'Category'. You want to find which categories appear more than once and how many times. Which code snippet correctly does this?

?
hard
A. df['Category'].count_duplicates()
B. df.duplicated('Category').sum()
C. df['Category'].duplicated().count()
D. df['Category'].value_counts()[df['Category'].value_counts() > 1]

Solution

  1. Step 1: Use value_counts() to count category occurrences

    value_counts() counts how many times each category appears.
  2. Step 2: Filter categories with counts greater than 1

    Using boolean indexing [value_counts() > 1] selects only categories appearing more than once.
  3. Final Answer:

    df['Category'].value_counts()[df['Category'].value_counts() > 1] -> Option D
  4. Quick Check:

    value_counts() + filter > 1 = repeated categories [OK]
Hint: Use value_counts() then filter counts > 1 [OK]
Common Mistakes:
  • Using duplicated() on a column returns booleans, not counts
  • Trying to call non-existent count_duplicates()
  • Using count() on duplicated() output incorrectly
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