multiindex level输出附加行

时间:2017-09-12 08:44:57

标签: pandas

我正在尝试将多索引设置为简单的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

1 个答案:

答案 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没有显示相同的连续数据。