2016-03-10 3 views
-1

У меня есть панд dataFrame, которые состоят из следующих действий:алгоритмов ранжирования в питоне

Athlete A   Athlete B  Athlete C 
speed=10   speed=12  speed=6 
endurance=60  endurance=59 endurance=64 

Я хотел бы ранжировать силу этих трех спортсменов в зависимости от их скорости и выносливости. Я хотел бы дать немного больший вес (0,6) для выносливости. Есть ли библиотека python для ранжирования на основе нескольких условий?

+3

Вы можете просто добавить колонку для скорости и выносливости, а затем сделать просуммировать 0.6 * вес + скорость и ранг на это, пожалуйста, покажите ваши усилия – EdChum

+0

Возможный дубликата [ Добавление вычисленного столбца (ов) к кадру данных в пандах] (http://stackoverflow.com/questions/12376863/adding-calculated-columns-to-a-dataframe-in-pandas) –

ответ

4

Вы должны добавить новый столбец в свою фреймворк с расчетным порядком, а затем отсортировать его по этому столбцу. Пример:

import pandas as pd 

df = pd.DataFrame({'Athlete': ['A','B','C'], 
        'Speed': [10,12,6], 
        'Endurance': [60,59,64]}) 

df['sorting_column'] = df.Speed*0.4 + df.Endurance*0.6 #I think you want 40% speed and 60% endurance right? 
df.sort(columns='sorting_column') 

Результат:

Athlete Endurance Speed sorting_column 
2  C   64  6   29.2 
0  A   60  10   30.0 
1  B   59  12   30.8 
+0

Это работает, но я думаю, может быть мы можем нормализовать скорость и выносливость прежде, чем создать новый столбец. – user3841581

Смежные вопросы