Article Categories
- All Categories
-
Data Structure
-
Networking
-
RDBMS
-
Operating System
-
Java
-
MS Excel
-
iOS
-
HTML
-
CSS
-
Android
-
Python
-
C Programming
-
C++
-
C#
-
MongoDB
-
MySQL
-
Javascript
-
PHP
-
Economics & Finance
Selected Reading
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.
Advertisements
