Bird
Raised Fist0
Pandasdata~10 mins

Category codes and labels 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 create a categorical column from a list of colors.

Pandas
import pandas as pd
colors = ['red', 'blue', 'green', 'blue', 'red']
cat_colors = pd.Categorical([1])
print(cat_colors)
Drag options to blanks, or click blank then click option'
Apd.Series(colors)
B['red', 'blue']
C['green', 'blue']
Dcolors
Attempts:
3 left
💡 Hint
Common Mistakes
Passing a list with only some colors instead of the full list.
Passing a pandas Series instead of a list.
2fill in blank
medium

Complete the code to get the category codes from the categorical data.

Pandas
import pandas as pd
colors = pd.Categorical(['red', 'blue', 'green', 'blue', 'red'])
codes = colors.[1]
print(codes)
Drag options to blanks, or click blank then click option'
Alabels
Bvalues
Ccodes
Dcategories
Attempts:
3 left
💡 Hint
Common Mistakes
Using labels which is deprecated.
Using categories which returns category names, not codes.
3fill in blank
hard

Fix the error in the code to print the category labels of the categorical data.

Pandas
import pandas as pd
colors = pd.Categorical(['red', 'blue', 'green', 'blue', 'red'])
print(colors.[1])
Drag options to blanks, or click blank then click option'
Alabels
Bcategories
Ccodes
Dvalues
Attempts:
3 left
💡 Hint
Common Mistakes
Using labels which is deprecated and causes error.
Using codes which returns integers, not labels.
4fill in blank
hard

Fill both blanks to create a categorical from a list and print its codes.

Pandas
import pandas as pd
fruits = ['apple', 'banana', 'apple', 'orange']
cat_fruits = pd.Categorical([1])
print(cat_fruits.[2])
Drag options to blanks, or click blank then click option'
Afruits
Bcodes
Ccategories
D['apple', 'banana']
Attempts:
3 left
💡 Hint
Common Mistakes
Using categories instead of codes for the second blank.
Passing a wrong list to pd.Categorical().
5fill in blank
hard

Fill all three blanks to create a categorical with custom categories and print codes and categories.

Pandas
import pandas as pd
animals = ['cat', 'dog', 'bird', 'dog', 'cat']
cat_animals = pd.Categorical([1], categories=[2], ordered=True)
print(cat_animals.[3])
print(cat_animals.categories)
Drag options to blanks, or click blank then click option'
Aanimals
B['dog', 'cat', 'bird']
Ccodes
D['cat', 'dog', 'bird']
Attempts:
3 left
💡 Hint
Common Mistakes
Using the wrong order of categories.
Printing categories twice instead of codes and categories.

Practice

(1/5)
1. What does cat.codes show in a pandas categorical Series?
easy
A. The data type of the Series
B. The numeric codes representing each category
C. The count of each category
D. The text labels of the categories

Solution

  1. Step 1: Understand what cat.codes returns

    cat.codes gives the integer codes for each category in the Series, replacing repeated text with numbers.
  2. Step 2: Differentiate from cat.categories

    cat.categories shows the text labels, not the codes.
  3. Final Answer:

    The numeric codes representing each category -> Option B
  4. Quick Check:

    cat.codes = numeric codes [OK]
Hint: Remember: codes are numbers, categories are labels [OK]
Common Mistakes:
  • Confusing codes with category labels
  • Thinking codes show counts
  • Assuming codes show data type
2. Which of the following is the correct way to access the category labels of a pandas categorical Series s?
easy
A. s.cat.categories
B. s.cat.codes
C. s.categories
D. s.cat.labels

Solution

  1. Step 1: Recall the attribute for category labels

    The category labels are accessed via cat.categories on the Series.
  2. Step 2: Check the options for correct syntax

    s.cat.categories is the correct syntax; s.categories is invalid, and cat.labels does not exist.
  3. Final Answer:

    s.cat.categories -> Option A
  4. Quick Check:

    Category labels = s.cat.categories [OK]
Hint: Use cat.categories to get labels, not just categories [OK]
Common Mistakes:
  • Using s.categories instead of s.cat.categories
  • Confusing cat.codes with labels
  • Trying to use non-existent cat.labels
3. Given the code:
import pandas as pd
s = pd.Series(['apple', 'banana', 'apple', 'orange'], dtype='category')
print(s.cat.codes.tolist())

What is the output?
medium
A. [0, 1, 0, 2]
B. [1, 2, 1, 3]
C. [0, 0, 1, 2]
D. [1, 0, 1, 2]

Solution

  1. Step 1: Identify categories and their order

    Categories are sorted alphabetically by default: ['apple', 'banana', 'orange'] with codes 0,1,2 respectively.
  2. Step 2: Map each value to its code

    'apple' -> 0, 'banana' -> 1, 'apple' -> 0, 'orange' -> 2, so the list is [0, 1, 0, 2].
  3. Final Answer:

    [0, 1, 0, 2] -> Option A
  4. Quick Check:

    Alphabetical categories -> codes match [OK]
Hint: Categories sorted alphabetically by default [OK]
Common Mistakes:
  • Assuming codes start at 1 instead of 0
  • Ignoring alphabetical sorting of categories
  • Mixing up category order
4. Which of the following is correct about this code snippet?
import pandas as pd
s = pd.Series(['cat', 'dog', 'cat'], dtype='category')
s.cat.categories = ['dog', 'cat']
print(s.cat.codes.tolist())
medium
A. You cannot assign new categories with different order directly
B. The categories list must be sorted alphabetically
C. You must convert Series to string before assigning categories
D. The code will run without errors and print [0, 1, 0]

Solution

  1. Step 1: Understand category assignment rules

    Assigning to cat.categories redefines the labels for existing codes without changing the codes or raising errors, as long as new list has same length and unique values.
  2. Step 2: Trace execution

    Original categories ['cat', 'dog'], codes [0,1,0]. New ['dog', 'cat'] same length/unique, codes unchanged, prints [0, 1, 0].
  3. Final Answer:

    The code will run without errors and print [0, 1, 0] -> Option D
  4. Quick Check:

    New categories redefine code labels, codes unchanged [OK]
Hint: Reassigning cat.categories changes labels but keeps codes intact [OK]
Common Mistakes:
  • Thinking reordering causes ValueError
  • Expecting codes to adjust to new order like [1, 0, 1]
  • Assuming categories must stay alphabetical
5. You have a pandas categorical Series s with categories ['low', 'medium', 'high']. You want to rename the categories to ['L', 'M', 'H'] without changing the data. Which code correctly returns the renamed Series?
hard
A. s.cat.categories = ['L', 'M', 'H']
B. s.cat.categories.rename(['L', 'M', 'H'])
C. s.cat.rename_categories(['L', 'M', 'H'])
D. s.rename_categories(['L', 'M', 'H'])

Solution

  1. Step 1: Understand how to rename categories

    The method cat.rename_categories() returns a new Series with renamed categories without changing data codes.
  2. Step 2: Check other options for correctness

    Direct assignment to cat.categories works but can cause errors if not careful; cat.categories.rename() is invalid; rename_categories() is not a Series method.
  3. Final Answer:

    s.cat.rename_categories(['L', 'M', 'H']) -> Option C
  4. Quick Check:

    Use cat.rename_categories() to rename safely [OK]
Hint: Use cat.rename_categories() to rename categories safely [OK]
Common Mistakes:
  • Trying to rename categories by invalid methods
  • Directly assigning categories without matching length
  • Confusing Series methods with cat accessor 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