Skip to content

Commit ba9de8a

Browse files
lodagrowesm
authored andcommitted
adding DataFrame.reorder_levels().
1 parent b27a074 commit ba9de8a

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed

pandas/core/frame.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1794,6 +1794,32 @@ def swaplevel(self, i, j, axis=0):
17941794
result.columns = result.columns.swaplevel(i, j)
17951795
return result
17961796

1797+
def reorder_levels(self, order, axis=0):
1798+
"""
1799+
Rearrange index levels using input order.
1800+
May not drop or duplicate levels
1801+
1802+
Parameters
1803+
----------
1804+
order: list of int representing new level order.
1805+
(reference level by number not by key)
1806+
axis: where to reorder levels
1807+
1808+
Returns
1809+
-------
1810+
type of caller (new object)
1811+
"""
1812+
if not isinstance(self._get_axis(axis), MultiIndex):
1813+
raise Exception('Can only reorder levels on a hierarchical axis.')
1814+
1815+
result = self.copy()
1816+
1817+
if axis == 0:
1818+
result.index = result.index.reorder_levels(order)
1819+
else:
1820+
result.columns = result.columns.reorder_levels(order)
1821+
return result
1822+
17971823
#----------------------------------------------------------------------
17981824
# Filling NA's
17991825

0 commit comments

Comments
 (0)