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