Сортировать столбец Dataframe по сходству, первая строка должна быть фиксированной Python - PullRequest
0 голосов
/ 13 марта 2020

enter image description here

Я хочу заказать Рамку в зависимости от первого ряда B. Таким образом, первый ряд B всегда фиксирован, а второй, третий .... ряд отсортирован по сходству первого ряда B. Он также должен быть гибким, B может содержать 2-20 или даже больше строк

Я ожидаю такой результат

enter image description here

Любой Идея как это сделать?

1 Ответ

1 голос
/ 13 марта 2020

Если вы сортируете значения по разнице от первого значения в b, вы можете просто использовать этот индекс в исходном кадре данных:

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
...