Python:一个播放器出现两次Bug

时间:2015-08-02 22:16:41

标签: python pandas

我正在用Python编写一个脚本,根据他们去年的表现对即将到来的梦幻足球赛季的球员进行排名。我从雅虎那里收集他们的数据并根据数据创建了Player对象(四分卫的QB,跑回的RB,宽接收器的WR和紧张的TE)。

然后我按每个玩家的calculatePoints()方法对所有Player对象的数组进行排序。值得一提的是,如果玩家被暂停一定数量的游戏,我会按照比例金额折扣他的预计积分。例如。汤姆布拉迪将出场4场比赛,所以他的预测得分将乘以75%。

无论如何,我已经完成了脚本,运行它并检查输出(脚本创建并写入名为output.txt的文件)。这就是我所看到的:

enter image description here

职位#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

0 个答案:

没有答案