Bird
Raised Fist0
Pandasdata~10 mins

Adding and removing categories in Pandas - Interactive Code Practice

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

Complete the code to add a new category 'D' to the categorical column.

Pandas
import pandas as pd
cats = pd.Categorical(['A', 'B', 'A', 'C'])
cats = cats.add_categories([1])
Drag options to blanks, or click blank then click option'
A'D'
BD
C['D']
D"D"
Attempts:
3 left
💡 Hint
Common Mistakes
Forgetting quotes around the category name.
Passing a list instead of a single string when adding one category.
2fill in blank
medium

Complete the code to remove the category 'B' from the categorical column.

Pandas
import pandas as pd
cats = pd.Categorical(['A', 'B', 'A', 'C'], categories=['A', 'B', 'C'])
cats = cats.remove_categories([1])
Drag options to blanks, or click blank then click option'
A"B"
B'B'
CB
D['B']
Attempts:
3 left
💡 Hint
Common Mistakes
Passing the category without quotes.
Passing a list instead of a single string.
3fill in blank
hard

Fix the error in the code to add multiple categories 'D' and 'E' to the categorical column.

Pandas
import pandas as pd
cats = pd.Categorical(['A', 'B', 'A', 'C'])
cats = cats.add_categories([1])
Drag options to blanks, or click blank then click option'
A'D', 'E'
B('D', 'E')
C['D', 'E']
D'D E'
Attempts:
3 left
💡 Hint
Common Mistakes
Passing categories as a single string with spaces.
Passing multiple strings without a list.
4fill in blank
hard

Fill both blanks to create a categorical column with categories 'A', 'B', 'C', then remove 'B'.

Pandas
import pandas as pd
cats = pd.Categorical(['A', 'B', 'C'], categories=[1])
cats = cats.remove_categories([2])
Drag options to blanks, or click blank then click option'
A['A', 'B', 'C']
B'B'
C['B']
D'C'
Attempts:
3 left
💡 Hint
Common Mistakes
Passing categories as a string instead of a list.
Removing category by passing a list instead of a string.
5fill in blank
hard

Fill all three blanks to add categories 'D' and 'E', then remove 'A' from the categorical column.

Pandas
import pandas as pd
cats = pd.Categorical(['A', 'B', 'C'], categories=[1])
cats = cats.add_categories([2])
cats = cats.remove_categories([3])
Drag options to blanks, or click blank then click option'
A['A', 'B', 'C']
B['D', 'E']
C'A'
D'B'
Attempts:
3 left
💡 Hint
Common Mistakes
Passing strings instead of lists for categories or added categories.
Removing category by passing a list instead of a string.

Practice

(1/5)
1. What does the add_categories() method do in pandas categorical data?
easy
A. It converts a column to a categorical type.
B. It removes categories from a categorical column.
C. It adds new possible categories to an existing categorical column.
D. It renames existing categories in a categorical column.

Solution

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

    This method is used to add new possible categories to a pandas categorical column without changing existing data.
  2. Step 2: Differentiate from other methods

    Unlike remove_categories() which removes categories, add_categories() only adds new ones.
  3. Final Answer:

    It adds new possible categories to an existing categorical column. -> Option C
  4. Quick Check:

    add_categories() adds categories [OK]
Hint: Remember: add_categories adds new options, doesn't remove [OK]
Common Mistakes:
  • Confusing add_categories with remove_categories
  • Thinking it changes existing data values
  • Assuming it renames categories
2. Which of the following is the correct syntax to remove categories from a pandas categorical column named df['color']?
easy
A. df['color'].remove_categories(['red', 'blue'])
B. df['color'].drop_categories(['red', 'blue'])
C. df['color'].delete_categories(['red', 'blue'])
D. df['color'].pop_categories(['red', 'blue'])

Solution

  1. Step 1: Recall the correct method name

    The pandas method to remove categories is remove_categories().
  2. Step 2: Match the syntax with the method

    df['color'].remove_categories(['red', 'blue']) uses remove_categories() correctly on the categorical column.
  3. Final Answer:

    df['color'].remove_categories(['red', 'blue']) -> Option A
  4. Quick Check:

    Use remove_categories() to remove categories [OK]
