在pandas中使用分层索引级别时,swaplevel()和reorder_levels()之间的区别是什么
发布于 2019-01-15 10:12:20
当只有两个级别的swaplevel和reorder_levels几乎相同时,但当你的df有超过3个级别时,个人认为reorder_levels是更优雅的方式
例如:
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])如果我们想要将order level=0,1,2,3更改为3,2,1,0
使用swaplevel:需要多个调用
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使用reorder_levels:只有一个调用
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 NaNhttps://stackoverflow.com/questions/54191730
复制相似问题