Pandas MultiIndex数据帧排序

时间:2015-04-19 03:37:53

标签: python pandas

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

我有......

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

1 个答案:

答案 0 :(得分:0)

我不确定在foo之后条形图是如何排序的,但我认为这是你想要的:

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