Computer >> Máy Tính >  >> Lập trình >> Python

Python Pandas CategoricalIndex - Đổi tên danh mục bằng lambda

Để đổi tên danh mục bằng Lambda, hãy sử dụng CategoricalIndex rename_categories () trong Pandas.

Đầu tiên, hãy nhập các thư viện được yêu cầu -

import pandas as pd

CategoricalIndex chỉ có thể nhận một số giá trị giới hạn và thường cố định. Đặt danh mục cho danh mục bằng cách sử dụng tham số "danh mục". Xử lý phân loại theo thứ tự bằng cách sử dụng tham số "đã sắp xếp" -

catIndex = pd.CategoricalIndex(["P", "Q", "R", "S","P", "Q", "R", "S"], ordered=True, categories=["P", "Q", "R", "S"])

Hiển thị CategoricalIndex -

print("CategoricalIndex...\n",catIndex)

Đổi tên danh mục bằng cách sử dụng rename_categories (). Đặt các danh mục mới có sử dụng lambda và đặt chữ thường cho tất cả các danh mục -

print("\nCategoricalIndex after renaming categories...\n",catIndex.rename_categories(lambda a: a.lower()))

Ví dụ

Sau đây là mã -

import pandas as pd

# CategoricalIndex can only take on a limited, and usually fixed, number of possible values
# Set the categories for the categorical using the "categories" parameter
# Treat the categorical as ordered using the "ordered" parameter
catIndex = pd.CategoricalIndex(["P", "Q", "R", "S","P", "Q", "R", "S"], ordered=True, categories=["P", "Q", "R", "S"])

# Display the CategoricalIndex
print("CategoricalIndex...\n",catIndex)

# Get the categories
print("\nDisplayingCategories from CategoricalIndex...\n",catIndex.categories)

# Rename categories using rename_categories()
# Set the new categories that with use lambda and set lowercase for all the categories
print("\nCategoricalIndex after renaming categories...\n",catIndex.rename_categories(lambda a: a.lower()))

Đầu ra

Điều này sẽ tạo ra kết quả sau -

CategoricalIndex...
CategoricalIndex(['P', 'Q', 'R', 'S', 'P', 'Q', 'R', 'S'], categories=['P', 'Q', 'R', 'S'], ordered=True, dtype='category')

DisplayingCategories from CategoricalIndex...
Index(['P', 'Q', 'R', 'S'], dtype='object')

CategoricalIndex after renaming categories...
CategoricalIndex(['p', 'q', 'r', 's', 'p', 'q', 'r', 's'], categories=['p', 'q', 'r', 's'], ordered=True, dtype='category')