Skip to content

Commit d1b10ea

Browse files
author
dkane01
committed
DOC: clarify MultiIndex.swaplevel default behavior
1 parent e9e1b32 commit d1b10ea

File tree

1 file changed

+25
-11
lines changed

1 file changed

+25
-11
lines changed

pandas/core/indexes/multi.py

Lines changed: 25 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2607,6 +2607,8 @@ def swaplevel(self, i=-2, j=-1) -> MultiIndex:
26072607
26082608
Calling this method does not change the ordering of the values.
26092609
2610+
Default is to swap the last two levels of the MultiIndex.
2611+
26102612
Parameters
26112613
----------
26122614
i : int, str, default -2
@@ -2626,24 +2628,36 @@ def swaplevel(self, i=-2, j=-1) -> MultiIndex:
26262628
Series.swaplevel : Swap levels i and j in a MultiIndex.
26272629
DataFrame.swaplevel : Swap levels i and j in a MultiIndex on a
26282630
particular axis.
2629-
26302631
Examples
26312632
--------
26322633
>>> mi = pd.MultiIndex(
2633-
... levels=[["a", "b"], ["bb", "aa"]], codes=[[0, 0, 1, 1], [0, 1, 0, 1]]
2634+
... levels=[["a", "b"], ["bb", "aa"], ["aaa", "bbb"]],
2635+
... codes=[[0, 0, 1, 1], [0, 1, 0, 1], [1, 0, 1, 0]],
26342636
... )
26352637
>>> mi
2636-
MultiIndex([('a', 'bb'),
2637-
('a', 'aa'),
2638-
('b', 'bb'),
2639-
('b', 'aa')],
2638+
MultiIndex([('a', 'bb', 'bbb'),
2639+
('a', 'aa', 'aaa'),
2640+
('b', 'bb', 'bbb'),
2641+
('b', 'aa', 'aaa')],
26402642
)
2641-
>>> mi.swaplevel(0, 1)
2642-
MultiIndex([('bb', 'a'),
2643-
('aa', 'a'),
2644-
('bb', 'b'),
2645-
('aa', 'b')],
2643+
>>> mi.swaplevel()
2644+
MultiIndex([('a', 'bbb', 'bb'),
2645+
('a', 'aaa', 'aa'),
2646+
('b', 'bbb', 'bb'),
2647+
('b', 'aaa', 'aa')],
2648+
)
2649+
>>> mi.swaplevel(0)
2650+
MultiIndex([('bbb', 'bb', 'a'),
2651+
('aaa', 'aa', 'a'),
2652+
('bbb', 'bb', 'b'),
2653+
('aaa', 'aa', 'b')],
26462654
)
2655+
>>> mi.swaplevel(0, 1)
2656+
MultiIndex([('bb', 'a', 'bbb'),
2657+
('aa', 'a', 'aaa'),
2658+
('bb', 'b', 'bbb'),
2659+
('aa', 'b', 'aaa')],
2660+
)
26472661
"""
26482662
new_levels = list(self.levels)
26492663
new_codes = list(self.codes)

0 commit comments

Comments
 (0)