【发布时间】:2019-03-08 19:33:35
【问题描述】:
我正在研究 ATP Tour 男子网球数据。目前,我有一个包含约 60,000 个匹配项的 Pandas 数据框。每行都包含有关比赛的信息/统计数据,分为赢家和输家。我已经按日期对数据框进行了排序。目前我正在尝试计算每场比赛的获胜者和失败者的 ELO 评级(因此每一行)。 要计算 ELO 等级,需要两位玩家在上一场比赛中的 ELO 等级。另一个困难出现了,因为当前比赛的赢家可能是他上一场比赛的输家。因此,当前比赛的 'winner_player_id' 值可能在前一场比赛的 'loser_player_id' 列中。
我不确定如何有效地为每行的两名玩家选择之前的 ELO 评分,因为这需要跨多个列进行搜索。
每一行包括以下列:
array(['match_id', 'tourney_dates', 'round_order', 'tourney_name',
'tourney_year_id', 'tourney_round_name', 'winner_player_id',
'winner_slug', 'loser_player_id', 'loser_slug', 'elo_player_1', 'elo_player_2'])
感谢您的宝贵时间!
【问题讨论】:
-
另外,我觉得你的问题与你给它的标题不太相关,因为它不是不同列索引的总数,而是每行搜索以前的值。另外我认为您可以从数据框中检查
apply方法(pandas.pydata.org/pandas-docs/stable/reference/api/…)