Skip to content

Instantly share code, notes, and snippets.

@luistelmocosta
Created October 12, 2019 17:43
Show Gist options
  • Save luistelmocosta/a82b83f67627d62951ff93f8b84f57b4 to your computer and use it in GitHub Desktop.
Save luistelmocosta/a82b83f67627d62951ff93f8b84f57b4 to your computer and use it in GitHub Desktop.
player_df = df
player_df['mins_played'] = player_df['mins_played'].astype('int')
player_df['mins_played_2'] = player_df['mins_played'].astype('int')
player_df['ontarget_scoring_att'] = player_df['ontarget_scoring_att'].astype(
'int')
player_df['total_att_assist'] = player_df['total_att_assist'].astype('int')
player_df['aerial_won'] = player_df['aerial_won'].astype('int')
player_df['outfielder_block'] = player_df['outfielder_block'].astype('int')
player_df['ball_recovery'] = player_df['ball_recovery'].astype('int')
player_df['att_ibox_blocked'] = player_df['att_ibox_blocked'].astype('int')
player_df['att_ibox_goal'] = player_df['att_ibox_goal'].astype('int')
player_df['att_ibox_miss'] = player_df['att_ibox_miss'].astype('int')
player_df['att_ibox_post'] = player_df['att_ibox_post'].astype('int')
player_df['att_ibox_target'] = player_df['att_ibox_target'].astype('int')
player_df['attempts_ibox'] = player_df['attempts_ibox'].astype('int')
player_df['big_chance_created'] = player_df['big_chance_created'].astype('int')
player_df['won_contest'] = player_df['won_contest'].astype('int')
player_df['accurate_pass'] = player_df['accurate_pass'].astype('int')
player_df['interception'] = player_df['interception'].astype('int')
player_df['won_tackle'] = player_df['won_tackle'].astype('int')
player_df['accurate_fwd_zone_pass'] = player_df['accurate_fwd_zone_pass'].astype(
'int')
player_df['accurate_cross'] = player_df['accurate_cross'].astype('int')
player_df['final_third_entries'] = player_df['final_third_entries'].astype(
'int')
player_df['pen_area_entries'] = player_df['pen_area_entries'].astype('int')
player_df['penalty_save'] = player_df['penalty_save'].astype('int')
player_df['saved_ibox'] = player_df['saved_ibox'].astype('int')
player_df['saved_obox'] = player_df['saved_obox'].astype('int')
player_df['saves'] = player_df['saves'].astype('int')
player_df['attempts_conceded_ibox'] = player_df['attempts_conceded_ibox'].astype(
'int')
player_df['accurate_fwd_zone_pass'] = player_df['accurate_fwd_zone_pass'].astype(
'int')
player_df['successful_final_third_passes'] = player_df['successful_final_third_passes'].astype(
'int')
player_df['clean_sheet'] = player_df['clean_sheet'].astype('int')
player_df['final_third_entries'] = player_df['final_third_entries'].astype(
'int')
player_df['long_pass_own_to_opp_success'] = player_df['long_pass_own_to_opp_success'].astype(
'int')
player_df['accurate_keeper_sweeper'] = player_df['accurate_keeper_sweeper'].astype(
'int')
player_df['goals_conceded'] = player_df['goals_conceded'].astype('int')
player_df['accurate_long_balls'] = player_df['accurate_long_balls'].astype(
'int')
player_df['accurate_goal_kicks'] = player_df['accurate_goal_kicks'].astype(
'int')
player_df['effective_clearance'] = player_df['effective_clearance'].astype(
'int')
player_df['goals'] = player_df['goals'].astype('int')
player_df['goal_assist'] = player_df['goal_assist'].astype('int')
full_df = player_df.groupby('player_ref').agg({'first_name': 'first',
'price': 'first',
'last_name': 'first',
'pos': 'first',
'attempts_ibox': 'sum',
'mins_played_2': 'sum',
'ontarget_scoring_att': 'sum',
'total_att_assist': 'sum',
'aerial_won': 'sum',
'outfielder_block': 'sum',
'ball_recovery': 'sum',
'att_ibox_blocked': 'sum',
'att_ibox_goal': 'sum',
'att_ibox_miss': 'sum',
'att_ibox_post': 'sum',
'att_ibox_target': 'sum',
'big_chance_created': 'sum',
'won_contest': 'sum',
'accurate_pass': 'sum',
'interception': 'sum',
'won_tackle': 'sum',
'successful_final_third_passes': 'sum',
'goals': 'sum',
'goal_assist': 'sum',
'accurate_fwd_zone_pass': 'sum',
'accurate_cross': 'sum',
'final_third_entries': 'sum',
'pen_area_entries': 'sum',
'attempts_conceded_ibox': 'sum',
'effective_clearance': 'sum',
'penalty_save': 'sum',
'saved_ibox': 'sum',
'saved_obox': 'sum',
'saves': 'sum',
'accurate_long_balls': 'sum',
'accurate_goal_kicks': 'sum',
'clean_sheet': 'sum',
'long_pass_own_to_opp_success': 'sum',
'accurate_keeper_sweeper': 'sum',
'goals_conceded': 'sum'
})
is_90 = full_df['mins_played_2'] >= 90
full_df = full_df[is_90]
qgrid.show_grid(full_df, show_toolbar=True, grid_options={
'forceFitColumns': False, 'defaultColumnWidth': 150})
full_df['Successful Dribbles p90'] = full_df.apply(
lambda row: row['won_contest'] / (row['mins_played_2']/90), axis=1)
full_df['Accurate Pass p90'] = full_df.apply(
lambda row: row['accurate_pass'] / (row['mins_played_2']/90), axis=1)
full_df['Big Chance Created p90'] = full_df.apply(
lambda row: row['big_chance_created'] / (row['mins_played_2']/90), axis=1)
full_df['Inbox Attempts p90'] = full_df.apply(
lambda row: row['attempts_ibox'] / (row['mins_played_2']/90), axis=1)
full_df['Key Passes p90'] = full_df.apply(
lambda row: row['total_att_assist'] / (row['mins_played_2']/90), axis=1)
full_df['SOT p90'] = full_df.apply(
lambda row: row['ontarget_scoring_att'] / (row['mins_played_2']/90), axis=1)
full_df['Aerial Won p90'] = full_df.apply(
lambda row: row['aerial_won'] / (row['mins_played_2']/90), axis=1)
full_df['Blocks p90'] = full_df.apply(
lambda row: row['outfielder_block'] / (row['mins_played_2']/90), axis=1)
full_df['Recoveries p90'] = full_df.apply(
lambda row: row['ball_recovery'] / (row['mins_played_2']/90), axis=1)
full_df['Interceptions p90'] = full_df.apply(
lambda row: row['interception'] / (row['mins_played_2']/90), axis=1)
full_df['Tackles p90'] = full_df.apply(
lambda row: row['won_tackle'] / (row['mins_played_2']/90), axis=1)
full_df['Acc Final 3rd Passes p90'] = full_df.apply(
lambda row: row['successful_final_third_passes'] / (row['mins_played_2']/90), axis=1)
full_df['Goals p90'] = full_df.apply(
lambda row: row['goals'] / (row['mins_played_2']/90), axis=1)
full_df['Assists p90'] = full_df.apply(
lambda row: row['goal_assist'] / (row['mins_played_2']/90), axis=1)
full_df['Acc Fwd Pass p90'] = full_df.apply(lambda row: (
row['accurate_fwd_zone_pass']-row['accurate_cross']) / (row['mins_played_2']/90), axis=1)
full_df['Final 3rd Entries p90'] = full_df.apply(
lambda row: row['final_third_entries'] / (row['mins_played_2']/90), axis=1)
full_df['Pen Area Entries p90'] = full_df.apply(
lambda row: row['pen_area_entries'] / (row['mins_played_2']/90), axis=1)
full_df['Att Conceded Ibox p90'] = full_df.apply(
lambda row: row['attempts_conceded_ibox'] / (row['mins_played_2']/90), axis=1)
full_df['Clearance p90'] = full_df.apply(
lambda row: row['effective_clearance'] / (row['mins_played_2']/90), axis=1)
full_df['Penalty saves p90'] = full_df.apply(
lambda row: row['penalty_save'] / (row['mins_played_2']/90), axis=1)
full_df['Saves Ibox p90'] = full_df.apply(
lambda row: row['saved_ibox'] / (row['mins_played_2']/90), axis=1)
full_df['Saves Obox p90'] = full_df.apply(
lambda row: row['saved_obox'] / (row['mins_played_2']/90), axis=1)
full_df['Saves p90'] = full_df.apply(
lambda row: row['saves'] / (row['mins_played_2']/90), axis=1)
full_df['Acc Long Balls p90'] = full_df.apply(
lambda row: row['accurate_long_balls'] / (row['mins_played_2']/90), axis=1)
full_df['Acc GK p90'] = full_df.apply(
lambda row: row['accurate_goal_kicks'] / (row['mins_played_2']/90), axis=1)
full_df['CS p90'] = full_df.apply(
lambda row: row['clean_sheet'] / (row['mins_played_2']/90), axis=1)
full_df['Long Pass to Opp p90'] = full_df.apply(
lambda row: row['long_pass_own_to_opp_success'] / (row['mins_played_2']/90), axis=1)
full_df['Acc Keeper Sweeper p90'] = full_df.apply(
lambda row: row['accurate_keeper_sweeper'] / (row['mins_played_2']/90), axis=1)
full_df['Goals Conceded p90'] = full_df.apply(
lambda row: row['goals_conceded'] / (row['mins_played_2']/90), axis=1)
full_df = full_df[['first_name', 'price', 'pos', 'mins_played_2', 'Aerial Won p90', 'Successful Dribbles p90', 'Accurate Pass p90',
'Big Chance Created p90', 'Inbox Attempts p90', 'Key Passes p90', 'SOT p90',
'Blocks p90', 'Recoveries p90', 'Interceptions p90', 'Tackles p90', 'Acc Final 3rd Passes p90',
'Goals p90', 'Assists p90', 'Acc Fwd Pass p90', 'Final 3rd Entries p90', 'Pen Area Entries p90',
'Att Conceded Ibox p90', 'Clearance p90', 'Penalty saves p90', 'Saves Ibox p90', 'Saves Obox p90', 'Saves p90',
'Acc Long Balls p90', 'Acc GK p90', 'CS p90', 'Long Pass to Opp p90', 'Acc Keeper Sweeper p90', 'Goals Conceded p90']]
qgrid.show_grid(full_df, show_toolbar=True, grid_options={
'forceFitColumns': False, 'defaultColumnWidth': 180})
full_df.to_csv(f'overall_stats_{today_str}.csv')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment