【发布时间】:2020-03-09 00:47:46
【问题描述】:
df = pd.DataFrame({'id': [1, 2, 3, 4, 5],
'p1': [0, 0, 1, 1, 2],
'p2': [9, 2, 3, 5, 3],
'p3': [1, 3, 10, 3, 7],
'p4': [4, 4, 7, 1, 10]})
df = df.set_index('id')
df
p1 p2 p3 p4
id
1 0 9 1 4
2 0 2 3 4
3 1 3 10 7
4 1 5 3 1
5 2 3 7 10
现在假设我有一个数据框,其中包含 df 数据框的每个元素所需的逐行位置。例如,说,
order=np.argsort(-df.values,axis=1)
order
array([[1, 3, 2, 0],
[3, 2, 1, 0],
[2, 3, 1, 0],
[1, 2, 0, 3],
[3, 2, 1, 0]], dtype=int64)
如何根据 order 数组的元素对 df 数据框元素进行排序?
想要的结果是
p1 p2 p3 p4
id
1 9 4 1 0
2 4 3 2 0
3 10 7 3 1
4 5 3 1 1
5 10 7 3 2
【问题讨论】:
-
你介意发布你的预期输出吗?
-
我已经添加了所需的输出。谢谢。
-
我想要一种适用于任意顺序数组的方法。