Python Pandas CategoricalIndex - Get the categories of this categorical

To get the categories of a categorical index, use the categories property of the CategoricalIndex in Pandas. A CategoricalIndex can only take on a limited, and usually fixed, number of possible values (categories).

Creating a CategoricalIndex

First, let's create a CategoricalIndex with specific categories and ordering ?

import pandas as pd

# Create CategoricalIndex with ordered categories
catIndex = pd.CategoricalIndex(
    ["p", "q", "r", "s", "p", "q", "r", "s"], 
    ordered=True, 
    categories=["p", "q", "r", "s"]
)

print("Categorical Index...")
print(catIndex)
Categorical Index...
CategoricalIndex(['p', 'q', 'r', 's', 'p', 'q', 'r', 's'], categories=['p', 'q', 'r', 's'], ordered=True, dtype='category')

Getting Categories

Use the categories property to retrieve the categories from the CategoricalIndex ?

import pandas as pd

catIndex = pd.CategoricalIndex(
    ["p", "q", "r", "s", "p", "q", "r", "s"], 
    ordered=True, 
    categories=["p", "q", "r", "s"]
)

# Get the categories
categories = catIndex.categories
print("Categories from CategoricalIndex:")
print(categories)
print("\nType of categories:", type(categories))
Categories from CategoricalIndex:
Index(['p', 'q', 'r', 's'], dtype='object')

Type of categories: <class 'pandas.core.indexes.base.Index'>

Working with Different Categories

You can create CategoricalIndex with various data types as categories ?

import pandas as pd

# Example with numeric categories
numeric_cat = pd.CategoricalIndex(
    [1, 2, 3, 1, 2, 3], 
    categories=[1, 2, 3, 4], 
    ordered=True
)

print("Numeric CategoricalIndex:")
print(numeric_cat)
print("\nNumeric Categories:")
print(numeric_cat.categories)

# Example with string categories
string_cat = pd.CategoricalIndex(
    ["small", "medium", "large", "small"], 
    categories=["small", "medium", "large"], 
    ordered=True
)

print("\nString Categories:")
print(string_cat.categories)
Numeric CategoricalIndex:
CategoricalIndex([1, 2, 3, 1, 2, 3], categories=[1, 2, 3, 4], ordered=True, dtype='category')

Numeric Categories:
Index([1, 2, 3, 4], dtype='int64')

String Categories:
Index(['small', 'medium', 'large'], dtype='object')

Conclusion

The categories property returns an Index object containing all possible categories defined for the CategoricalIndex. This is useful for understanding the categorical structure and accessing the complete set of allowed values.

Updated on: 2026-03-26T16:55:23+05:30

522 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements