代码之家  ›  专栏  ›  技术社区  ›  jpp

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

  •  1
  • jpp  · 技术社区  · 6 年前

    如何访问熊猫的类别代码 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]
    
    1 回复  |  直到 6 年前
        1
  •  3
  •   muzzyq    6 年前

    您可以访问 codes 属性直接来自 CategoricalIndex 以下内容:

    i.codes
    # array([0, 1, 4, 0, 3, 2], dtype=int8)
    

    和您的示例一样,您可以将其转换为python列表:

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