表格显示在这里 https://i.stack.imgur.com/Q4Hmo.png
code:
dff = pd.DataFrame({'Country':['France']*4+['China']*4,
'Progress':['Develop','Middle','Operate','Start']*2,
'NumTrans':np.random.randint(100,900,8),
'TransValue':np.random.randint(10000,9999999,8)})
dff = dff.set_index(['Country','Progress']).T
数据和代码如上所示。
我想知道有什么方法可以使用Python将“进度”重新排序为开始-开发-中间-操作。
我尝试使用地图功能并用数字设置每个阶段,但无法从多索引中提取“进度”
Thanks!
reindex
您可以指定要重新索引的级别
cats = ['Start', 'Develop', 'Middle', 'Operate']
dff.reindex(cats, axis=1, level=1)
Country France China
Progress Start Develop Middle Operate Start Develop Middle Operate
NumTrans 772 832 494 793 750 722 818 684
TransValue 7363187 2578816 9764430 4863178 159777 840700 978816 9674337
set_levels
with CategoricalIndex
您可以定义第二级的顺序,然后排序。
lvl1 = dff.columns.levels[1]
cats = ['Start', 'Develop', 'Middle', 'Operate']
cati = pd.CategoricalIndex(
lvl1,
categories=cats,
ordered=True
)
dff.columns.set_levels(
cati, level=1, inplace=True
)
dff.sort_index(1)
Country China France
Progress Start Develop Middle Operate Start Develop Middle Operate
NumTrans 750 722 818 684 772 832 494 793
TransValue 159777 840700 978816 9674337 7363187 2578816 9764430 4863178
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)