我在给机器人比赛的队伍排名。他们将分三个阶段比赛。每个阶段都有总分和持续时间。样本数据如下:
如果我不需要比较时间,那么python的“max()”函数就可以工作了
data["max"] = data[["stage1","stage2","stage3"]].max(axis=1)
我使用pandas库的“sort\u values”方法对它们进行排序。为了给球队排名,我必须在三个阶段中找出最好的分数。如果我不看时间,我可以通过在max方法中插入点来找到最佳分数,但是如果点相等,我应该将它们与它们拥有的最佳时间进行比较。为了能够取得最好的成绩和足够的时间
对于创建数据:
import pandas as pd
import numpy as np
import random
data = pd.DataFrame()
puanlar=[]
for sayi in np.ones(100):
puanlar.append(sayi*random.randrange(1,100))
puanlar2 = []
for sayi in np.ones(100):
puanlar2.append(sayi*random.randrange(1,100))
puanlar3 = []
for sayi in np.ones(100):
puanlar3.append(sayi*random.randrange(1,100))
data["stage1"] = puanlar
data["stage2"] = puanlar2
data["stage3"] = puanlar3
dakika=[]
saniye = []
salise = []
for sayi in np.ones(100):
dakika.append(random.randrange(1,4))
saniye.append(random.randrange(1,60))
salise.append(random.randrange(1,60))
data["stage1_minute"] = dakika
data["stage1_second"] = saniye
data["stage1_millisecond"] = salise
dakika=[]
saniye = []
salise = []
for sayi in np.ones(100):
dakika.append(random.randrange(1,4))
saniye.append(random.randrange(1,60))
salise.append(random.randrange(1,60))
data["stage2_minute"] = dakika
data["stage2_second"] = saniye
data["stage2_millisecond"] = salise
dakika=[]
saniye = []
salise = []
for sayi in np.ones(100):
dakika.append(random.randrange(1,4))
saniye.append(random.randrange(1,60))
salise.append(random.randrange(1,60))
data["stage3_minute"] = dakika
data["stage3_second"] = saniye
data["stage3_millisecond"] = salise
data["max"] = data[["stage1","stage2","stage3"]].max(axis=1)
data.sort_values(['max'], ascending=False,inplace=True)
我将创建相应列的某种组合,然后找到max:
您还可以使用
idxmax()
作为具有max的行的索引相关问题 更多 >
编程相关推荐