Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中的排序算法_Python_Algorithm_Pandas_Dataframe_Ranking - Fatal编程技术网

python中的排序算法

python中的排序算法,python,algorithm,pandas,dataframe,ranking,Python,Algorithm,Pandas,Dataframe,Ranking,我有一个pandas数据框,包括以下内容: Athlete A Athlete B Athlete C speed=10 speed=12 speed=6 endurance=60 endurance=59 endurance=64 我想根据这三名运动员的速度和耐力对他们的力量进行排名。我想给耐力增加一点重量(0.6)。是否有任何python库可以根据多种条件进行排名?您应该按照计算的顺序向数据框中添加一个新列,然后按该列对

我有一个pandas数据框,包括以下内容:

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

我想根据这三名运动员的速度和耐力对他们的力量进行排名。我想给耐力增加一点重量(0.6)。是否有任何python库可以根据多种条件进行排名?

您应该按照计算的顺序向数据框中添加一个新列,然后按该列对其进行排序。例如:

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

您应该使用计算出的顺序向数据帧中添加一个新列,然后按该列对其进行排序。例如:

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.6*重量+速度和等级,请显示你的努力可能的副本。你只需为速度和耐力添加一列,然后在此基础上求和0.6*重量+速度和等级,请显示你的努力可能的副本,但我认为在制作新专栏之前,我们可以先将速度和耐力标准化。这是可行的,但我认为在制作新专栏之前,我们可以先将速度和耐力标准化。