我正在寻找一种根据其中一个索引对多索引数据框进行排序的方法。 这是一个例子...
我有。。。
mi = pd.MultiIndex.from_tuples([('baz', 'y'), ('foo', 'y'), ('bar', 'y'), ('baz', 'z'), ('foo', 'z'), ('bar', 'z')],names=['first','second'])
df = pd.DataFrame(np.random.randn(6),index=mi)
print df
产生
first second
baz y 1.902902
foo y -0.128341
bar y 0.481100
baz z -2.185144
foo z 1.015320
bar z -1.624616
如果我这样做...
df2 = df.sort()
我得到 :
print df2
first second
bar y 0.481100
z -1.624616
baz y 1.902902
z -2.185144
foo y -0.128341
z 1.015320
我怎样才能对 df 进行排序,以便我得到:
first second
baz y 1.902902
z -2.185144
foo y -0.128341
z 1.015320
bar y 0.481100
z -1.624616
我不确定 foo 之后的 bar 是如何排序的,但我认为这就是你想要的:
df.sortlevel(0)
0
first second
bar y -0.114659
z 0.453896
baz y -0.327006
z 0.685782
foo y 0.444256
z -0.167179