有没有办法将key
函数(如sorted
需要)传递给DataFrame.sortlevel
Pandas 中的方法?
我的问题是我正在为我的索引使用元组,我想指定它们应该如何相对于彼此进行排序。
有没有办法将key
函数(如sorted
需要)传递给DataFrame.sortlevel
Pandas 中的方法?
我的问题是我正在为我的索引使用元组,我想指定它们应该如何相对于彼此进行排序。
我认为您可以按如下方式实现:
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