@@ -745,32 +745,47 @@ def set_levels(self, levels, level=None, inplace=False, verify_integrity=True):
745745 Examples
746746 --------
747747 >>> idx = pd.MultiIndex.from_tuples([(1, 'one'), (1, 'two'),
748- (2, 'one'), (2, 'two')],
748+ (2, 'one'), (2, 'two'),
749+ (3, 'one'), (3, 'two')],
749750 names=['foo', 'bar'])
750- >>> idx.set_levels([['a', 'b'], [1, 2]])
751+ >>> idx.set_levels([['a', 'b', 'c' ], [1, 2]])
751752 MultiIndex([('a', 1),
752753 ('a', 2),
753754 ('b', 1),
754- ('b', 2)],
755+ ('b', 2),
756+ ('c', 1),
757+ ('c', 2)],
755758 names=['foo', 'bar'])
756- >>> idx.set_levels(['a', 'b'], level=0)
759+ >>> idx.set_levels(['a', 'b', 'c' ], level=0)
757760 MultiIndex([('a', 'one'),
758761 ('a', 'two'),
759762 ('b', 'one'),
760- ('b', 'two')],
763+ ('b', 'two'),
764+ ('c', 'one'),
765+ ('c', 'two')],
761766 names=['foo', 'bar'])
762767 >>> idx.set_levels(['a', 'b'], level='bar')
763768 MultiIndex([(1, 'a'),
764769 (1, 'b'),
765770 (2, 'a'),
766- (2, 'b')],
771+ (2, 'b'),
772+ (3, 'a'),
773+ (3, 'b')],
767774 names=['foo', 'bar'])
768- >>> idx.set_levels([['a', 'b'], [1, 2]], level=[0, 1])
775+
776+ If any of the levels passed to ``set_levels()`` exceeds the
777+ existing length, all of the values from that argument will
778+ be stored in the MultiIndex levels, though the values will
779+ be truncated in the MultiIndex output.
780+
781+ >>> idx.set_levels([['a', 'b', 'c'], [1, 2, 3, 4]], level=[0, 1])
769782 MultiIndex([('a', 1),
770783 ('a', 2),
771784 ('b', 1),
772785 ('b', 2)],
773786 names=['foo', 'bar'])
787+ >>> idx.set_levels([['a', 'b', 'c'], [1, 2, 3, 4]], level=[0, 1]).levels
788+ FrozenList([['a', 'b', 'c'], [1, 2, 3, 4]])
774789 """
775790 if is_list_like (levels ) and not isinstance (levels , Index ):
776791 levels = list (levels )
0 commit comments