获取多索引列值

Get a multiple-index column values

假设我们有一个 DataFrame dfN 行:

| multiple-index |  | ordinary columns |
I_A, I_B, I_C, I_D,  C_A, C_B, C_C, C_D

我们如何提取 I_B 索引列的所有 N 值? df.index 为我们提供了 I_A...I_D 的所有组合,但这不是我们需要的.当然,我们可以迭代它,但它会降低生产力,是否有更简单、更直接的方法?

感谢您的宝贵时间。

更新

例如,我们有 df 生成者:

data = {
    "animal": ["cat", "dog", "parrot", "hamster"],
    "size":   ["big", "big", "small", "small"],
    "feet":   [4, 4, 2, 4]
}

multi = pd.DataFrame(data)

multi.set_index(["size", "feet"], inplace = True)

这是:

              animal
 size feet |
  big    4 |     cat
  big    4 |     dog
small    2 |  parrot
small    4 | hamster

其索引为:

MultiIndex([(  'big', 4),
            (  'big', 4),
            ('small', 2),
            ('small', 4)],
           names=['size', 'feet'])

我们希望从中获得所有尺寸:

['big', 'big', 'small', 'small']

我们该怎么做?

我想你在找 MultiIndex.get_level_values:

multi.index.get_level_values('size')

输出:Index(['big', 'big', 'small', 'small'], dtype='object', name='size')

或如列表:

multi.index.get_level_values('size').to_list()

输出:['big', 'big', 'small', 'small']