有没有办法获取 Pandas MultiIndex 中所有级别的所有值?

问题描述 投票:0回答:1

输入

idx = pd.MultiIndex.from_product([['A', 'B'], ['C', 'D']])

idx

MultiIndex([('A', 'C'),
            ('A', 'D'),
            ('B', 'C'),
            ('B', 'D')],
           )

所需输出:

[level0值,level1值](值可以是索引或列表等..)

输入所需的输出:

[['A', 'A', 'B', 'B'], ['C', 'D', 'C', 'D']]

我的尝试1:

>>> idx.to_frame().T.values.tolist()

[['A', 'A', 'B', 'B'], ['C', 'D', 'C', 'D']]

我的尝试2:

>>> [idx.get_level_values(i) for i in range(len(idx[0]))]

[Index(['A', 'A', 'B', 'B'], dtype='object'),
 Index(['C', 'D', 'C', 'D'], dtype='object')]

我的两次尝试都达到了预期的结果。

但是,有没有一个函数可以执行这个呢?或者有更简单的方法吗?

pandas
1个回答
0
投票

简单的方法

zip
:

out = list(zip(*idx))

输出:

[('A', 'A', 'B', 'B'), ('C', 'D', 'C', 'D')]

© www.soinside.com 2019 - 2024. All rights reserved.