按相似度对 Dataframe 的列进行排序,第一行应固定 Python

Sort Column of Dataframe by similarity, first row should be fixed Python

我想根据 B 的第一行对帧进行排序。因此 B 的第一行始终是固定的,第二、第三 .... 行按 B 的第一行的相似性排序。它也应该是灵活的,B 可以包含 2-20 甚至更多行

我期待这样的结果

知道怎么做吗?

如果根据与 b 中第一个值的差异对值进行排序,则可以将该索引用于原始 DataFrame:

In [35]: df = pd.DataFrame({'a': range(6), 'b': [483, 479, 503, 479, 485, 495]})

In [36]: df
Out[36]:
   a    b
0  0  483
1  1  479
2  2  503
3  3  479
4  4  485
5  5  495

In [37]: idx = df['b'].sub(df.loc[0, 'b']).abs().sort_values().index

In [38]: df.loc[idx]
Out[38]:
   a    b
0  0  483
4  4  485
1  1  479
3  3  479
5  5  495
2  2  503