While working with hierarchical index levels in pandas, what is the difference between swaplevel() and reorder_levels()?
While working with hierarchical index levels in pandas, what is the difference between swaplevel() and reorder_levels()?
When there only two levels swaplevel and reorder_levels almost same , but when your df have more than 3 levels , personally think reorder_levels is more elegant way
For example :
idx = pd.MultiIndex.from_arrays([[1, 1, 2], [1, 2, 2], [3, 3, 3],[1,1,1]])
df = pd.DataFrame(columns=idx, index=[1, 2, 3, 4])
IF we want to change the order level=[0,1,2,3] to [3,2,1,0]
With swaplevel : need multiple calls
df.swaplevel(0,3,axis=1).swaplevel(1,2,axis=1)
1
3
1 2
1 1 2
1 NaN NaN NaN
2 NaN NaN NaN
3 NaN NaN NaN
4 NaN NaN NaN
With reorder_levels : Only one call
df.reorder_levels([3,2,1,0],axis=1)
1
3
1 2
1 1 2
1 NaN NaN NaN
2 NaN NaN NaN
3 NaN NaN NaN
4 NaN NaN NaN