热线电话:13121318867

登录
2020-04-30 阅读量: 4609
交换多层索引的位置,问题详情见正文。

具有双重行索引的表如下:

请交换行索引“公司”和“部门”的位置,实现效果如下:

参考代码:

list1 = [["第一分公司","第二分公司",]
,["销售部","市场部","行政部"]]
index = pd.MultiIndex.from_product(list1, names=['公司', '部门'])
df = pd.DataFrame({"姓名":["Allen","Lucy","Tom","Alice","Tim","Lily"],"工龄":np.random.randint(1,5,6)},index = index)
df
#方法一
df.swaplevel(0, 1, axis=0) #只能两个索引之间转换
#方法二
df.reorder_levels([1, 0], axis=0) #可以多个索引转换

代码结果:

0.0000
5
关注作者
收藏
评论(1)

发表评论
yuechuchen
2020-04-30
解题思路:交换索引位置有两种方法,第一种通过df.swaplevel(),该方法的局限只能实现两个索引之间位置交换,如果dataframe有三重及以上的行索引并且所有索引位置都需要进行更改,需要使用df.reorder_levels(),将需要进行交换的索引位置打包成列表传入方法。上述两中方法在使用过程中都需要指定轴信息,例如题目中要求对行索引进行交换,指定axis参数为0.
0.0000 0 0 回复
推荐帖子
条评论