我有三个数据集,我根据一些键进行了合并,并按照升序排列了“ registrationdatetime”和“ submissiondatetime”。然后,我应用groupby来按“ contestid”和“ userhandle”对它们进行分组。我还必须计算在当前求解器之前参加比赛的求解器数量,我也为此写了一行,但是
现在,我必须新建一个名为priorperformanceofsolver
的专栏(在最近结束的竞赛中的表现(当前解决者提交的分数在最近结束的竞赛中的得分)。
我的目标是-每个小组都按照race_id进行排列,然后应该有“用户句柄”或参加比赛的人员,按照到达日期的升序排列,以便我算出参加比赛的人最后谁参加了比赛,我想创建一个新的列,称为priorperformanceofsolver,以存储以前的表现
很抱歉,这么长的时间,但是我真的不知道是对还是错,也无法弄清楚如何使priorperformanceofsolver列。
我必须为每个用户句柄搜索每个竞赛,并找到他们参加的每个竞赛,这些竞赛中哪个是最近的竞赛,最近一次竞赛中他们的得分是多少,并存储在名为“ priorperformanceofsolver”的栏中表示他们最近参加的竞赛的得分。请帮助我,我被困住了;如果阅读此超长问题有困难,请发表评论,但如果可能,请帮助我。我是python的新手
'''
dftotal.groupby(["contestID", "userHandle"])
dftotal["registerDateTime"] = pd.to_datetime(dftotal.registerDateTime,
utc=True)
dftotal["RegistrationDateTime"] = dftotal["registerDateTime"]
dftotal["submitDateTime"] = pd.to_datetime(dftotal.submitDateTime, utc
=True)
dftotal["SubmissionDateTime"] = dftotal["submitDateTime"]
dftotal.sort_values(by=['RegistrationDateTime'])
dftotal.sort_values(by = ["SubmissionDateTime"])
dftotal['priorcountofentrants'] =
dftotal.groupby(['contestID']).cumcount()
'''
Data -
contstID userHndle RegistrtnDteTime SubmssnDtTme priorcntofentrnts finalScore
6638 holo 2012-01-0921:45:20 2012-03-1020:45:20 0 100
6638 kolo 2012-01-0922:45:20 2012-03-1023:45:20 1 50
8878 holo 2011-01-0921:45:20 2011-01-1020:45:20 0 100
8878 kolo 2011-01-0922:45:20 2011-01-1023:45:20 1 100
expected -
contstID userHndle RegstrtnDteTme SubmsnDtTm prircntofentrnts finalScore
priorperformce
6638 holo 2012-01-0921:45:20 2012-01-1020:45:20 0 100 100
6638 kolo 2012-01-0922:45:20 2012-01-1023:45:20 0 50 100
因此,此处kolo和holo在他们的名字旁边显示了前一次比赛的分数(最近结束日期明智),即在第8878号比赛中,他们分别获得了100和50的分数,因此在新比赛6638中,他们的名字旁边显示了该分数,然后类似地发生竞赛8878中,它必须搜索求解器的先前性能