Извинения, если это тривиальная задача.Я очень новичок в программировании и Python и учусь как часть моей диссертации.
У меня есть фрейм данных, и я хочу ранжировать каждый столбец внутри него, основываясь на его близости к указанному значению, а не по возрастанию илипо убыванию.
Я работаю над тем, чтобы сравнить маршруты бега / велосипеда.В рамках этого процесса я пытаюсь найти сравнение маршрута запроса с целевым маршрутом на основе нескольких различных атрибутов: расстояния, усиления по высоте, потери по высоте и градиента.Мой результирующий фрейм данных показывает ошибку между двумя маршрутами в каждом атрибуте в сравнении (т. Е. [Значение целевого маршрута - значение маршрута запроса] / значение целевого маршрута).Проблема, с которой я сейчас сталкиваюсь, заключается в ранжировании этих результатов.Поскольку идеальным соответствием будет значение 0, я хочу ранжировать значения на основе их близости к этому.
Кадр данных для ранжирования:
scores = pd.DataFrame({'distance':[0.15, 0.07, -0.09, 0], 'elevation_gain':
[-0.19,-8.39, -0.86, 0],'elevation_loss':[-3.73, -2.51, -0.16, 0],
'gradient': [0.12, 0.39, 2.77, 0]})
В этом случае4-й маршрут - это маршрут запроса, так как в результате получается идеальное совпадение, и поэтому он должен занимать 1-е место.
Поскольку существуют отрицательные значения, я не думаю, что будет подходящим нисходящий рейтинг.
я стремлюсь к следующему:
ranks = pd.DataFrame({'distance':[4, 2, 3, 1], 'elevation_gain': [2,4, 3,
1],'elevation_loss':[4, 3, 2, 1], 'gradient': [2, 3, 4, 1]})
(Извинения, я не знаю, как визуализировать эти фреймы данных, чтобы их было легче переварить)
Затем я мог бы создать новый столбецсуммирование рангов и наименьшее количество баллов указывает на лучшее совпадение.
Спасибо за любую помощь заранее!