Python 访问熊猫中索引对象的类别代码

Python 访问熊猫中索引对象的类别代码,python,pandas,indexing,series,categorical-data,Python,Pandas,Indexing,Series,Categorical Data,如何访问CategoricalIndex的类别代码 是我用于序列的,但此方法不适用于索引对象。目前,我先转换成一个系列,但这是昂贵的,似乎反模式 这是一个简单的例子: values = list('abeadc') s = pd.Series(pd.Categorical(values, categories=list('abcde'))) print(s.cat.codes.tolist()) # [0, 1, 4, 0, 3, 2] i = pd.CategoricalIndex(pd

如何访问CategoricalIndex的类别代码

是我用于序列的,但此方法不适用于索引对象。目前,我先转换成一个系列,但这是昂贵的,似乎反模式

这是一个简单的例子:

values = list('abeadc')

s = pd.Series(pd.Categorical(values, categories=list('abcde')))

print(s.cat.codes.tolist())
# [0, 1, 4, 0, 3, 2]

i = pd.CategoricalIndex(pd.Categorical(values, categories=list('abcde')))

print(i.cat.codes.tolist())
# AttributeError: 'CategoricalIndex' object has no attribute 'cat'

print(i.to_series().cat.codes.tolist())
# [0, 1, 4, 0, 3, 2]
您可以直接从分类索引访问“代码”属性:

并且,如您的示例所示,您可以将其转换为Python列表:

i.codes.tolist()
# [0, 1, 4, 0, 3, 2]
i.codes.tolist()
# [0, 1, 4, 0, 3, 2]