run.py 文件源码

python
阅读 33 收藏 0 点赞 0 评论 0

项目:pongr 作者: wseaton 项目源码 文件源码
def ratings():
    s = '''
    select
        first_name,
        last_name,
        alias,
        rating,
        sigma,
        trueskill
    from ratings
    left join player using (alias)
    order by 3 desc
    '''

    s_team = '''
        select
            player1,
            player2,
            rating,
            sigma,
            trueskill
        from team_doubles_ratings
        --left join player using (alias)
        order by 3 desc
        '''

    s_rating_df = pd.read_sql(s, con=engine)
    d_rating_df = pd.read_sql(s.replace('ratings', 'doubles_ratings'), con=engine)
    t_rating_df = pd.read_sql(s_team, con=engine)


    chart = dist_plot(s_rating_df)

    singles_rating_df_4_template = s_rating_df.copy()

    s_rating_df = s_rating_df.to_dict('records')
    d_rating_df = d_rating_df.to_dict('records')
    t_rating_df = t_rating_df.to_dict('records')
    # top is for the data table as records, bottom is TrueSkill objects
    s_r_dict = rating_df_to_dict(singles_rating_df_4_template)

    rdo = OrderedDict(sorted(s_r_dict.items(), key=lambda x: x[1].mu, reverse=True))

    percent_df = pd.DataFrame()

    for pair in list(itertools.combinations_with_replacement(rdo, 2)):
        prob = win_probability(rdo[pair[0]], rdo[pair[1]])
        percent_df.loc[pair[0], pair[1]] = prob
        percent_df.loc[pair[1], pair[0]] = 1 - prob

    matrix = win_probability_matrix(percent_df)

    return render_template('ratings.html', singles_ratings=s_rating_df,
                           doubles_ratings=d_rating_df, team_df=t_rating_df,
                           dist=chart, matrix=matrix)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号