需求
在Series中需要按值对索引进行排序,当值相同时,则按照另一个Series对相同值的索引进行排序。
实现
import pandas as pd
ix = ["b", "a", "d", "c", "e"]
A = pd.Series([3, 1, 2, 2, 3], index=ix)
B = pd.Series([4, 1, 4, 0, 5], index=ix)
# 先按照A中的值对索引进行降序排列,在值相同时,按照B中的值降序排列索引
ix.sort(key=lambda x: (-1 * A[x], -1 * B[x])) # -1表示降序,升序则删掉-1
print(ix) # 输出:['e', 'b', 'd', 'c', 'a']