Dataframe的列相似,第一行应固定为Python

问题描述 投票:-1回答:1

enter image description here

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

我期望这样的结果

enter image description here

任何想法如何做到这一点?

pandas dataframe sorting similarity
1个回答
0
投票

如果按照与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
© www.soinside.com 2019 - 2024. All rights reserved.