Python - Check if the Pandas Index holds categorical data

In Pandas, you can check if an Index contains categorical data using the is_categorical() method. This method returns True if the Index holds categorical data, otherwise False.

Syntax

index.is_categorical()

Creating a Categorical Index

First, let's create a Pandas Index with categorical data using the astype() method ?

import pandas as pd

# Creating Pandas index with categorical data
index = pd.Index(["Electronics", "Accessories", "Furniture"]).astype("category")

# Display the Pandas index
print("Pandas Index...")
print(index)

# Check the data type
print("\nThe dtype:")
print(index.dtype)

# Check whether index holds categorical data
print("\nDoes Index hold categorical data?")
print(index.is_categorical())
Pandas Index...
CategoricalIndex(['Electronics', 'Accessories', 'Furniture'], categories=['Accessories', 'Electronics', 'Furniture'], ordered=False, dtype='category')

The dtype:
category

Does Index hold categorical data?
True

Comparing with Regular Index

Let's compare the behavior with a regular Index that doesn't contain categorical data ?

import pandas as pd

# Create regular string index
regular_index = pd.Index(["Electronics", "Accessories", "Furniture"])

# Create categorical index
categorical_index = pd.Index(["Electronics", "Accessories", "Furniture"]).astype("category")

print("Regular Index:")
print("Type:", type(regular_index).__name__)
print("Is categorical:", regular_index.is_categorical())

print("\nCategorical Index:")
print("Type:", type(categorical_index).__name__)
print("Is categorical:", categorical_index.is_categorical())
Regular Index:
Type: Index
Is categorical: False

Categorical Index:
Type: CategoricalIndex
Is categorical: True

Practical Example

Here's a practical example showing how to check categorical data in a DataFrame index ?

import pandas as pd

# Create a DataFrame with categorical index
data = {'Sales': [1000, 1500, 800]}
categories = ["Electronics", "Accessories", "Furniture"]
df = pd.DataFrame(data, index=pd.CategoricalIndex(categories))

print("DataFrame:")
print(df)

print("\nIndex information:")
print("Is categorical:", df.index.is_categorical())
print("Categories:", df.index.categories.tolist())
print("Number of categories:", len(df.index.categories))
DataFrame:
             Sales
Electronics   1000
Accessories   1500
Furniture      800

Index information:
Is categorical: True
Categories: ['Accessories', 'Electronics', 'Furniture']
Number of categories: 3

Conclusion

The is_categorical() method is a simple way to verify if a Pandas Index contains categorical data. This is useful when working with data that has predefined categories and you need to ensure proper data type handling.

Updated on: 2026-03-26T15:58:58+05:30

1K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements