pandas.MultiIndex.set_levels#

MultiIndex.set_levels(levels, level=None, inplace=None, verify_integrity=True)[源代码]#

在多重索引上设置新的级别。默认返回新索引。

参数
levels序列或序列列表

要应用的新级别。

levelINT、级别名称或INT/级别名称序列(默认为无)

要设置的级别(所有级别均为无)。

inplace布尔尔

如果为True,则就地变异。

1.2.0 版后已移除.

verify_integrity布尔值,默认为True

如果为True,则检查级别和代码是否兼容。

退货
新索引(相同类型和类...等)或无

与调用方相同的类型,如果 inplace=True

示例

>>> idx = pd.MultiIndex.from_tuples(
...     [
...         (1, "one"),
...         (1, "two"),
...         (2, "one"),
...         (2, "two"),
...         (3, "one"),
...         (3, "two")
...     ],
...     names=["foo", "bar"]
... )
>>> idx
MultiIndex([(1, 'one'),
    (1, 'two'),
    (2, 'one'),
    (2, 'two'),
    (3, 'one'),
    (3, 'two')],
   names=['foo', 'bar'])
>>> idx.set_levels([['a', 'b', 'c'], [1, 2]])
MultiIndex([('a', 1),
            ('a', 2),
            ('b', 1),
            ('b', 2),
            ('c', 1),
            ('c', 2)],
           names=['foo', 'bar'])
>>> idx.set_levels(['a', 'b', 'c'], level=0)
MultiIndex([('a', 'one'),
            ('a', 'two'),
            ('b', 'one'),
            ('b', 'two'),
            ('c', 'one'),
            ('c', 'two')],
           names=['foo', 'bar'])
>>> idx.set_levels(['a', 'b'], level='bar')
MultiIndex([(1, 'a'),
            (1, 'b'),
            (2, 'a'),
            (2, 'b'),
            (3, 'a'),
            (3, 'b')],
           names=['foo', 'bar'])

如果任何级别传递到 set_levels() 超过现有长度,则该参数的所有值都将存储在多重索引级别中,尽管这些值将在多重索引输出中被截断。

>>> idx.set_levels([['a', 'b', 'c'], [1, 2, 3, 4]], level=[0, 1])
MultiIndex([('a', 1),
    ('a', 2),
    ('b', 1),
    ('b', 2),
    ('c', 1),
    ('c', 2)],
   names=['foo', 'bar'])
>>> idx.set_levels([['a', 'b', 'c'], [1, 2, 3, 4]], level=[0, 1]).levels
FrozenList([['a', 'b', 'c'], [1, 2, 3, 4]])