Python 如何在两列之间查找最新实例,并从该实例的不同列中获取a值?

Python 如何在两列之间查找最新实例,并从该实例的不同列中获取a值?,python,pandas,sorting,pandas-groupby,Python,Pandas,Sorting,Pandas Groupby,我有一个比赛历史数据集,我想为球员找到最新的elo。我正在使用python和pandas,数据集的示例如下: tournament_date winner_id loser_id winner_elo loser_elo winner_delta loser_delta other_columns ----------------- ------------ ---------- ------------- ------------ ------

我有一个比赛历史数据集,我想为球员找到最新的elo。我正在使用python和pandas,数据集的示例如下:


  tournament_date    winner_id   loser_id    winner_elo    loser_elo   winner_delta   loser_delta     other_columns  
 ----------------- ------------ ---------- ------------- ------------ -------------- --------------- --------------- 
  2017-08-24               512        543          1128         1102              6              -6             ...  
  2017-08-24               100        517          1153         1062            0.4            -0.4             ...  
  2017-08-24               512        547          1128         1114            3.4            -3.4             ...  
  2017-08-24               543        517          1102         1062            4.8            -4.8             ...  
  2017-08-24               547        100          1114         1153           11.2           -11.2             ...  
  2017-08-24               517        512          1062         1128            9.9            -9.9             ...  
  2017-08-24               543        100          1102         1153            9.1            -9.1             ...  
  2017-08-24               517        547          1062         1114            9.1            -9.1             ...  
  2017-08-26               543        517          1103         1089            5.2            -5.2             ...  
  2017-08-26               547        551          1119         1165            8.8            -8.8             ...  
  2017-08-26               543        557          1103         1214            8.5            -8.5             ...  
  2017-08-26               551        517          1165         1089              1              -1             ...  
  2017-08-26               557        547          1089         1119            7.8            -7.8             ...  
  2017-08-26               551        543          1165         1103              3              -3             ...  





赢家和输家在我的数据集中每天都会更新,但每场比赛都会有赢家和输家的增量变化列

我想找到每个玩家id的最新条目(在winner\u id或Losser\u id中),如果在winner\u id列中执行winner\u elo+winner\u delta,则查找最新elo,或者如果玩家的最新实例在Losser\u id列中,则计算Losser\u elo+Losser\u delta

大约有1000个独特的玩家id(500个独特的赢家id和508个输家id)。我试着按赢家id分组,按日期排序,得到最大值,类似地,按输家id分组,按日期排序,但我不知道如何比较它们,找出哪一个是最新的,然后进行所需的计算

我只能想到涉及for循环和if的解决方案,但我想肯定有更好的方法


编辑:这是一个网页抓取项目的一部分,我每天都会收到新的数据,所以我更喜欢适合新条目的解决方案。我会将数据框分成两部分来解决这个问题:从一个中删除失败的数据,从另一个中删除获胜的数据,并将列重命名为简单的“id”。“elo”和“delta”。只需将两个帧连接起来,按日期排序(最近的第一个)和
groupby
player ID


现在,对于每个玩家,只需略过最上面(最近)一行并应用它即可获得当前评级。

刚刚编辑了原始帖子,我每天都会获得新数据,因此我不确定此解决方案是否最佳。添加的更新使这从设计角度来看是一个不同的问题,比堆栈溢出句柄更广泛。