访问 Pandas 中索引对象的类别代码
Accessing category codes for Index objects in Pandas
如何访问 Pandas CategoricalIndex
的类别代码?
pd.Series.cat.codes
是我用的系列,但是这个方法不适用于Index
对象。目前,我先转换为系列,但这很昂贵,而且似乎是反模式。
这是一个最小的例子:
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]
您可以直接从 CategoricalIndex
:
访问 codes
属性
i.codes
# array([0, 1, 4, 0, 3, 2], dtype=int8)
并且,如您的示例所示,您可以将其转换为 Python 列表:
i.codes.tolist()
# [0, 1, 4, 0, 3, 2]
如何访问 Pandas CategoricalIndex
的类别代码?
pd.Series.cat.codes
是我用的系列,但是这个方法不适用于Index
对象。目前,我先转换为系列,但这很昂贵,而且似乎是反模式。
这是一个最小的例子:
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]
您可以直接从 CategoricalIndex
:
codes
属性
i.codes
# array([0, 1, 4, 0, 3, 2], dtype=int8)
并且,如您的示例所示,您可以将其转换为 Python 列表:
i.codes.tolist()
# [0, 1, 4, 0, 3, 2]