可以设置多列索引顺序吗?

时间:2018-12-07 19:15:19

标签: python pandas

我有一个带有列多索引的DataFrame,由于我想一次绘制多个箱形图,所以它是从unstack操作中获取的。

该多索引的第二级是分类(r),其定义顺序与字母顺序不同。

dh2.sort_index(axis=1,level=['P','r'],inplace=True)

在未堆叠的DataFrame上选择方框图x轴的顺序,r值按字母顺序排序,因此顺序错误!

如何获得正确的订单?

1 个答案:

答案 0 :(得分:0)

让我们假设您想要的类别顺序为['a','c','b']

import pandas as pd
t = pd.DataFrame(data={'P':[0,1,2], 
                       'r':['a','c','b'],
                       'x':[1.,2.,3.]})
t['r'] = t['r'].astype('category', ordered=True, categories=['a','c','b'])
t.set_index(['P','r'], inplace=True)
t.sort_index(inplace=True)
     x
P r     
a 0  1.0
c 1  2.0
b 2  3.0