Hint: Remember method name is remove_categories, not drop or delete [OK]
Common Mistakes:
  • Using non-existent methods like drop_categories
  • Confusing remove_categories with add_categories
  • Trying to remove categories with pop or delete
3. Given the code:
import pandas as pd
cat = pd.Categorical(['apple', 'banana', 'apple'], categories=['apple', 'banana', 'cherry'])
cat2 = cat.remove_categories(['banana'])
print(cat2)

What will be the output?
medium
A. [apple, NaN, apple] Categories (2, object): [apple, cherry]
B. [apple, banana, apple] Categories (2, object): [apple, cherry]
C. [apple, NaN, apple] Categories (3, object): [apple, banana, cherry]
D. [apple, banana, apple] Categories (3, object): [apple, banana, cherry]

Solution

  1. Step 1: Understand remove_categories effect on data

    Removing 'banana' category replaces all 'banana' values with NaN and removes 'banana' from categories.
  2. Step 2: Analyze the printed output

    Values become ['apple', NaN, 'apple'] and categories become ['apple', 'cherry'] with length 2.
  3. Final Answer:

    [apple, NaN, apple] Categories (2, object): [apple, cherry] -> Option A
  4. Quick Check:

    Removed category replaced by NaN [OK]
Hint: Removing category replaces values with NaN [OK]
Common Mistakes:
  • Expecting removed category values to stay unchanged
  • Thinking categories length remains same
  • Confusing categories list after removal
4. Consider this code snippet:
import pandas as pd
cat = pd.Categorical(['dog', 'cat', 'bird'], categories=['dog', 'cat', 'bird'])
cat = cat.add_categories('fish')
cat = cat.remove_categories('cat')

What is the error in this code?
medium
A. Categorical cannot have more than 3 categories.
B. add_categories cannot add a single category.
C. You cannot chain add_categories and remove_categories.
D. remove_categories expects a list, not a string.

Solution

  1. Step 1: Check method argument types

    remove_categories() requires a list or iterable of categories to remove, not a single string.
  2. Step 2: Identify the error cause

    Passing 'cat' as a string causes a TypeError or unexpected behavior.
  3. Final Answer:

    remove_categories expects a list, not a string. -> Option D
  4. Quick Check:

    Pass list to remove_categories [OK]
Hint: Always pass list to remove_categories, not single string [OK]
Common Mistakes:
  • Passing single string instead of list to remove_categories
  • Thinking add_categories can't add one item
  • Assuming chaining methods is invalid
5. You have a pandas categorical column df['status'] with categories ['new', 'in_progress', 'done']. You want to add a new category 'archived' and remove 'new' without losing data for other rows. Which sequence of commands achieves this correctly?
hard
A. df['status'] = df['status'].remove_categories(['new']) df['status'].add_categories(['archived'])
B. df['status'] = df['status'].add_categories(['archived']) df['status'] = df['status'].remove_categories(['new'])
C. df['status'].remove_categories(['new']) df['status'].add_categories(['archived'])
D. df['status'].add_categories('archived') df['status'].remove_categories('new')

Solution

  1. Step 1: Add new category before removing

    Adding 'archived' first ensures it exists as a valid category before removal.
  2. Step 2: Remove 'new' category properly

    Removing 'new' replaces its values with NaN, so do this after adding new category and assign back to column.
  3. Step 3: Assign results back to the column

    Both methods return new categorical objects, so assign back to df['status'].
  4. Final Answer:

    df['status'] = df['status'].add_categories(['archived']) df['status'] = df['status'].remove_categories(['new']) -> Option B
  5. Quick Check:

    Add then remove, assign back [OK]
Hint: Add categories first, then remove, assign back [OK]
Common Mistakes:
  • Removing category before adding new one
  • Not assigning back to the DataFrame column
  • Passing string instead of list to methods
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