pandas.MultiIndex.set_levels

MultiIndex.set_levels(self, levels, level=None, inplace=False, verify_integrity=True)[source]

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

Parameters
levelssequence or list of sequence

new level(s) to apply

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

level(s) to set (None for all levels)

inplacebool

if True, mutates in place

verify_integritybool (default True)

if True, checks that levels and codes are compatible

Returns
new index (of same type and class…etc)

Examples

>>> idx = pd.MultiIndex.from_tuples([(1, 'one'), (1, 'two'),
                                    (2, 'one'), (2, 'two')],
                                    names=['foo', 'bar'])
>>> idx.set_levels([['a','b'], [1,2]])
MultiIndex(levels=[['a', 'b'], [1, 2]],
           codes=[[0, 0, 1, 1], [0, 1, 0, 1]],
           names=['foo', 'bar'])
>>> idx.set_levels(['a','b'], level=0)
MultiIndex(levels=[['a', 'b'], ['one', 'two']],
           codes=[[0, 0, 1, 1], [0, 1, 0, 1]],
           names=['foo', 'bar'])
>>> idx.set_levels(['a','b'], level='bar')
MultiIndex(levels=[[1, 2], ['a', 'b']],
           codes=[[0, 0, 1, 1], [0, 1, 0, 1]],
           names=['foo', 'bar'])
>>> idx.set_levels([['a','b'], [1,2]], level=[0,1])
MultiIndex(levels=[['a', 'b'], [1, 2]],
           codes=[[0, 0, 1, 1], [0, 1, 0, 1]],
           names=['foo', 'bar'])
Scroll To Top