我正在用Python编写一个脚本,根据他们去年的表现对即将到来的梦幻足球赛季的球员进行排名。我从雅虎那里收集他们的数据并根据数据创建了Player对象(四分卫的QB,跑回的RB,宽接收器的WR和紧张的TE)。
然后我按每个玩家的calculatePoints()方法对所有Player对象的数组进行排序。值得一提的是,如果玩家被暂停一定数量的游戏,我会按照比例金额折扣他的预计积分。例如。汤姆布拉迪将出场4场比赛,所以他的预测得分将乘以75%。
无论如何,我已经完成了脚本,运行它并检查输出(脚本创建并写入名为output.txt的文件)。这就是我所看到的:
职位#36 和#37是Tom Brady。显然这是一个错误,但我真的不确定它是如何发生的。为了它的价值,我从这个链接中掠过四分卫:
http://sports.yahoo.com/nfl/stats/byposition?pos=QB&conference=NFL&year=season_2014&timeframe=All&qualified=1&sort=49&old_category=QB
Tom Brady只出现过一次。我只运行了我的getAllQBs()方法,它返回一个包含Tom Brady两个对象的数组。所以它发生在刮擦数据的方法中。这是方法:
def getAllQBs():
QBs = []
table = pd.read_html(requests.get(QB_LINK).content)[5]
finalTable = table[2 : ]
for (_, row) in finalTable.iterrows():
name = row[0]
team = row[1]
passingYards = float(row[8])
passingTouchdowns = float(row[11])
interceptions = float(row[12])
rushingYards = float(row[14])
rushingTouchdowns = float(row[17])
rushingFumbles = float(row[20])
if name in SUSPENSIONS.keys():
newQB = QB(name, team, rushingYards, rushingTouchdowns, rushingFumbles, passingYards, passingTouchdowns, interceptions, gamesSuspended=SUSPENSIONS[name])
QBs.append(newQB)
else:
newQB = QB(name, team, rushingYards, rushingTouchdowns, rushingFumbles, passingYards, passingTouchdowns, interceptions)
QBs.append(newQB)
return QBs
知道我为什么要复制汤姆布拉迪?
感谢您的帮助, bclayman