pandas.MultiIndex.set_levels#

MultiIndex.set_levels(уровни, *, уровень=None, verify_integrity=True)[источник]#

Установить новые уровни на MultiIndex. По умолчанию возвращает новый индекс.

Параметры:
уровнипоследовательность или список последовательностей

Новый уровень(и) для применения.

уровеньint, имя уровня или последовательность int/имен уровней (по умолчанию None)

Уровень(и) для установки (None для всех уровней).

verify_integritybool, по умолчанию True

Если True, проверяет совместимость уровней и кодов.

Возвращает:
MultiIndex

Примеры

>>> 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() превышает существующую длину, все значения из этого аргумента будут сохранены в уровнях MultiIndex, хотя значения будут усечены в выводе MultiIndex.

>>> 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]])