我有点卡住排序一个熊猫多指标,其用于我的数据集之一的列:
MultiIndex(levels=[['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], ['Number of Visitors', 'Profit']],
labels=[[2, 2, 5, 5, 8, 8, 11, 11], [0, 1, 0, 1, 0, 1, 0, 1]],
names=['Month', None])
我希望在每个月的访问者数量之前显示利润,所以总的来说,我对当前的级别感到满意,但希望第二级别的标签为[1,0,1,0,1 ,0,1,0],而不是[0,1,0,1,0,1,0,1]。有什么方法可以做到这一点?我已经尝试过sort_index,但是无法使其按我想要的方式工作。
提前谢谢!
答案 0 :(得分:0)
在第二级使用reindex
:
mux = pd.MultiIndex(levels=[['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
['Number of Visitors', 'Profit']],
labels=[[2, 2, 5, 5, 8, 8, 11, 11], [0, 1, 0, 1, 0, 1, 0, 1]],
names=['Month', None])
print (mux)
df = pd.DataFrame({'A':range(8)}, index=mux)
print (df)
A
Month
Mar Number of Visitors 0
Profit 1
Jun Number of Visitors 2
Profit 3
Sep Number of Visitors 4
Profit 5
Dec Number of Visitors 6
Profit 7
df = df.reindex(['Profit','Number of Visitors'], level=1)
print (df)
A
Month
Mar Profit 1
Number of Visitors 0
Jun Profit 3
Number of Visitors 2
Sep Profit 5
Number of Visitors 4
Dec Profit 7
Number of Visitors 6