Pandas DataFrame.sortlevel键

Pandas DataFrame.sortlevel键,pandas,Pandas,是否有方法将键函数(如排序获取)传递到Pandas中的DataFrame.sortlevel方法 我的问题是,我在索引中使用元组,我想指定它们之间的相对排序方式。我认为您可以通过以下方式实现这一点: import pandas as pd import numpy as np arrays = [['bar', 'bar', 'baz', 'baz', 'foo', 'foo', 'qux', 'qux'], ['one', 'two', 'one', 'two', 'on

是否有方法将
函数(如
排序
获取)传递到Pandas中的
DataFrame.sortlevel
方法


我的问题是,我在索引中使用元组,我想指定它们之间的相对排序方式。

我认为您可以通过以下方式实现这一点:

import pandas as pd
import numpy as np

arrays = [['bar', 'bar', 'baz', 'baz', 'foo', 'foo', 'qux', 'qux'],
          ['one', 'two', 'one', 'two', 'one', 'two', 'one', 'two']]

index = pd.MultiIndex.from_tuples(zip(*arrays), names=['first', 'second'])
s = pd.Series(np.random.randint(0, 20, 8), index=index)

keyfunc = lambda x:x[::-1]

key = map(keyfunc, s.index.get_level_values(0))
index = np.argsort(key)
s.take(index)
输出:

first  second
foo    one        0
       two        3
bar    one        9
       two        8
qux    one        4
       two       12
baz    one       11
       two        1
dtype: int64