0

有没有办法将key函数(如sorted需要)传递给DataFrame.sortlevelPandas 中的方法?

我的问题是我正在为我的索引使用元组,我想指定它们应该如何相对于彼此进行排序。

4

1 回答 1

0

我认为您可以按如下方式实现:

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
于 2013-11-06T11:11:36.717 回答