我正在尝试将多索引设置为简单的pandas数据帧。第一个指数是商店类型,第二个指标是水果类型。我期待在第一栏看到两组Shop1和Shop2,但最后又有三组,Shop1,Shop2和Shop1。为什么会这样?
Area2 = pd.DataFrame({'01/01/2017': [2000, 2500, 100, 1600],
'01/02/2017': [2000, 2500, 50, 1000],
'01/03/2017': [2000, 500, 50, 1600,],
'01/04/2017': [2500, 2000, 0, 1600],
'Fruit': ['Apples', 'Banana', 'Pears', 'b/berry'],
'Shop': ['Shop1', 'Shop2', 'Shop1', 'Shop1']})
S2 = Area2.set_index(['Shop', 'Fruit'])
当前输出
01/01/2017 01/02/2017 01/03/2017 01/04/2017
Shop Fruit
Shop1 Apples 2000 2000 2000 2500
Shop2 Banana 2500 2500 500 2000
Shop1 Pears 100 50 50 0
b/berry 1600 1000 1600 1600
我的期待
01/01/2017 01/02/2017 01/03/2017 01/04/2017
Shop Fruit
Shop1 Apples 2000 2000 2000 2500
Pears 100 50 50 0
b/berry 1600 1000 1600 1600
Shop2 Banana 2500 2500 500 2000
答案 0 :(得分:1)
我认为您需要sort_index
来排序MultiIndex
:
df = S2.sort_index()
print (df)
01/01/2017 01/02/2017 01/03/2017 01/04/2017
Shop Fruit
Shop1 Apples 2000 2000 2000 2500
Pears 100 50 50 0
b/berry 1600 1000 1600 1600
Shop2 Banana 2500 2500 500 2000
但默认情况下,第一级MultiIndex没有显示相同的连续数据。