pandas.MultiIndex.set_codes

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

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

New in version 0.24.0: New name for deprecated method set_labels.

Parameters:
codes : sequence or list of sequence

new codes to apply

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

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

inplace : bool

if True, mutates in place

verify_integrity : bool (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_codes([[1, 0, 1, 0], [0, 0, 1, 1]])
MultiIndex([(2, 'one'),
            (1, 'one'),
            (2, 'two'),
            (1, 'two')],
           names=['foo', 'bar'])
>>> idx.set_codes([1, 0, 1, 0], level=0)
MultiIndex([(2, 'one'),
            (1, 'two'),
            (2, 'one'),
            (1, 'two')],
           names=['foo', 'bar'])
>>> idx.set_codes([0, 0, 1, 1], level='bar')
MultiIndex([(1, 'one'),
            (1, 'one'),
            (2, 'two'),
            (2, 'two')],
           names=['foo', 'bar'])
>>> idx.set_codes([[1, 0, 1, 0], [0, 0, 1, 1]], level=[0, 1])
MultiIndex([(2, 'one'),
            (1, 'one'),
            (2, 'two'),
            (1, 'two')],
           names=['foo', 'bar'])
Scroll To Top