我有两列,“之前”和“之后”。我们在这里将其称为BfAf。根据其他许多附加列,它们的排名如下:

Bf  Af
3   5
0   2
1   4
5   3
2   0
4   1


现在,他们需要分类的方式是

Bf  Af
0*  2
2   0
-----
1*  4
4   1
-----
3*  5
5   3


因此,通过Bf,最低值为0。因此我们在顶部设置0。因此,最上面的对现在为0-2,并且紧随其后的是相反的顺序2-0。

然后,我们移至下一对前后对,即1-4,因为1是最低的对,并且我们已经从Bf排序了2。相反的是4-1,紧随其后。

最后,要在Bf中排序的下一个值是3-5,紧接着是5-3。

有人知道如何排序吗?

最佳答案

联合会

df.reindex(pd.DataFrame(np.sort(df.values,1)).sort_values([0,1]).index)
Out[444]:
   Bf  Af
1   0   2
4   2   0
2   1   4
5   4   1
0   3   5
3   5   3

10-06 14:24