Python 意外的集合索引行为

Python 意外的集合索引行为,python,pandas,Python,Pandas,这种行为令我相当惊讶,因为我希望第二个输出是 data = [['g1','a',1],['g1','b',2],['g2','b',3],['g2','a',4]] df = pandas.DataFrame(data=data, columns=['group','name','count']) print df.set_index(['group','name']) print df.set_index(['name','group']) count group

这种行为令我相当惊讶,因为我希望第二个输出是

data = [['g1','a',1],['g1','b',2],['g2','b',3],['g2','a',4]]
df = pandas.DataFrame(data=data, columns=['group','name','count'])
print df.set_index(['group','name'])
print df.set_index(['name','group'])

            count
group name       
g1    a         1
      b         2
g2    b         3
      a         4
            count
name group       
a    g1         1
b    g1         2
     g2         3
a    g2         4

需要首先对数据帧进行排序,以获得所需的输出:

            count
name group       
a    g1         1
     g2         4
b    g1         2
     g2         3
事实上,关于为什么这一点在文档中很重要的讨论现在就在这里
In [12]: df.sort_values('name').set_index(['name','group'])
Out[12]: 
            count
name group       
a    g1         1
     g2         4
b    g1         2
     g2         3