A category in pandas is a special data type for variables with a fixed set of possible values. It saves memory and speeds up operations when you have repeated values like colors or types.
Click to reveal answer
beginner
How do you add a new category to a pandas Categorical column?
Use the method cat.add_categories() on the column. For example, df['col'] = df['col'].cat.add_categories(['new_cat']) adds 'new_cat' as a new category.
Click to reveal answer
beginner
How can you remove a category from a pandas Categorical column?
Use cat.remove_categories() method. For example, df['col'] = df['col'].cat.remove_categories(['old_cat']) removes 'old_cat' from categories.
Click to reveal answer
intermediate
What happens if you remove a category that is currently used in the data?
The values in that category become NaN (missing) because the category no longer exists in the list of allowed categories.
Click to reveal answer
intermediate
How do you reset categories to only those currently used in the data?
Use cat.remove_unused_categories() to drop categories not used in the data, cleaning up the category list.
Click to reveal answer
Which pandas method adds a new category to a Categorical column?
Acat.append_categories()
Bcat.insert_categories()
Ccat.add_categories()
Dcat.new_category()
✗ Incorrect
The correct method to add categories is cat.add_categories().
What happens to data values in a category that is removed using cat.remove_categories()?
AThey are duplicated
BThey become NaN (missing)
CThey are converted to strings
DThey stay unchanged
✗ Incorrect
Removing a category causes its values to become NaN because the category no longer exists.
How do you remove categories that are not used in the data?
Acat.remove_unused_categories()
Bcat.drop_unused()
Ccat.clean_categories()
Dcat.trim_categories()
✗ Incorrect
The method cat.remove_unused_categories() removes categories not present in the data.
Why use categories in pandas?
ATo sort numbers faster
BTo store images
CTo create plots automatically
DTo save memory and speed up operations
✗ Incorrect
Categories save memory and speed up operations for repeated values.
Which of these is NOT a valid way to modify categories in pandas?
Acat.update_categories()
Bcat.remove_categories()
Ccat.add_categories()
Dcat.remove_unused_categories()
✗ Incorrect
There is no cat.update_categories() method in pandas.
Explain how to add and remove categories in a pandas Categorical column. Include what happens to data when categories are removed.
Think about how categories control allowed values and what happens if you remove one.
You got /3 concepts.
Describe why and how you would clean up unused categories in a pandas Categorical column.
Consider categories that no longer appear in the data.
You got /3 concepts.
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
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.
Step 2: Differentiate from other methods
Unlike remove_categories() which removes categories, add_categories() only adds new ones.
Final Answer:
It adds new possible categories to an existing categorical column. -> Option C
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
Step 1: Recall the correct method name
The pandas method to remove categories is remove_categories().
Step 2: Match the syntax with the method
df['color'].remove_categories(['red', 'blue']) uses remove_categories() correctly on the categorical column.
Final Answer:
df['color'].remove_categories(['red', 'blue']) -> Option A
Quick Check:
Use remove_categories() to remove categories [OK]
Hint: Remember method name is remove_categories, not drop or delete [OK]
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
Step 1: Check method argument types
remove_categories() requires a list or iterable of categories to remove, not a single string.
Step 2: Identify the error cause
Passing 'cat' as a string causes a TypeError or unexpected behavior.
Final Answer:
remove_categories expects a list, not a string. -> Option D
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
Step 1: Add new category before removing
Adding 'archived' first ensures it exists as a valid category before removal.
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.
Step 3: Assign results back to the column
Both methods return new categorical objects, so assign back to df['status'].
Final Answer:
df['status'] = df['status'].add_categories(['archived'])
df['status'] = df['status'].remove_categories(['new']) -> Option B
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 unknownstrongwhile earning +1 Grip toward your certificate.