from_fields ](pandas.PeriodIndex.from_fields.html)
    * [ pandas.PeriodIndex.from_ordinals ](pandas.PeriodIndex.from_ordinals.html)
  * [ Date offsets ](../offset_frequency.html)
  * [ Window ](../window.html)
  * [ GroupBy ](../groupby.html)
  * [ Resampling ](../resampling.html)
  * [ Style ](../style.html)
  * [ Plotting ](../plotting.html)
  * [ Options and settings ](../options.html)
  * [ Extensions ](../extensions.html)
  * [ Testing ](../testing.html)
  * [ Missing values ](../missing_value.html)

  * [ __ ](../../index.html)
  * [ API reference ](../index.html)
  * __
  * [ pandas.MultiIndex ](pandas.MultiIndex.html)
  * pandas.Multi... 

#  pandas.MultiIndex.set_levels  #

MultiIndex.  set_levels  (  _ levels  _ , _ *  _ , _ level  =  None  _ , _
verify_integrity  =  True  _ )  [ [source]  ](https://github.com/pandas-
dev/pandas/blob/v2.2.2/pandas/core/indexes/multi.py#L948-L1044) #

    

Set new levels on MultiIndex. Defaults to returning new index.

Parameters  :

    

**levels** sequence or list of sequence

    

New level(s) to apply.

**level** int, level name, or sequence of int/level names (default None)

    

Level(s) to set (None for all levels).

**verify_integrity** bool, default True

    

If True, checks that levels and codes are compatible.

Returns  :

    

MultiIndex

    

Examples

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

If any of the levels passed to ` set_levels()  ` exceeds the existing length,
all of the values from that argument will be stored in the MultiIndex levels,
though the values will be truncated in the MultiIndex output.

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

[ __ previous  pandas.MultiIndex.from_frame
](pandas.MultiIndex.from_frame.html "previous page") [ next
pandas.MultiIndex.set_codes  __ ](pandas.MultiIndex.set_codes.html "next
page")

__ On this page

  * ` MultiIndex.set_levels()  `

[ __ Show Source
](../../_sources/reference/api/pandas.MultiIndex.set_levels.rst.txt)

© 2024, pandas via [ NumFOCUS, Inc. ](https://numfocus.org) Hosted by [
OVHcloud ](https://www.ovhcloud.com) .

Created using [ Sphinx ](https://www.sphinx-doc.org/) 7.2.6.  

Built with the [ PyData Sphinx Theme ](https://pydata-sphinx-
theme.readthedocs.io/en/stable/index.html) 0.14.4.