按相似度对 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
我想根据 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