Python无法识别多级索引

时间:2017-12-01 22:40:57

标签: python pandas sorting

我的数据框目前看起来像这样:

country series year value 
usa     a      2010 21
usa     b      2015 22
usa     a      2017 23
usa     b      2010 22
usa     b      2017 23

aus     a      2010 21
aus     b      2015 22
aus     a      2017 23
aus     b      2010 22
aus     b      2017 23

当我运行此代码时,它会减少国家/地区的双重性,但不会像我期望的那样减少系列。

pop2.set_index(['Country','Series'])

我想:

country series year value 
usa     a      2010 21
               2017 23
        b      2010 22
               2015 22
               2017 23
aus     a      2010 21                  
               2017 23
        b      2010 22
               2015 22
               2017 23

相反,它正在返回:

country series year value 
usa     a      2010 21
        b      2015 22
        a      2017 23
        b      2010 22
        b      2017 23
aus     a      2010 21
        b      2015 22
        a      2017 23
        b      2010 22
        b      2017 23

1 个答案:

答案 0 :(得分:1)

每行必须有一个索引标签才能在数据框中显示。因此,您需要的是另一个级别的索引,然后您可以显示索引"分组"如你所愿。

让我们试试这个:

df.set_index(['country','series',np.arange(df.shape[0])]).sort_index()

输出:

                  year  value
country series               
aus     a      5  2010     21
               7  2017     23
        b      6  2015     22
               8  2010     22
               9  2017     23
usa     a      0  2010     21
               2  2017     23
        b      1  2015     22
               3  2010     22
               4  2017     23
相关问题