pandas.MultiIndex.swaplevel#

MultiIndex.swaplevel(i=-2, j=-1)[source]#

交换级别 i 和级别 j。

调用此方法不会改变值的顺序。

默认是交换 MultiIndex 的最后两个级别。

参数:
iint, str, 默认 -2

要交换的第一个索引级别。可以传递级别名称作为字符串。参数的类型可以混合。如果 i 是负整数,则第一个级别相对于 MultiIndex 的末尾进行索引。

jint, str, 默认 -1

要交换的第二个索引级别。可以传递级别名称作为字符串。参数的类型可以混合。如果 j 是负整数,则第二个级别相对于 MultiIndex 的末尾进行索引。

返回:
MultiIndex

一个新的 MultiIndex。

另请参阅

Series.swaplevel

在 MultiIndex 中交换级别 i 和 j。

DataFrame.swaplevel

在特定轴的 MultiIndex 中交换级别 i 和 j。

示例

>>> mi = pd.MultiIndex(
...     levels=[["a", "b"], ["bb", "aa"], ["aaa", "bbb"]],
...     codes=[[0, 0, 1, 1], [0, 1, 0, 1], [1, 0, 1, 0]],
... )
>>> mi
MultiIndex([('a', 'bb', 'bbb'),
            ('a', 'aa', 'aaa'),
            ('b', 'bb', 'bbb'),
            ('b', 'aa', 'aaa')],
           )
>>> mi.swaplevel()
MultiIndex([('a', 'bbb', 'bb'),
            ('a', 'aaa', 'aa'),
            ('b', 'bbb', 'bb'),
            ('b', 'aaa', 'aa')],
           )
>>> mi.swaplevel(0)
MultiIndex([('bbb', 'bb', 'a'),
            ('aaa', 'aa', 'a'),
            ('bbb', 'bb', 'b'),
            ('aaa', 'aa', 'b')],
           )
>>> mi.swaplevel(0, 1)
MultiIndex([('bb', 'a', 'bbb'),
            ('aa', 'a', 'aaa'),
            ('bb', 'b', 'bbb'),
            ('aa', 'b', 'aaa')],
        )