熊猫多索引数据帧排序



我正在寻找一种根据其中一个索引对多索引数据框进行排序的方法。 这是一个例子...

我有。。。

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

最新更新