Files
fantabeto/.ipynb_checkpoints/1_scraping_fbref-checkpoint.ipynb
T
2023-04-29 10:39:31 +02:00

5851 lines
230 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"cells": [
{
"cell_type": "markdown",
"id": "d065632b",
"metadata": {},
"source": [
"Scraping from http://fbref.com\n",
"\n",
"Data:\n",
"- outfield players stats\n",
"- goalkeepers stats\n",
"- team stats (of and against)\n",
"\n",
"Original code by parth1902:\n",
"https://github.com/parth1902/Scrape-FBref-data"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "3b8d2e7f",
"metadata": {},
"outputs": [],
"source": [
"import requests\n",
"from bs4 import BeautifulSoup\n",
"import pandas as pd\n",
"import numpy as np\n",
"import re\n",
"import sys, getopt\n",
"import csv\n"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "ab920c85",
"metadata": {},
"outputs": [],
"source": [
"#standard(stats)\n",
"stats = [\"player\",\"nationality\",\"position\",\"team\",\"age\",\"birth_year\",\"games\",\"games_starts\",\"minutes\",\"goals\",\"assists\",\"pens_made\",\"pens_att\",\"cards_yellow\",\"cards_red\",\"goals_per90\",\"assists_per90\",\"goals_assists_per90\",\"goals_pens_per90\",\"goals_assists_pens_per90\",\"xg\",\"npxg\",\"xa\",\"xg_per90\",\"xa_per90\",\"xg_xa_per90\",\"npxg_per90\",\"npxg_xa_per90\"]\n",
"stats3 = [\"players_used\",\"possession\",\"games\",\"games_starts\",\"minutes\",\"goals\",\"assists\",\"pens_made\",\"pens_att\",\"cards_yellow\",\"cards_red\",\"goals_per90\",\"assists_per90\",\"goals_assists_per90\",\"goals_pens_per90\",\"goals_assists_pens_per90\",\"xg\",\"npxg\",\"xa\",\"xg_per90\",\"xa_per90\",\"xg_xa_per90\",\"npxg_per90\",\"npxg_xa_per90\"] \n",
"#goalkeeping(keepers)\n",
"keepers = [\"player\",\"nationality\",\"position\",\"team\",\"age\",\"birth_year\",\"gk_games\",\"gk_games_starts\",\"gk_minutes\",\"gk_goals_against\",\"gk_goals_against_per90\",\"gk_shots_on_target_against\",\"gk_saves\",\"gk_save_pct\",\"gk_wins\",\"gk_ties\",\"gk_losses\",\"gk_clean_sheets\",\"gk_clean_sheets_pct\",\"gk_pens_att\",\"gk_pens_allowed\",\"gk_pens_saved\",\"gk_pens_missed\"]\n",
"keepers3 = [\"players_used\",\"gk_games\",\"gk_games_starts\",\"gk_minutes\",\"gk_goals_against\",\"gk_goals_against_per90\",\"gk_shots_on_target_against\",\"gk_saves\",\"gk_save_pct\",\"gk_wins\",\"gk_ties\",\"gk_losses\",\"gk_clean_sheets\",\"gk_clean_sheets_pct\",\"gk_pens_att\",\"gk_pens_allowed\",\"gk_pens_saved\",\"gk_pens_missed\"]\n",
"#advance goalkeeping(keepersadv)\n",
"keepersadv = [\"player\",\"nationality\",\"position\",\"team\",\"age\",\"birth_year\",\"minutes_90s\",\"gk_goals_against\",\"gk_pens_allowed\",\"gk_free_kick_goals_against\",\"gk_corner_kick_goals_against\",\"gk_own_goals_against\",\"gk_psxg\",\"gk_psnpxg_per_shot_on_target_against\",\"gk_psxg_net\",\"gk_psxg_net_per90\",\"gk_passes_completed_launched\",\"gk_passes_launched\",\"gk_passes_pct_launched\",\"gk_passes\",\"gk_passes_throws\",\"gk_pct_passes_launched\",\"gk_passes_length_avg\",\"gk_goal_kicks\",\"gk_pct_goal_kicks_launched\",\"gk_goal_kick_length_avg\",\"gk_crosses\",\"gk_crosses_stopped\",\"gk_crosses_stopped_pct\",\"gk_def_actions_outside_pen_area\",\"gk_def_actions_outside_pen_area_per90\",\"gk_avg_distance_def_actions\"]\n",
"keepersadv2 = [\"minutes_90s\",\"gk_goals_against\",\"gk_pens_allowed\",\"gk_free_kick_goals_against\",\"gk_corner_kick_goals_against\",\"gk_own_goals_against\",\"gk_psxg\",\"gk_psnpxg_per_shot_on_target_against\",\"gk_psxg_net\",\"gk_psxg_net_per90\",\"gk_passes_completed_launched\",\"gk_passes_launched\",\"gk_passes_pct_launched\",\"gk_passes\",\"gk_passes_throws\",\"gk_pct_passes_launched\",\"gk_passes_length_avg\",\"gk_goal_kicks\",\"gk_pct_goal_kicks_launched\",\"gk_goal_kick_length_avg\",\"gk_crosses\",\"gk_crosses_stopped\",\"gk_crosses_stopped_pct\",\"gk_def_actions_outside_pen_area\",\"gk_def_actions_outside_pen_area_per90\",\"gk_avg_distance_def_actions\"]\n",
"#shooting(shooting)\n",
"shooting = [\"player\",\"nationality\",\"position\",\"team\",\"age\",\"birth_year\",\"minutes_90s\",\"goals\",\"pens_made\",\"pens_att\",\"shots_total\",\"shots_on_target\",\"shots_free_kicks\",\"shots_on_target_pct\",\"shots_total_per90\",\"shots_on_target_per90\",\"goals_per_shot\",\"goals_per_shot_on_target\",\"xg\",\"npxg\",\"npxg_per_shot\",\"xg_net\",\"npxg_net\"]\n",
"shooting2 = [\"minutes_90s\",\"goals\",\"pens_made\",\"pens_att\",\"shots_total\",\"shots_on_target\",\"shots_free_kicks\",\"shots_on_target_pct\",\"shots_total_per90\",\"shots_on_target_per90\",\"goals_per_shot\",\"goals_per_shot_on_target\",\"xg\",\"npxg\",\"npxg_per_shot\",\"xg_net\",\"npxg_net\"]\n",
"shooting3 = [\"goals\",\"pens_made\",\"pens_att\",\"shots_total\",\"shots_on_target\",\"shots_free_kicks\",\"shots_on_target_pct\",\"shots_total_per90\",\"shots_on_target_per90\",\"goals_per_shot\",\"goals_per_shot_on_target\",\"xg\",\"npxg\",\"npxg_per_shot\",\"xg_net\",\"npxg_net\"]\n",
"#passing(passing)\n",
"passing = [\"player\",\"nationality\",\"position\",\"team\",\"age\",\"birth_year\",\"minutes_90s\",\"passes_completed\",\"passes\",\"passes_pct\",\"passes_total_distance\",\"passes_progressive_distance\",\"passes_completed_short\",\"passes_short\",\"passes_pct_short\",\"passes_completed_medium\",\"passes_medium\",\"passes_pct_medium\",\"passes_completed_long\",\"passes_long\",\"passes_pct_long\",\"assists\",\"xa\",\"xa_net\",\"assisted_shots\",\"passes_into_final_third\",\"passes_into_penalty_area\",\"crosses_into_penalty_area\",\"progressive_passes\"]\n",
"passing2 = [\"passes_completed\",\"passes\",\"passes_pct\",\"passes_total_distance\",\"passes_progressive_distance\",\"passes_completed_short\",\"passes_short\",\"passes_pct_short\",\"passes_completed_medium\",\"passes_medium\",\"passes_pct_medium\",\"passes_completed_long\",\"passes_long\",\"passes_pct_long\",\"assists\",\"xa\",\"xa_net\",\"assisted_shots\",\"passes_into_final_third\",\"passes_into_penalty_area\",\"crosses_into_penalty_area\",\"progressive_passes\"]\n",
"#passtypes(passing_types)\n",
"passing_types = [\"player\",\"nationality\",\"position\",\"team\",\"age\",\"birth_year\",\"minutes_90s\",\"passes\",\"passes_live\",\"passes_dead\",\"passes_free_kicks\",\"through_balls\",\"passes_pressure\",\"passes_switches\",\"crosses\",\"corner_kicks\",\"corner_kicks_in\",\"corner_kicks_out\",\"corner_kicks_straight\",\"passes_ground\",\"passes_low\",\"passes_high\",\"passes_left_foot\",\"passes_right_foot\",\"passes_head\",\"throw_ins\",\"passes_other_body\",\"passes_completed\",\"passes_offsides\",\"passes_oob\",\"passes_intercepted\",\"passes_blocked\"]\n",
"passing_types2 = [\"passes\",\"passes_live\",\"passes_dead\",\"passes_free_kicks\",\"through_balls\",\"passes_pressure\",\"passes_switches\",\"crosses\",\"corner_kicks\",\"corner_kicks_in\",\"corner_kicks_out\",\"corner_kicks_straight\",\"passes_ground\",\"passes_low\",\"passes_high\",\"passes_left_foot\",\"passes_right_foot\",\"passes_head\",\"throw_ins\",\"passes_other_body\",\"passes_completed\",\"passes_offsides\",\"passes_oob\",\"passes_intercepted\",\"passes_blocked\"]\n",
"#goal and shot creation(gca)\n",
"gca = [\"player\",\"nationality\",\"position\",\"team\",\"age\",\"birth_year\",\"minutes_90s\",\"sca\",\"sca_per90\",\"sca_passes_live\",\"sca_passes_dead\",\"sca_dribbles\",\"sca_shots\",\"sca_fouled\",\"gca\",\"gca_per90\",\"gca_passes_live\",\"gca_passes_dead\",\"gca_dribbles\",\"gca_shots\",\"gca_fouled\",\"gca_defense\"]\n",
"gca2 = [\"sca\",\"sca_per90\",\"sca_passes_live\",\"sca_passes_dead\",\"sca_dribbles\",\"sca_shots\",\"sca_fouled\",\"gca\",\"gca_per90\",\"gca_passes_live\",\"gca_passes_dead\",\"gca_dribbles\",\"gca_shots\",\"gca_fouled\",\"gca_defense\"]\n",
"#defensive actions(defense)\n",
"defense = [\"player\",\"nationality\",\"position\",\"team\",\"age\",\"birth_year\",\"minutes_90s\",\"tackles\",\"tackles_won\",\"tackles_def_3rd\",\"tackles_mid_3rd\",\"tackles_att_3rd\",\"dribble_tackles\",\"dribbles_vs\",\"dribble_tackles_pct\",\"dribbled_past\",\"pressures\",\"pressure_regains\",\"pressure_regain_pct\",\"pressures_def_3rd\",\"pressures_mid_3rd\",\"pressures_att_3rd\",\"blocks\",\"blocked_shots\",\"blocked_shots_saves\",\"blocked_passes\",\"interceptions\",\"clearances\",\"errors\"]\n",
"defense2 = [\"tackles\",\"tackles_won\",\"tackles_def_3rd\",\"tackles_mid_3rd\",\"tackles_att_3rd\",\"dribble_tackles\",\"dribbles_vs\",\"dribble_tackles_pct\",\"dribbled_past\",\"pressures\",\"pressure_regains\",\"pressure_regain_pct\",\"pressures_def_3rd\",\"pressures_mid_3rd\",\"pressures_att_3rd\",\"blocks\",\"blocked_shots\",\"blocked_shots_saves\",\"blocked_passes\",\"interceptions\",\"clearances\",\"errors\"]\n",
"#possession(possession)\n",
"possession = [\"player\",\"nationality\",\"position\",\"team\",\"age\",\"birth_year\",\"minutes_90s\",\"touches\",\"touches_def_pen_area\",\"touches_def_3rd\",\"touches_mid_3rd\",\"touches_att_3rd\",\"touches_att_pen_area\",\"touches_live_ball\",\"dribbles_completed\",\"dribbles\",\"dribbles_completed_pct\",\"players_dribbled_past\",\"nutmegs\",\"carries\",\"carry_distance\",\"carry_progressive_distance\",\"progressive_carries\",\"carries_into_final_third\",\"carries_into_penalty_area\",\"pass_targets\",\"passes_received\",\"passes_received_pct\",\"miscontrols\",\"dispossessed\"]\n",
"possession2 = [\"touches\",\"touches_def_pen_area\",\"touches_def_3rd\",\"touches_mid_3rd\",\"touches_att_3rd\",\"touches_att_pen_area\",\"touches_live_ball\",\"dribbles_completed\",\"dribbles\",\"dribbles_completed_pct\",\"players_dribbled_past\",\"nutmegs\",\"carries\",\"carry_distance\",\"carry_progressive_distance\",\"progressive_carries\",\"carries_into_final_third\",\"carries_into_penalty_area\",\"pass_targets\",\"passes_received\",\"passes_received_pct\",\"miscontrols\",\"dispossessed\"]\n",
"#playingtime(playingtime)\n",
"playingtime = [\"player\",\"nationality\",\"position\",\"team\",\"age\",\"birth_year\",\"minutes_90s\",\"games\",\"minutes\",\"minutes_per_game\",\"minutes_pct\",\"games_starts\",\"minutes_per_start\",\"games_subs\",\"minutes_per_sub\",\"unused_subs\",\"points_per_match\",\"on_goals_for\",\"on_goals_against\",\"plus_minus\",\"plus_minus_per90\",\"plus_minus_wowy\",\"on_xg_for\",\"on_xg_against\",\"xg_plus_minus\",\"xg_plus_minus_per90\",\"xg_plus_minus_wowy\"]\n",
"playingtime2 = [\"games\",\"minutes\",\"minutes_per_game\",\"minutes_pct\",\"games_starts\",\"minutes_per_start\",\"games_subs\",\"minutes_per_sub\",\"unused_subs\",\"points_per_match\",\"on_goals_for\",\"on_goals_against\",\"plus_minus\",\"plus_minus_per90\",\"plus_minus_wowy\",\"on_xg_for\",\"on_xg_against\",\"xg_plus_minus\",\"xg_plus_minus_per90\",\"xg_plus_minus_wowy\"]\n",
"#miscallaneous(misc)\n",
"misc = [\"player\",\"nationality\",\"position\",\"team\",\"age\",\"birth_year\",\"minutes_90s\",\"cards_yellow\",\"cards_red\",\"cards_yellow_red\",\"fouls\",\"fouled\",\"offsides\",\"crosses\",\"interceptions\",\"tackles_won\",\"pens_won\",\"pens_conceded\",\"own_goals\",\"ball_recoveries\",\"aerials_won\",\"aerials_lost\",\"aerials_won_pct\"]\n",
"misc2 = [\"cards_yellow\",\"cards_red\",\"cards_yellow_red\",\"fouls\",\"fouled\",\"offsides\",\"crosses\",\"interceptions\",\"tackles_won\",\"pens_won\",\"pens_conceded\",\"own_goals\",\"ball_recoveries\",\"aerials_won\",\"aerials_lost\",\"aerials_won_pct\"]\n",
"\n",
"def get_tables(url,text):\n",
" headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'}\n",
"\n",
" res = requests.get(url, headers = headers)\n",
" ## The next two lines get around the issue with comments breaking the parsing.\n",
" comm = re.compile(\"<!--|-->\")\n",
" soup = BeautifulSoup(comm.sub(\"\",res.text),'lxml')\n",
" all_tables = soup.findAll(\"tbody\")\n",
" \n",
" team_table = all_tables[0]\n",
" team_vs_table = all_tables[1]\n",
" player_table = all_tables[2]\n",
" if text == 'for':\n",
" return player_table, team_table\n",
" if text == 'vs':\n",
" return player_table, team_vs_table\n",
"\n",
"def get_frame(features, player_table):\n",
" pre_df_player = dict()\n",
" features_wanted_player = features\n",
" rows_player = player_table.find_all('tr')\n",
" for row in rows_player:\n",
" if(row.find('th',{\"scope\":\"row\"}) != None):\n",
" \n",
" for f in features_wanted_player:\n",
" cell = row.find(\"td\",{\"data-stat\": f})\n",
" if(cell == None):\n",
" continue\n",
" a = cell.text.strip().encode()\n",
" text=a.decode(\"utf-8\")\n",
" if(text == ''):\n",
" text = '0'\n",
" if((f!='player')&(f!='nationality')&(f!='position')&(f!='squad')&(f!='age')&(f!='birth_year')&(f!='team')):\n",
" text = float(text.replace(',','')) \n",
" if f in pre_df_player:\n",
" pre_df_player[f].append(text)\n",
" else:\n",
" pre_df_player[f] = [text]\n",
" df_player = pd.DataFrame.from_dict(pre_df_player)\n",
" return df_player\n",
"\n",
"def get_frame_team(features, team_table):\n",
" pre_df_squad = dict()\n",
" #Note: features does not contain squad name, it requires special treatment\n",
" features_wanted_squad = features\n",
" rows_squad = team_table.find_all('tr')\n",
" for row in rows_squad:\n",
" if(row.find('th',{\"scope\":\"row\"}) != None):\n",
" name = row.find('th',{\"data-stat\":\"team\"}).text.strip().encode().decode(\"utf-8\")\n",
" if 'team' in pre_df_squad:\n",
" pre_df_squad['team'].append(name)\n",
" else:\n",
" pre_df_squad['team'] = [name]\n",
" for f in features_wanted_squad:\n",
" cell = row.find(\"td\",{\"data-stat\": f})\n",
" if(cell == None):\n",
" continue\n",
" a = cell.text.strip().encode()\n",
" text=a.decode(\"utf-8\")\n",
" if(text == ''):\n",
" text = '0'\n",
" if((f!='player')&(f!='nationality')&(f!='position')&(f!='squad')&(f!='age')&(f!='birth_year')&(f!='team')):\n",
" text = float(text.replace(',',''))\n",
" if f in pre_df_squad:\n",
" pre_df_squad[f].append(text)\n",
" else:\n",
" pre_df_squad[f] = [text]\n",
" df_squad = pd.DataFrame.from_dict(pre_df_squad)\n",
" return df_squad\n",
"\n",
"def get_frame_team_2(features, team_table):\n",
" pre_df_squad = dict()\n",
" #Note: features does not contain squad name, it requires special treatment\n",
" features_wanted_squad = features\n",
" rows_squad = team_table.find_all('tr')\n",
" for row in rows_squad:\n",
" if(row.find('th',{\"scope\":\"row\"}) != None):\n",
" name = row.find('th',{\"data-stat\":\"squad\"}).text.strip().encode().decode(\"utf-8\")\n",
" if 'squad' in pre_df_squad:\n",
" pre_df_squad['squad'].append(name)\n",
" else:\n",
" pre_df_squad['squad'] = [name]\n",
" for f in features_wanted_squad:\n",
" cell = row.find(\"td\",{\"data-stat\": f})\n",
" a = cell.text.strip().encode()\n",
" text=a.decode(\"utf-8\")\n",
" if(text == ''):\n",
" text = '0'\n",
" if((f!='player')&(f!='nationality')&(f!='position')&(f!='squad')&(f!='age')&(f!='birth_year')&(f!='team')):\n",
" text = float(text.replace(',',''))\n",
" print(f)\n",
" if f in pre_df_squad:\n",
" pre_df_squad[f].append(text)\n",
" else:\n",
" pre_df_squad[f] = [text]\n",
" df_squad = pd.DataFrame.from_dict(pre_df_squad)\n",
" return df_squad\n",
"\n",
"def frame_for_category(category,top,end,features):\n",
" url = (top + category + end)\n",
" player_table, team_table = get_tables(url,'for')\n",
" df_player = get_frame(features, player_table)\n",
" return df_player\n",
"\n",
"def frame_for_category_team(category,top,end,features,text):\n",
" url = (top + category + end)\n",
" player_table, team_table = get_tables(url,text)\n",
" df_team = get_frame_team(features, team_table)\n",
" return df_team\n",
"\n",
"\n",
"\n",
"\n",
"#Function to get the player data for outfield player, includes all categories - standard stats, shooting\n",
"#passing, passing types, goal and shot creation, defensive actions, possession, and miscallaneous\n",
"def get_outfield_data(top, end):\n",
" df1 = frame_for_category('stats',top,end,stats)\n",
" df2 = frame_for_category('shooting',top,end,shooting2)\n",
" df3 = frame_for_category('passing',top,end,passing2)\n",
" df4 = frame_for_category('passing_types',top,end,passing_types2)\n",
" df5 = frame_for_category('gca',top,end,gca2)\n",
" df6 = frame_for_category('defense',top,end,defense2)\n",
" df7 = frame_for_category('possession',top,end,possession2)\n",
" df8 = frame_for_category('misc',top,end,misc2)\n",
" df = pd.concat([df1, df2, df3, df4, df5, df6, df7, df8], axis=1)\n",
" df = df.loc[:,~df.columns.duplicated()]\n",
" return df\n",
"\n",
"\n",
"#Function to get keeping and advance goalkeeping data\n",
"def get_keeper_data(top,end):\n",
" df1 = frame_for_category('keepers',top,end,keepers)\n",
" df2 = frame_for_category('keepersadv',top,end,keepersadv2)\n",
" df = pd.concat([df1, df2], axis=1)\n",
" df = df.loc[:,~df.columns.duplicated()]\n",
" return df\n",
"\n",
"\n",
"\n",
"#Function to get team-wise data accross all categories as mentioned above\n",
"def get_team_data(top,end,text):\n",
" df1 = frame_for_category_team('stats',top,end,stats3,text)\n",
" df2 = frame_for_category_team('keepers',top,end,keepers3,text)\n",
" df3 = frame_for_category_team('keepersadv',top,end,keepersadv2,text)\n",
" df4 = frame_for_category_team('shooting',top,end,shooting3,text)\n",
" df5 = frame_for_category_team('passing',top,end,passing2,text)\n",
" df6 = frame_for_category_team('passing_types',top,end,passing_types2,text)\n",
" df7 = frame_for_category_team('gca',top,end,gca2,text)\n",
" df8 = frame_for_category_team('defense',top,end,defense2,text)\n",
" df9 = frame_for_category_team('possession',top,end,possession2,text)\n",
" df10 = frame_for_category_team('misc',top,end,misc2,text)\n",
" df = pd.concat([df1, df2, df3, df4, df5, df6, df7, df8, df9, df10], axis=1)\n",
" df = df.loc[:,~df.columns.duplicated()]\n",
" return df"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "9141a9ec",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>player</th>\n",
" <th>nationality</th>\n",
" <th>position</th>\n",
" <th>team</th>\n",
" <th>age</th>\n",
" <th>birth_year</th>\n",
" <th>games</th>\n",
" <th>games_starts</th>\n",
" <th>minutes</th>\n",
" <th>goals</th>\n",
" <th>...</th>\n",
" <th>fouls</th>\n",
" <th>fouled</th>\n",
" <th>offsides</th>\n",
" <th>pens_won</th>\n",
" <th>pens_conceded</th>\n",
" <th>own_goals</th>\n",
" <th>ball_recoveries</th>\n",
" <th>aerials_won</th>\n",
" <th>aerials_lost</th>\n",
" <th>aerials_won_pct</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>Oliver Abildgaard</td>\n",
" <td>dk DEN</td>\n",
" <td>MF</td>\n",
" <td>Hellas Verona</td>\n",
" <td>26-250</td>\n",
" <td>1996</td>\n",
" <td>2.0</td>\n",
" <td>0.0</td>\n",
" <td>37.0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>5.0</td>\n",
" <td>3.0</td>\n",
" <td>1.0</td>\n",
" <td>75.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Tammy Abraham</td>\n",
" <td>eng ENG</td>\n",
" <td>FW</td>\n",
" <td>Roma</td>\n",
" <td>25-136</td>\n",
" <td>1997</td>\n",
" <td>22.0</td>\n",
" <td>18.0</td>\n",
" <td>1582.0</td>\n",
" <td>6.0</td>\n",
" <td>...</td>\n",
" <td>23.0</td>\n",
" <td>36.0</td>\n",
" <td>9.0</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>33.0</td>\n",
" <td>45.0</td>\n",
" <td>42.0</td>\n",
" <td>51.7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>Christian Acella</td>\n",
" <td>it ITA</td>\n",
" <td>MF</td>\n",
" <td>Cremonese</td>\n",
" <td>20-223</td>\n",
" <td>2002</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>15.0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>Francesco Acerbi</td>\n",
" <td>it ITA</td>\n",
" <td>DF</td>\n",
" <td>Inter</td>\n",
" <td>35-005</td>\n",
" <td>1988</td>\n",
" <td>15.0</td>\n",
" <td>13.0</td>\n",
" <td>1200.0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>9.0</td>\n",
" <td>9.0</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>66.0</td>\n",
" <td>38.0</td>\n",
" <td>21.0</td>\n",
" <td>64.4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Yacine Adli</td>\n",
" <td>fr FRA</td>\n",
" <td>MF,FW</td>\n",
" <td>Milan</td>\n",
" <td>22-201</td>\n",
" <td>2000</td>\n",
" <td>4.0</td>\n",
" <td>1.0</td>\n",
" <td>116.0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>3.0</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>5.0</td>\n",
" <td>0.0</td>\n",
" <td>3.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>540</th>\n",
" <td>Petar Zovko</td>\n",
" <td>ba BIH</td>\n",
" <td>GK</td>\n",
" <td>Spezia</td>\n",
" <td>20-327</td>\n",
" <td>2002</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>74.0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>2.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>541</th>\n",
" <td>Szymon Żurkowski</td>\n",
" <td>pl POL</td>\n",
" <td>MF</td>\n",
" <td>Fiorentina</td>\n",
" <td>25-143</td>\n",
" <td>1997</td>\n",
" <td>2.0</td>\n",
" <td>0.0</td>\n",
" <td>32.0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>2.0</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>50.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>542</th>\n",
" <td>Szymon Żurkowski</td>\n",
" <td>pl POL</td>\n",
" <td>MF</td>\n",
" <td>Spezia</td>\n",
" <td>25-143</td>\n",
" <td>1997</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>8.0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>3.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>543</th>\n",
" <td>Milan Đurić</td>\n",
" <td>ba BIH</td>\n",
" <td>FW</td>\n",
" <td>Hellas Verona</td>\n",
" <td>32-269</td>\n",
" <td>1990</td>\n",
" <td>16.0</td>\n",
" <td>7.0</td>\n",
" <td>703.0</td>\n",
" <td>1.0</td>\n",
" <td>...</td>\n",
" <td>15.0</td>\n",
" <td>14.0</td>\n",
" <td>3.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>16.0</td>\n",
" <td>113.0</td>\n",
" <td>28.0</td>\n",
" <td>80.1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>544</th>\n",
" <td>Filip Đuričić</td>\n",
" <td>rs SRB</td>\n",
" <td>MF,FW</td>\n",
" <td>Sampdoria</td>\n",
" <td>31-016</td>\n",
" <td>1992</td>\n",
" <td>21.0</td>\n",
" <td>18.0</td>\n",
" <td>1397.0</td>\n",
" <td>2.0</td>\n",
" <td>...</td>\n",
" <td>23.0</td>\n",
" <td>35.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>78.0</td>\n",
" <td>8.0</td>\n",
" <td>13.0</td>\n",
" <td>38.1</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>545 rows × 115 columns</p>\n",
"</div>"
],
"text/plain": [
" player nationality position team age birth_year \\\n",
"0 Oliver Abildgaard dk DEN MF Hellas Verona 26-250 1996 \n",
"1 Tammy Abraham eng ENG FW Roma 25-136 1997 \n",
"2 Christian Acella it ITA MF Cremonese 20-223 2002 \n",
"3 Francesco Acerbi it ITA DF Inter 35-005 1988 \n",
"4 Yacine Adli fr FRA MF,FW Milan 22-201 2000 \n",
".. ... ... ... ... ... ... \n",
"540 Petar Zovko ba BIH GK Spezia 20-327 2002 \n",
"541 Szymon Żurkowski pl POL MF Fiorentina 25-143 1997 \n",
"542 Szymon Żurkowski pl POL MF Spezia 25-143 1997 \n",
"543 Milan Đurić ba BIH FW Hellas Verona 32-269 1990 \n",
"544 Filip Đuričić rs SRB MF,FW Sampdoria 31-016 1992 \n",
"\n",
" games games_starts minutes goals ... fouls fouled offsides \\\n",
"0 2.0 0.0 37.0 0.0 ... 1.0 1.0 0.0 \n",
"1 22.0 18.0 1582.0 6.0 ... 23.0 36.0 9.0 \n",
"2 1.0 0.0 15.0 0.0 ... 0.0 0.0 0.0 \n",
"3 15.0 13.0 1200.0 0.0 ... 9.0 9.0 1.0 \n",
"4 4.0 1.0 116.0 0.0 ... 3.0 1.0 0.0 \n",
".. ... ... ... ... ... ... ... ... \n",
"540 1.0 0.0 74.0 0.0 ... 0.0 0.0 0.0 \n",
"541 2.0 0.0 32.0 0.0 ... 1.0 0.0 0.0 \n",
"542 1.0 0.0 8.0 0.0 ... 0.0 0.0 0.0 \n",
"543 16.0 7.0 703.0 1.0 ... 15.0 14.0 3.0 \n",
"544 21.0 18.0 1397.0 2.0 ... 23.0 35.0 0.0 \n",
"\n",
" pens_won pens_conceded own_goals ball_recoveries aerials_won \\\n",
"0 0.0 0.0 0.0 5.0 3.0 \n",
"1 1.0 0.0 0.0 33.0 45.0 \n",
"2 0.0 0.0 0.0 1.0 0.0 \n",
"3 0.0 0.0 0.0 66.0 38.0 \n",
"4 0.0 0.0 0.0 5.0 0.0 \n",
".. ... ... ... ... ... \n",
"540 0.0 0.0 0.0 2.0 0.0 \n",
"541 0.0 0.0 0.0 2.0 1.0 \n",
"542 0.0 0.0 0.0 3.0 0.0 \n",
"543 0.0 0.0 0.0 16.0 113.0 \n",
"544 0.0 0.0 0.0 78.0 8.0 \n",
"\n",
" aerials_lost aerials_won_pct \n",
"0 1.0 75.0 \n",
"1 42.0 51.7 \n",
"2 0.0 0.0 \n",
"3 21.0 64.4 \n",
"4 3.0 0.0 \n",
".. ... ... \n",
"540 0.0 0.0 \n",
"541 1.0 50.0 \n",
"542 0.0 0.0 \n",
"543 28.0 80.1 \n",
"544 13.0 38.1 \n",
"\n",
"[545 rows x 115 columns]"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_outfield = get_outfield_data('https://fbref.com/en/comps/11/','/Serie-A-Stats')\n",
"\n",
"df_outfield.to_csv('fbref_data/outfield_players.csv', index=False)\n",
"\n",
"df_outfield"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "9a30e27c",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>player</th>\n",
" <th>nationality</th>\n",
" <th>position</th>\n",
" <th>team</th>\n",
" <th>age</th>\n",
" <th>birth_year</th>\n",
" <th>gk_games</th>\n",
" <th>gk_games_starts</th>\n",
" <th>gk_minutes</th>\n",
" <th>gk_goals_against</th>\n",
" <th>...</th>\n",
" <th>gk_passes_length_avg</th>\n",
" <th>gk_goal_kicks</th>\n",
" <th>gk_pct_goal_kicks_launched</th>\n",
" <th>gk_goal_kick_length_avg</th>\n",
" <th>gk_crosses</th>\n",
" <th>gk_crosses_stopped</th>\n",
" <th>gk_crosses_stopped_pct</th>\n",
" <th>gk_def_actions_outside_pen_area</th>\n",
" <th>gk_def_actions_outside_pen_area_per90</th>\n",
" <th>gk_avg_distance_def_actions</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>Emil Audero</td>\n",
" <td>it ITA</td>\n",
" <td>GK</td>\n",
" <td>Sampdoria</td>\n",
" <td>26-028</td>\n",
" <td>1997</td>\n",
" <td>22.0</td>\n",
" <td>22.0</td>\n",
" <td>1980.0</td>\n",
" <td>36.0</td>\n",
" <td>...</td>\n",
" <td>39.4</td>\n",
" <td>178.0</td>\n",
" <td>57.3</td>\n",
" <td>44.4</td>\n",
" <td>315.0</td>\n",
" <td>21.0</td>\n",
" <td>6.7</td>\n",
" <td>20.0</td>\n",
" <td>0.91</td>\n",
" <td>14.1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Marco Carnesecchi</td>\n",
" <td>it ITA</td>\n",
" <td>GK</td>\n",
" <td>Cremonese</td>\n",
" <td>22-229</td>\n",
" <td>2000</td>\n",
" <td>13.0</td>\n",
" <td>13.0</td>\n",
" <td>1170.0</td>\n",
" <td>21.0</td>\n",
" <td>...</td>\n",
" <td>39.3</td>\n",
" <td>94.0</td>\n",
" <td>56.4</td>\n",
" <td>47.3</td>\n",
" <td>174.0</td>\n",
" <td>13.0</td>\n",
" <td>7.5</td>\n",
" <td>8.0</td>\n",
" <td>0.62</td>\n",
" <td>12.9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>Andrea Consigli</td>\n",
" <td>it ITA</td>\n",
" <td>GK</td>\n",
" <td>Sassuolo</td>\n",
" <td>36-019</td>\n",
" <td>1987</td>\n",
" <td>20.0</td>\n",
" <td>20.0</td>\n",
" <td>1800.0</td>\n",
" <td>30.0</td>\n",
" <td>...</td>\n",
" <td>34.1</td>\n",
" <td>179.0</td>\n",
" <td>33.5</td>\n",
" <td>34.2</td>\n",
" <td>276.0</td>\n",
" <td>17.0</td>\n",
" <td>6.2</td>\n",
" <td>23.0</td>\n",
" <td>1.15</td>\n",
" <td>14.9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>Michele Di Gregorio</td>\n",
" <td>it ITA</td>\n",
" <td>GK</td>\n",
" <td>Monza</td>\n",
" <td>25-203</td>\n",
" <td>1997</td>\n",
" <td>22.0</td>\n",
" <td>22.0</td>\n",
" <td>1980.0</td>\n",
" <td>30.0</td>\n",
" <td>...</td>\n",
" <td>33.0</td>\n",
" <td>138.0</td>\n",
" <td>36.2</td>\n",
" <td>33.6</td>\n",
" <td>313.0</td>\n",
" <td>10.0</td>\n",
" <td>3.2</td>\n",
" <td>16.0</td>\n",
" <td>0.73</td>\n",
" <td>13.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Bartłomiej Drągowski</td>\n",
" <td>pl POL</td>\n",
" <td>GK</td>\n",
" <td>Spezia</td>\n",
" <td>25-180</td>\n",
" <td>1997</td>\n",
" <td>20.0</td>\n",
" <td>20.0</td>\n",
" <td>1752.0</td>\n",
" <td>34.0</td>\n",
" <td>...</td>\n",
" <td>34.9</td>\n",
" <td>122.0</td>\n",
" <td>62.3</td>\n",
" <td>47.1</td>\n",
" <td>270.0</td>\n",
" <td>9.0</td>\n",
" <td>3.3</td>\n",
" <td>24.0</td>\n",
" <td>1.23</td>\n",
" <td>15.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>Wladimiro Falcone</td>\n",
" <td>it ITA</td>\n",
" <td>GK</td>\n",
" <td>Lecce</td>\n",
" <td>27-309</td>\n",
" <td>1995</td>\n",
" <td>22.0</td>\n",
" <td>22.0</td>\n",
" <td>1980.0</td>\n",
" <td>25.0</td>\n",
" <td>...</td>\n",
" <td>41.5</td>\n",
" <td>169.0</td>\n",
" <td>76.3</td>\n",
" <td>51.9</td>\n",
" <td>327.0</td>\n",
" <td>15.0</td>\n",
" <td>4.6</td>\n",
" <td>22.0</td>\n",
" <td>1.00</td>\n",
" <td>12.8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>Pierluigi Gollini</td>\n",
" <td>it ITA</td>\n",
" <td>GK</td>\n",
" <td>Fiorentina</td>\n",
" <td>27-334</td>\n",
" <td>1995</td>\n",
" <td>3.0</td>\n",
" <td>3.0</td>\n",
" <td>270.0</td>\n",
" <td>2.0</td>\n",
" <td>...</td>\n",
" <td>32.4</td>\n",
" <td>11.0</td>\n",
" <td>63.6</td>\n",
" <td>49.3</td>\n",
" <td>24.0</td>\n",
" <td>1.0</td>\n",
" <td>4.2</td>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>9.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>Samir Handanović</td>\n",
" <td>si SVN</td>\n",
" <td>GK</td>\n",
" <td>Inter</td>\n",
" <td>38-216</td>\n",
" <td>1984</td>\n",
" <td>8.0</td>\n",
" <td>8.0</td>\n",
" <td>720.0</td>\n",
" <td>13.0</td>\n",
" <td>...</td>\n",
" <td>26.1</td>\n",
" <td>45.0</td>\n",
" <td>4.4</td>\n",
" <td>24.0</td>\n",
" <td>79.0</td>\n",
" <td>2.0</td>\n",
" <td>2.5</td>\n",
" <td>5.0</td>\n",
" <td>0.63</td>\n",
" <td>14.6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>Mike Maignan</td>\n",
" <td>fr FRA</td>\n",
" <td>GK</td>\n",
" <td>Milan</td>\n",
" <td>27-227</td>\n",
" <td>1995</td>\n",
" <td>7.0</td>\n",
" <td>7.0</td>\n",
" <td>630.0</td>\n",
" <td>8.0</td>\n",
" <td>...</td>\n",
" <td>33.5</td>\n",
" <td>18.0</td>\n",
" <td>38.9</td>\n",
" <td>40.4</td>\n",
" <td>65.0</td>\n",
" <td>5.0</td>\n",
" <td>7.7</td>\n",
" <td>6.0</td>\n",
" <td>0.86</td>\n",
" <td>12.9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>Luís Maximiano</td>\n",
" <td>pt POR</td>\n",
" <td>GK</td>\n",
" <td>Lazio</td>\n",
" <td>24-041</td>\n",
" <td>1999</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>5.0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>19.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>Alex Meret</td>\n",
" <td>it ITA</td>\n",
" <td>GK</td>\n",
" <td>Napoli</td>\n",
" <td>25-330</td>\n",
" <td>1997</td>\n",
" <td>22.0</td>\n",
" <td>22.0</td>\n",
" <td>1980.0</td>\n",
" <td>15.0</td>\n",
" <td>...</td>\n",
" <td>26.5</td>\n",
" <td>134.0</td>\n",
" <td>18.7</td>\n",
" <td>26.6</td>\n",
" <td>232.0</td>\n",
" <td>6.0</td>\n",
" <td>2.6</td>\n",
" <td>24.0</td>\n",
" <td>1.09</td>\n",
" <td>17.2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>Vanja Milinković-Savić</td>\n",
" <td>rs SRB</td>\n",
" <td>GK</td>\n",
" <td>Torino</td>\n",
" <td>25-360</td>\n",
" <td>1997</td>\n",
" <td>22.0</td>\n",
" <td>22.0</td>\n",
" <td>1980.0</td>\n",
" <td>23.0</td>\n",
" <td>...</td>\n",
" <td>40.9</td>\n",
" <td>160.0</td>\n",
" <td>93.8</td>\n",
" <td>71.4</td>\n",
" <td>271.0</td>\n",
" <td>19.0</td>\n",
" <td>7.0</td>\n",
" <td>37.0</td>\n",
" <td>1.68</td>\n",
" <td>16.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>Lorenzo Montipò</td>\n",
" <td>it ITA</td>\n",
" <td>GK</td>\n",
" <td>Hellas Verona</td>\n",
" <td>26-360</td>\n",
" <td>1996</td>\n",
" <td>22.0</td>\n",
" <td>22.0</td>\n",
" <td>1980.0</td>\n",
" <td>33.0</td>\n",
" <td>...</td>\n",
" <td>44.2</td>\n",
" <td>175.0</td>\n",
" <td>63.4</td>\n",
" <td>47.5</td>\n",
" <td>305.0</td>\n",
" <td>15.0</td>\n",
" <td>4.9</td>\n",
" <td>47.0</td>\n",
" <td>2.14</td>\n",
" <td>16.7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>Juan Musso</td>\n",
" <td>ar ARG</td>\n",
" <td>GK</td>\n",
" <td>Atalanta</td>\n",
" <td>28-285</td>\n",
" <td>1994</td>\n",
" <td>16.0</td>\n",
" <td>16.0</td>\n",
" <td>1357.0</td>\n",
" <td>15.0</td>\n",
" <td>...</td>\n",
" <td>32.8</td>\n",
" <td>101.0</td>\n",
" <td>62.4</td>\n",
" <td>47.9</td>\n",
" <td>186.0</td>\n",
" <td>10.0</td>\n",
" <td>5.4</td>\n",
" <td>14.0</td>\n",
" <td>0.93</td>\n",
" <td>15.1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>Guillermo Ochoa</td>\n",
" <td>mx MEX</td>\n",
" <td>GK</td>\n",
" <td>Salernitana</td>\n",
" <td>37-217</td>\n",
" <td>1985</td>\n",
" <td>6.0</td>\n",
" <td>6.0</td>\n",
" <td>540.0</td>\n",
" <td>17.0</td>\n",
" <td>...</td>\n",
" <td>41.9</td>\n",
" <td>60.0</td>\n",
" <td>71.7</td>\n",
" <td>52.2</td>\n",
" <td>86.0</td>\n",
" <td>3.0</td>\n",
" <td>3.5</td>\n",
" <td>4.0</td>\n",
" <td>0.67</td>\n",
" <td>15.7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>André Onana</td>\n",
" <td>cm CMR</td>\n",
" <td>GK</td>\n",
" <td>Inter</td>\n",
" <td>26-319</td>\n",
" <td>1996</td>\n",
" <td>14.0</td>\n",
" <td>14.0</td>\n",
" <td>1260.0</td>\n",
" <td>13.0</td>\n",
" <td>...</td>\n",
" <td>30.2</td>\n",
" <td>95.0</td>\n",
" <td>32.6</td>\n",
" <td>36.2</td>\n",
" <td>177.0</td>\n",
" <td>8.0</td>\n",
" <td>4.5</td>\n",
" <td>4.0</td>\n",
" <td>0.29</td>\n",
" <td>12.7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>Rui Patrício</td>\n",
" <td>pt POR</td>\n",
" <td>GK</td>\n",
" <td>Roma</td>\n",
" <td>35-000</td>\n",
" <td>1988</td>\n",
" <td>22.0</td>\n",
" <td>22.0</td>\n",
" <td>1980.0</td>\n",
" <td>19.0</td>\n",
" <td>...</td>\n",
" <td>31.9</td>\n",
" <td>166.0</td>\n",
" <td>30.1</td>\n",
" <td>32.4</td>\n",
" <td>263.0</td>\n",
" <td>7.0</td>\n",
" <td>2.7</td>\n",
" <td>15.0</td>\n",
" <td>0.68</td>\n",
" <td>13.7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>Gianluca Pegolo</td>\n",
" <td>it ITA</td>\n",
" <td>GK</td>\n",
" <td>Sassuolo</td>\n",
" <td>41-327</td>\n",
" <td>1981</td>\n",
" <td>2.0</td>\n",
" <td>2.0</td>\n",
" <td>180.0</td>\n",
" <td>3.0</td>\n",
" <td>...</td>\n",
" <td>29.7</td>\n",
" <td>16.0</td>\n",
" <td>31.3</td>\n",
" <td>28.3</td>\n",
" <td>28.0</td>\n",
" <td>2.0</td>\n",
" <td>7.1</td>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>9.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>Mattia Perin</td>\n",
" <td>it ITA</td>\n",
" <td>GK</td>\n",
" <td>Juventus</td>\n",
" <td>30-097</td>\n",
" <td>1992</td>\n",
" <td>7.0</td>\n",
" <td>6.0</td>\n",
" <td>588.0</td>\n",
" <td>4.0</td>\n",
" <td>...</td>\n",
" <td>30.3</td>\n",
" <td>41.0</td>\n",
" <td>39.0</td>\n",
" <td>35.3</td>\n",
" <td>99.0</td>\n",
" <td>2.0</td>\n",
" <td>2.0</td>\n",
" <td>9.0</td>\n",
" <td>1.38</td>\n",
" <td>17.8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>Ivan Provedel</td>\n",
" <td>it ITA</td>\n",
" <td>GK</td>\n",
" <td>Lazio</td>\n",
" <td>28-335</td>\n",
" <td>1994</td>\n",
" <td>22.0</td>\n",
" <td>21.0</td>\n",
" <td>1973.0</td>\n",
" <td>19.0</td>\n",
" <td>...</td>\n",
" <td>33.0</td>\n",
" <td>123.0</td>\n",
" <td>35.0</td>\n",
" <td>35.0</td>\n",
" <td>290.0</td>\n",
" <td>8.0</td>\n",
" <td>2.8</td>\n",
" <td>39.0</td>\n",
" <td>1.78</td>\n",
" <td>18.1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>Ionuț Radu</td>\n",
" <td>ro ROU</td>\n",
" <td>GK</td>\n",
" <td>Cremonese</td>\n",
" <td>25-263</td>\n",
" <td>1997</td>\n",
" <td>9.0</td>\n",
" <td>9.0</td>\n",
" <td>810.0</td>\n",
" <td>19.0</td>\n",
" <td>...</td>\n",
" <td>37.3</td>\n",
" <td>67.0</td>\n",
" <td>50.7</td>\n",
" <td>46.3</td>\n",
" <td>107.0</td>\n",
" <td>6.0</td>\n",
" <td>5.6</td>\n",
" <td>9.0</td>\n",
" <td>1.00</td>\n",
" <td>14.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>Luigi Sepe</td>\n",
" <td>it ITA</td>\n",
" <td>GK</td>\n",
" <td>Salernitana</td>\n",
" <td>31-283</td>\n",
" <td>1991</td>\n",
" <td>16.0</td>\n",
" <td>16.0</td>\n",
" <td>1440.0</td>\n",
" <td>25.0</td>\n",
" <td>...</td>\n",
" <td>36.5</td>\n",
" <td>142.0</td>\n",
" <td>47.9</td>\n",
" <td>40.9</td>\n",
" <td>207.0</td>\n",
" <td>15.0</td>\n",
" <td>7.2</td>\n",
" <td>12.0</td>\n",
" <td>0.75</td>\n",
" <td>14.4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td>Marco Silvestri</td>\n",
" <td>it ITA</td>\n",
" <td>GK</td>\n",
" <td>Udinese</td>\n",
" <td>31-350</td>\n",
" <td>1991</td>\n",
" <td>22.0</td>\n",
" <td>22.0</td>\n",
" <td>1980.0</td>\n",
" <td>25.0</td>\n",
" <td>...</td>\n",
" <td>33.0</td>\n",
" <td>175.0</td>\n",
" <td>37.1</td>\n",
" <td>35.3</td>\n",
" <td>293.0</td>\n",
" <td>5.0</td>\n",
" <td>1.7</td>\n",
" <td>10.0</td>\n",
" <td>0.45</td>\n",
" <td>13.7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>23</th>\n",
" <td>Łukasz Skorupski</td>\n",
" <td>pl POL</td>\n",
" <td>GK</td>\n",
" <td>Bologna</td>\n",
" <td>31-286</td>\n",
" <td>1991</td>\n",
" <td>22.0</td>\n",
" <td>22.0</td>\n",
" <td>1980.0</td>\n",
" <td>32.0</td>\n",
" <td>...</td>\n",
" <td>32.6</td>\n",
" <td>159.0</td>\n",
" <td>37.1</td>\n",
" <td>33.8</td>\n",
" <td>304.0</td>\n",
" <td>18.0</td>\n",
" <td>5.9</td>\n",
" <td>18.0</td>\n",
" <td>0.82</td>\n",
" <td>13.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>24</th>\n",
" <td>Marco Sportiello</td>\n",
" <td>it ITA</td>\n",
" <td>GK</td>\n",
" <td>Atalanta</td>\n",
" <td>30-281</td>\n",
" <td>1992</td>\n",
" <td>7.0</td>\n",
" <td>6.0</td>\n",
" <td>623.0</td>\n",
" <td>9.0</td>\n",
" <td>...</td>\n",
" <td>28.5</td>\n",
" <td>61.0</td>\n",
" <td>68.9</td>\n",
" <td>48.9</td>\n",
" <td>86.0</td>\n",
" <td>7.0</td>\n",
" <td>8.1</td>\n",
" <td>14.0</td>\n",
" <td>2.02</td>\n",
" <td>19.9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25</th>\n",
" <td>Wojciech Szczęsny</td>\n",
" <td>pl POL</td>\n",
" <td>GK</td>\n",
" <td>Juventus</td>\n",
" <td>32-303</td>\n",
" <td>1990</td>\n",
" <td>16.0</td>\n",
" <td>16.0</td>\n",
" <td>1392.0</td>\n",
" <td>13.0</td>\n",
" <td>...</td>\n",
" <td>35.2</td>\n",
" <td>82.0</td>\n",
" <td>47.6</td>\n",
" <td>41.8</td>\n",
" <td>198.0</td>\n",
" <td>5.0</td>\n",
" <td>2.5</td>\n",
" <td>12.0</td>\n",
" <td>0.78</td>\n",
" <td>15.4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>26</th>\n",
" <td>Ciprian Tătărușanu</td>\n",
" <td>ro ROU</td>\n",
" <td>GK</td>\n",
" <td>Milan</td>\n",
" <td>37-006</td>\n",
" <td>1986</td>\n",
" <td>15.0</td>\n",
" <td>15.0</td>\n",
" <td>1350.0</td>\n",
" <td>22.0</td>\n",
" <td>...</td>\n",
" <td>32.6</td>\n",
" <td>74.0</td>\n",
" <td>51.4</td>\n",
" <td>41.1</td>\n",
" <td>174.0</td>\n",
" <td>9.0</td>\n",
" <td>5.2</td>\n",
" <td>10.0</td>\n",
" <td>0.67</td>\n",
" <td>13.7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>27</th>\n",
" <td>Pietro Terracciano</td>\n",
" <td>it ITA</td>\n",
" <td>GK</td>\n",
" <td>Fiorentina</td>\n",
" <td>32-344</td>\n",
" <td>1990</td>\n",
" <td>19.0</td>\n",
" <td>19.0</td>\n",
" <td>1710.0</td>\n",
" <td>27.0</td>\n",
" <td>...</td>\n",
" <td>32.9</td>\n",
" <td>125.0</td>\n",
" <td>42.4</td>\n",
" <td>39.1</td>\n",
" <td>174.0</td>\n",
" <td>9.0</td>\n",
" <td>5.2</td>\n",
" <td>38.0</td>\n",
" <td>2.00</td>\n",
" <td>19.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>28</th>\n",
" <td>Guglielmo Vicario</td>\n",
" <td>it ITA</td>\n",
" <td>GK</td>\n",
" <td>Empoli</td>\n",
" <td>26-131</td>\n",
" <td>1996</td>\n",
" <td>22.0</td>\n",
" <td>22.0</td>\n",
" <td>1980.0</td>\n",
" <td>28.0</td>\n",
" <td>...</td>\n",
" <td>33.6</td>\n",
" <td>114.0</td>\n",
" <td>44.7</td>\n",
" <td>41.5</td>\n",
" <td>431.0</td>\n",
" <td>25.0</td>\n",
" <td>5.8</td>\n",
" <td>12.0</td>\n",
" <td>0.55</td>\n",
" <td>10.9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>29</th>\n",
" <td>Jeroen Zoet</td>\n",
" <td>nl NED</td>\n",
" <td>GK</td>\n",
" <td>Spezia</td>\n",
" <td>32-040</td>\n",
" <td>1991</td>\n",
" <td>3.0</td>\n",
" <td>2.0</td>\n",
" <td>154.0</td>\n",
" <td>1.0</td>\n",
" <td>...</td>\n",
" <td>41.7</td>\n",
" <td>8.0</td>\n",
" <td>87.5</td>\n",
" <td>56.6</td>\n",
" <td>24.0</td>\n",
" <td>1.0</td>\n",
" <td>4.2</td>\n",
" <td>3.0</td>\n",
" <td>1.74</td>\n",
" <td>15.7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>30</th>\n",
" <td>Petar Zovko</td>\n",
" <td>ba BIH</td>\n",
" <td>GK</td>\n",
" <td>Spezia</td>\n",
" <td>20-327</td>\n",
" <td>2002</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>74.0</td>\n",
" <td>2.0</td>\n",
" <td>...</td>\n",
" <td>35.1</td>\n",
" <td>13.0</td>\n",
" <td>76.9</td>\n",
" <td>51.1</td>\n",
" <td>24.0</td>\n",
" <td>1.0</td>\n",
" <td>4.2</td>\n",
" <td>2.0</td>\n",
" <td>2.47</td>\n",
" <td>17.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>31 rows × 47 columns</p>\n",
"</div>"
],
"text/plain": [
" player nationality position team age \\\n",
"0 Emil Audero it ITA GK Sampdoria 26-028 \n",
"1 Marco Carnesecchi it ITA GK Cremonese 22-229 \n",
"2 Andrea Consigli it ITA GK Sassuolo 36-019 \n",
"3 Michele Di Gregorio it ITA GK Monza 25-203 \n",
"4 Bartłomiej Drągowski pl POL GK Spezia 25-180 \n",
"5 Wladimiro Falcone it ITA GK Lecce 27-309 \n",
"6 Pierluigi Gollini it ITA GK Fiorentina 27-334 \n",
"7 Samir Handanović si SVN GK Inter 38-216 \n",
"8 Mike Maignan fr FRA GK Milan 27-227 \n",
"9 Luís Maximiano pt POR GK Lazio 24-041 \n",
"10 Alex Meret it ITA GK Napoli 25-330 \n",
"11 Vanja Milinković-Savić rs SRB GK Torino 25-360 \n",
"12 Lorenzo Montipò it ITA GK Hellas Verona 26-360 \n",
"13 Juan Musso ar ARG GK Atalanta 28-285 \n",
"14 Guillermo Ochoa mx MEX GK Salernitana 37-217 \n",
"15 André Onana cm CMR GK Inter 26-319 \n",
"16 Rui Patrício pt POR GK Roma 35-000 \n",
"17 Gianluca Pegolo it ITA GK Sassuolo 41-327 \n",
"18 Mattia Perin it ITA GK Juventus 30-097 \n",
"19 Ivan Provedel it ITA GK Lazio 28-335 \n",
"20 Ionuț Radu ro ROU GK Cremonese 25-263 \n",
"21 Luigi Sepe it ITA GK Salernitana 31-283 \n",
"22 Marco Silvestri it ITA GK Udinese 31-350 \n",
"23 Łukasz Skorupski pl POL GK Bologna 31-286 \n",
"24 Marco Sportiello it ITA GK Atalanta 30-281 \n",
"25 Wojciech Szczęsny pl POL GK Juventus 32-303 \n",
"26 Ciprian Tătărușanu ro ROU GK Milan 37-006 \n",
"27 Pietro Terracciano it ITA GK Fiorentina 32-344 \n",
"28 Guglielmo Vicario it ITA GK Empoli 26-131 \n",
"29 Jeroen Zoet nl NED GK Spezia 32-040 \n",
"30 Petar Zovko ba BIH GK Spezia 20-327 \n",
"\n",
" birth_year gk_games gk_games_starts gk_minutes gk_goals_against ... \\\n",
"0 1997 22.0 22.0 1980.0 36.0 ... \n",
"1 2000 13.0 13.0 1170.0 21.0 ... \n",
"2 1987 20.0 20.0 1800.0 30.0 ... \n",
"3 1997 22.0 22.0 1980.0 30.0 ... \n",
"4 1997 20.0 20.0 1752.0 34.0 ... \n",
"5 1995 22.0 22.0 1980.0 25.0 ... \n",
"6 1995 3.0 3.0 270.0 2.0 ... \n",
"7 1984 8.0 8.0 720.0 13.0 ... \n",
"8 1995 7.0 7.0 630.0 8.0 ... \n",
"9 1999 1.0 1.0 5.0 0.0 ... \n",
"10 1997 22.0 22.0 1980.0 15.0 ... \n",
"11 1997 22.0 22.0 1980.0 23.0 ... \n",
"12 1996 22.0 22.0 1980.0 33.0 ... \n",
"13 1994 16.0 16.0 1357.0 15.0 ... \n",
"14 1985 6.0 6.0 540.0 17.0 ... \n",
"15 1996 14.0 14.0 1260.0 13.0 ... \n",
"16 1988 22.0 22.0 1980.0 19.0 ... \n",
"17 1981 2.0 2.0 180.0 3.0 ... \n",
"18 1992 7.0 6.0 588.0 4.0 ... \n",
"19 1994 22.0 21.0 1973.0 19.0 ... \n",
"20 1997 9.0 9.0 810.0 19.0 ... \n",
"21 1991 16.0 16.0 1440.0 25.0 ... \n",
"22 1991 22.0 22.0 1980.0 25.0 ... \n",
"23 1991 22.0 22.0 1980.0 32.0 ... \n",
"24 1992 7.0 6.0 623.0 9.0 ... \n",
"25 1990 16.0 16.0 1392.0 13.0 ... \n",
"26 1986 15.0 15.0 1350.0 22.0 ... \n",
"27 1990 19.0 19.0 1710.0 27.0 ... \n",
"28 1996 22.0 22.0 1980.0 28.0 ... \n",
"29 1991 3.0 2.0 154.0 1.0 ... \n",
"30 2002 1.0 0.0 74.0 2.0 ... \n",
"\n",
" gk_passes_length_avg gk_goal_kicks gk_pct_goal_kicks_launched \\\n",
"0 39.4 178.0 57.3 \n",
"1 39.3 94.0 56.4 \n",
"2 34.1 179.0 33.5 \n",
"3 33.0 138.0 36.2 \n",
"4 34.9 122.0 62.3 \n",
"5 41.5 169.0 76.3 \n",
"6 32.4 11.0 63.6 \n",
"7 26.1 45.0 4.4 \n",
"8 33.5 18.0 38.9 \n",
"9 0.0 0.0 0.0 \n",
"10 26.5 134.0 18.7 \n",
"11 40.9 160.0 93.8 \n",
"12 44.2 175.0 63.4 \n",
"13 32.8 101.0 62.4 \n",
"14 41.9 60.0 71.7 \n",
"15 30.2 95.0 32.6 \n",
"16 31.9 166.0 30.1 \n",
"17 29.7 16.0 31.3 \n",
"18 30.3 41.0 39.0 \n",
"19 33.0 123.0 35.0 \n",
"20 37.3 67.0 50.7 \n",
"21 36.5 142.0 47.9 \n",
"22 33.0 175.0 37.1 \n",
"23 32.6 159.0 37.1 \n",
"24 28.5 61.0 68.9 \n",
"25 35.2 82.0 47.6 \n",
"26 32.6 74.0 51.4 \n",
"27 32.9 125.0 42.4 \n",
"28 33.6 114.0 44.7 \n",
"29 41.7 8.0 87.5 \n",
"30 35.1 13.0 76.9 \n",
"\n",
" gk_goal_kick_length_avg gk_crosses gk_crosses_stopped \\\n",
"0 44.4 315.0 21.0 \n",
"1 47.3 174.0 13.0 \n",
"2 34.2 276.0 17.0 \n",
"3 33.6 313.0 10.0 \n",
"4 47.1 270.0 9.0 \n",
"5 51.9 327.0 15.0 \n",
"6 49.3 24.0 1.0 \n",
"7 24.0 79.0 2.0 \n",
"8 40.4 65.0 5.0 \n",
"9 0.0 0.0 0.0 \n",
"10 26.6 232.0 6.0 \n",
"11 71.4 271.0 19.0 \n",
"12 47.5 305.0 15.0 \n",
"13 47.9 186.0 10.0 \n",
"14 52.2 86.0 3.0 \n",
"15 36.2 177.0 8.0 \n",
"16 32.4 263.0 7.0 \n",
"17 28.3 28.0 2.0 \n",
"18 35.3 99.0 2.0 \n",
"19 35.0 290.0 8.0 \n",
"20 46.3 107.0 6.0 \n",
"21 40.9 207.0 15.0 \n",
"22 35.3 293.0 5.0 \n",
"23 33.8 304.0 18.0 \n",
"24 48.9 86.0 7.0 \n",
"25 41.8 198.0 5.0 \n",
"26 41.1 174.0 9.0 \n",
"27 39.1 174.0 9.0 \n",
"28 41.5 431.0 25.0 \n",
"29 56.6 24.0 1.0 \n",
"30 51.1 24.0 1.0 \n",
"\n",
" gk_crosses_stopped_pct gk_def_actions_outside_pen_area \\\n",
"0 6.7 20.0 \n",
"1 7.5 8.0 \n",
"2 6.2 23.0 \n",
"3 3.2 16.0 \n",
"4 3.3 24.0 \n",
"5 4.6 22.0 \n",
"6 4.2 0.0 \n",
"7 2.5 5.0 \n",
"8 7.7 6.0 \n",
"9 0.0 0.0 \n",
"10 2.6 24.0 \n",
"11 7.0 37.0 \n",
"12 4.9 47.0 \n",
"13 5.4 14.0 \n",
"14 3.5 4.0 \n",
"15 4.5 4.0 \n",
"16 2.7 15.0 \n",
"17 7.1 0.0 \n",
"18 2.0 9.0 \n",
"19 2.8 39.0 \n",
"20 5.6 9.0 \n",
"21 7.2 12.0 \n",
"22 1.7 10.0 \n",
"23 5.9 18.0 \n",
"24 8.1 14.0 \n",
"25 2.5 12.0 \n",
"26 5.2 10.0 \n",
"27 5.2 38.0 \n",
"28 5.8 12.0 \n",
"29 4.2 3.0 \n",
"30 4.2 2.0 \n",
"\n",
" gk_def_actions_outside_pen_area_per90 gk_avg_distance_def_actions \n",
"0 0.91 14.1 \n",
"1 0.62 12.9 \n",
"2 1.15 14.9 \n",
"3 0.73 13.0 \n",
"4 1.23 15.3 \n",
"5 1.00 12.8 \n",
"6 0.00 9.3 \n",
"7 0.63 14.6 \n",
"8 0.86 12.9 \n",
"9 0.00 19.0 \n",
"10 1.09 17.2 \n",
"11 1.68 16.3 \n",
"12 2.14 16.7 \n",
"13 0.93 15.1 \n",
"14 0.67 15.7 \n",
"15 0.29 12.7 \n",
"16 0.68 13.7 \n",
"17 0.00 9.0 \n",
"18 1.38 17.8 \n",
"19 1.78 18.1 \n",
"20 1.00 14.5 \n",
"21 0.75 14.4 \n",
"22 0.45 13.7 \n",
"23 0.82 13.5 \n",
"24 2.02 19.9 \n",
"25 0.78 15.4 \n",
"26 0.67 13.7 \n",
"27 2.00 19.0 \n",
"28 0.55 10.9 \n",
"29 1.74 15.7 \n",
"30 2.47 17.0 \n",
"\n",
"[31 rows x 47 columns]"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_keeper = get_keeper_data('https://fbref.com/en/comps/11/','/Serie-A-Stats')\n",
"\n",
"df_keeper.to_csv('fbref_data/keepers_players.csv', index=False)\n",
"\n",
"df_keeper"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "b9924851",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>team</th>\n",
" <th>players_used</th>\n",
" <th>possession</th>\n",
" <th>games</th>\n",
" <th>games_starts</th>\n",
" <th>minutes</th>\n",
" <th>goals</th>\n",
" <th>assists</th>\n",
" <th>pens_made</th>\n",
" <th>pens_att</th>\n",
" <th>...</th>\n",
" <th>fouls</th>\n",
" <th>fouled</th>\n",
" <th>offsides</th>\n",
" <th>pens_won</th>\n",
" <th>pens_conceded</th>\n",
" <th>own_goals</th>\n",
" <th>ball_recoveries</th>\n",
" <th>aerials_won</th>\n",
" <th>aerials_lost</th>\n",
" <th>aerials_won_pct</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>Atalanta</td>\n",
" <td>24.0</td>\n",
" <td>48.6</td>\n",
" <td>22.0</td>\n",
" <td>242.0</td>\n",
" <td>1980.0</td>\n",
" <td>40.0</td>\n",
" <td>28.0</td>\n",
" <td>6.0</td>\n",
" <td>8.0</td>\n",
" <td>...</td>\n",
" <td>275.0</td>\n",
" <td>229.0</td>\n",
" <td>30.0</td>\n",
" <td>6.0</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>1296.0</td>\n",
" <td>328.0</td>\n",
" <td>273.0</td>\n",
" <td>54.6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Bologna</td>\n",
" <td>25.0</td>\n",
" <td>52.4</td>\n",
" <td>22.0</td>\n",
" <td>242.0</td>\n",
" <td>1980.0</td>\n",
" <td>27.0</td>\n",
" <td>20.0</td>\n",
" <td>4.0</td>\n",
" <td>4.0</td>\n",
" <td>...</td>\n",
" <td>282.0</td>\n",
" <td>265.0</td>\n",
" <td>42.0</td>\n",
" <td>3.0</td>\n",
" <td>5.0</td>\n",
" <td>2.0</td>\n",
" <td>1230.0</td>\n",
" <td>209.0</td>\n",
" <td>251.0</td>\n",
" <td>45.4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>Cremonese</td>\n",
" <td>31.0</td>\n",
" <td>43.8</td>\n",
" <td>22.0</td>\n",
" <td>242.0</td>\n",
" <td>1980.0</td>\n",
" <td>15.0</td>\n",
" <td>7.0</td>\n",
" <td>2.0</td>\n",
" <td>4.0</td>\n",
" <td>...</td>\n",
" <td>283.0</td>\n",
" <td>225.0</td>\n",
" <td>46.0</td>\n",
" <td>3.0</td>\n",
" <td>4.0</td>\n",
" <td>1.0</td>\n",
" <td>1207.0</td>\n",
" <td>314.0</td>\n",
" <td>409.0</td>\n",
" <td>43.4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>Empoli</td>\n",
" <td>28.0</td>\n",
" <td>47.5</td>\n",
" <td>22.0</td>\n",
" <td>242.0</td>\n",
" <td>1980.0</td>\n",
" <td>21.0</td>\n",
" <td>11.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>262.0</td>\n",
" <td>268.0</td>\n",
" <td>30.0</td>\n",
" <td>0.0</td>\n",
" <td>4.0</td>\n",
" <td>0.0</td>\n",
" <td>1051.0</td>\n",
" <td>217.0</td>\n",
" <td>263.0</td>\n",
" <td>45.2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Fiorentina</td>\n",
" <td>28.0</td>\n",
" <td>57.2</td>\n",
" <td>22.0</td>\n",
" <td>242.0</td>\n",
" <td>1980.0</td>\n",
" <td>23.0</td>\n",
" <td>18.0</td>\n",
" <td>2.0</td>\n",
" <td>4.0</td>\n",
" <td>...</td>\n",
" <td>288.0</td>\n",
" <td>295.0</td>\n",
" <td>32.0</td>\n",
" <td>2.0</td>\n",
" <td>3.0</td>\n",
" <td>1.0</td>\n",
" <td>1200.0</td>\n",
" <td>328.0</td>\n",
" <td>289.0</td>\n",
" <td>53.2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>Hellas Verona</td>\n",
" <td>34.0</td>\n",
" <td>42.9</td>\n",
" <td>22.0</td>\n",
" <td>242.0</td>\n",
" <td>1980.0</td>\n",
" <td>18.0</td>\n",
" <td>15.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>326.0</td>\n",
" <td>220.0</td>\n",
" <td>50.0</td>\n",
" <td>0.0</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>1344.0</td>\n",
" <td>445.0</td>\n",
" <td>423.0</td>\n",
" <td>51.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>Inter</td>\n",
" <td>23.0</td>\n",
" <td>54.5</td>\n",
" <td>22.0</td>\n",
" <td>242.0</td>\n",
" <td>1980.0</td>\n",
" <td>40.0</td>\n",
" <td>27.0</td>\n",
" <td>2.0</td>\n",
" <td>2.0</td>\n",
" <td>...</td>\n",
" <td>269.0</td>\n",
" <td>262.0</td>\n",
" <td>40.0</td>\n",
" <td>1.0</td>\n",
" <td>2.0</td>\n",
" <td>2.0</td>\n",
" <td>1131.0</td>\n",
" <td>288.0</td>\n",
" <td>231.0</td>\n",
" <td>55.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>Juventus</td>\n",
" <td>26.0</td>\n",
" <td>49.0</td>\n",
" <td>22.0</td>\n",
" <td>242.0</td>\n",
" <td>1980.0</td>\n",
" <td>34.0</td>\n",
" <td>26.0</td>\n",
" <td>3.0</td>\n",
" <td>4.0</td>\n",
" <td>...</td>\n",
" <td>262.0</td>\n",
" <td>234.0</td>\n",
" <td>38.0</td>\n",
" <td>4.0</td>\n",
" <td>2.0</td>\n",
" <td>0.0</td>\n",
" <td>1158.0</td>\n",
" <td>272.0</td>\n",
" <td>258.0</td>\n",
" <td>51.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>Lazio</td>\n",
" <td>21.0</td>\n",
" <td>51.8</td>\n",
" <td>22.0</td>\n",
" <td>242.0</td>\n",
" <td>1980.0</td>\n",
" <td>36.0</td>\n",
" <td>26.0</td>\n",
" <td>3.0</td>\n",
" <td>4.0</td>\n",
" <td>...</td>\n",
" <td>230.0</td>\n",
" <td>294.0</td>\n",
" <td>29.0</td>\n",
" <td>2.0</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>1186.0</td>\n",
" <td>229.0</td>\n",
" <td>218.0</td>\n",
" <td>51.2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>Lecce</td>\n",
" <td>26.0</td>\n",
" <td>42.4</td>\n",
" <td>22.0</td>\n",
" <td>242.0</td>\n",
" <td>1980.0</td>\n",
" <td>20.0</td>\n",
" <td>14.0</td>\n",
" <td>1.0</td>\n",
" <td>2.0</td>\n",
" <td>...</td>\n",
" <td>322.0</td>\n",
" <td>272.0</td>\n",
" <td>39.0</td>\n",
" <td>2.0</td>\n",
" <td>4.0</td>\n",
" <td>1.0</td>\n",
" <td>1220.0</td>\n",
" <td>332.0</td>\n",
" <td>417.0</td>\n",
" <td>44.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>Milan</td>\n",
" <td>27.0</td>\n",
" <td>53.5</td>\n",
" <td>22.0</td>\n",
" <td>242.0</td>\n",
" <td>1980.0</td>\n",
" <td>36.0</td>\n",
" <td>31.0</td>\n",
" <td>2.0</td>\n",
" <td>2.0</td>\n",
" <td>...</td>\n",
" <td>273.0</td>\n",
" <td>263.0</td>\n",
" <td>37.0</td>\n",
" <td>1.0</td>\n",
" <td>4.0</td>\n",
" <td>1.0</td>\n",
" <td>1178.0</td>\n",
" <td>325.0</td>\n",
" <td>263.0</td>\n",
" <td>55.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>Monza</td>\n",
" <td>29.0</td>\n",
" <td>55.0</td>\n",
" <td>22.0</td>\n",
" <td>242.0</td>\n",
" <td>1980.0</td>\n",
" <td>27.0</td>\n",
" <td>17.0</td>\n",
" <td>4.0</td>\n",
" <td>4.0</td>\n",
" <td>...</td>\n",
" <td>288.0</td>\n",
" <td>298.0</td>\n",
" <td>42.0</td>\n",
" <td>4.0</td>\n",
" <td>0.0</td>\n",
" <td>1.0</td>\n",
" <td>1076.0</td>\n",
" <td>252.0</td>\n",
" <td>243.0</td>\n",
" <td>50.9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>Napoli</td>\n",
" <td>24.0</td>\n",
" <td>61.6</td>\n",
" <td>22.0</td>\n",
" <td>242.0</td>\n",
" <td>1980.0</td>\n",
" <td>54.0</td>\n",
" <td>42.0</td>\n",
" <td>5.0</td>\n",
" <td>6.0</td>\n",
" <td>...</td>\n",
" <td>212.0</td>\n",
" <td>279.0</td>\n",
" <td>40.0</td>\n",
" <td>4.0</td>\n",
" <td>2.0</td>\n",
" <td>0.0</td>\n",
" <td>1183.0</td>\n",
" <td>280.0</td>\n",
" <td>232.0</td>\n",
" <td>54.7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>Roma</td>\n",
" <td>26.0</td>\n",
" <td>49.3</td>\n",
" <td>22.0</td>\n",
" <td>242.0</td>\n",
" <td>1980.0</td>\n",
" <td>29.0</td>\n",
" <td>19.0</td>\n",
" <td>4.0</td>\n",
" <td>6.0</td>\n",
" <td>...</td>\n",
" <td>261.0</td>\n",
" <td>296.0</td>\n",
" <td>35.0</td>\n",
" <td>4.0</td>\n",
" <td>0.0</td>\n",
" <td>1.0</td>\n",
" <td>1164.0</td>\n",
" <td>266.0</td>\n",
" <td>221.0</td>\n",
" <td>54.6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>Salernitana</td>\n",
" <td>28.0</td>\n",
" <td>46.0</td>\n",
" <td>22.0</td>\n",
" <td>242.0</td>\n",
" <td>1980.0</td>\n",
" <td>24.0</td>\n",
" <td>16.0</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>...</td>\n",
" <td>272.0</td>\n",
" <td>231.0</td>\n",
" <td>43.0</td>\n",
" <td>0.0</td>\n",
" <td>8.0</td>\n",
" <td>0.0</td>\n",
" <td>1149.0</td>\n",
" <td>285.0</td>\n",
" <td>291.0</td>\n",
" <td>49.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>Sampdoria</td>\n",
" <td>31.0</td>\n",
" <td>47.3</td>\n",
" <td>22.0</td>\n",
" <td>242.0</td>\n",
" <td>1980.0</td>\n",
" <td>10.0</td>\n",
" <td>8.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>314.0</td>\n",
" <td>330.0</td>\n",
" <td>40.0</td>\n",
" <td>0.0</td>\n",
" <td>6.0</td>\n",
" <td>2.0</td>\n",
" <td>1116.0</td>\n",
" <td>349.0</td>\n",
" <td>362.0</td>\n",
" <td>49.1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>Sassuolo</td>\n",
" <td>29.0</td>\n",
" <td>48.7</td>\n",
" <td>22.0</td>\n",
" <td>242.0</td>\n",
" <td>1980.0</td>\n",
" <td>25.0</td>\n",
" <td>18.0</td>\n",
" <td>4.0</td>\n",
" <td>5.0</td>\n",
" <td>...</td>\n",
" <td>227.0</td>\n",
" <td>269.0</td>\n",
" <td>19.0</td>\n",
" <td>4.0</td>\n",
" <td>4.0</td>\n",
" <td>0.0</td>\n",
" <td>994.0</td>\n",
" <td>206.0</td>\n",
" <td>256.0</td>\n",
" <td>44.6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>Spezia</td>\n",
" <td>33.0</td>\n",
" <td>45.5</td>\n",
" <td>22.0</td>\n",
" <td>242.0</td>\n",
" <td>1980.0</td>\n",
" <td>17.0</td>\n",
" <td>10.0</td>\n",
" <td>3.0</td>\n",
" <td>3.0</td>\n",
" <td>...</td>\n",
" <td>313.0</td>\n",
" <td>220.0</td>\n",
" <td>39.0</td>\n",
" <td>1.0</td>\n",
" <td>2.0</td>\n",
" <td>0.0</td>\n",
" <td>1234.0</td>\n",
" <td>306.0</td>\n",
" <td>343.0</td>\n",
" <td>47.1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>Torino</td>\n",
" <td>27.0</td>\n",
" <td>53.0</td>\n",
" <td>22.0</td>\n",
" <td>242.0</td>\n",
" <td>1980.0</td>\n",
" <td>22.0</td>\n",
" <td>17.0</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>...</td>\n",
" <td>319.0</td>\n",
" <td>224.0</td>\n",
" <td>50.0</td>\n",
" <td>1.0</td>\n",
" <td>4.0</td>\n",
" <td>0.0</td>\n",
" <td>1184.0</td>\n",
" <td>333.0</td>\n",
" <td>367.0</td>\n",
" <td>47.6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>Udinese</td>\n",
" <td>25.0</td>\n",
" <td>49.9</td>\n",
" <td>22.0</td>\n",
" <td>242.0</td>\n",
" <td>1980.0</td>\n",
" <td>29.0</td>\n",
" <td>25.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>263.0</td>\n",
" <td>267.0</td>\n",
" <td>37.0</td>\n",
" <td>0.0</td>\n",
" <td>2.0</td>\n",
" <td>2.0</td>\n",
" <td>1140.0</td>\n",
" <td>277.0</td>\n",
" <td>233.0</td>\n",
" <td>54.3</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>20 rows × 152 columns</p>\n",
"</div>"
],
"text/plain": [
" team players_used possession games games_starts minutes \\\n",
"0 Atalanta 24.0 48.6 22.0 242.0 1980.0 \n",
"1 Bologna 25.0 52.4 22.0 242.0 1980.0 \n",
"2 Cremonese 31.0 43.8 22.0 242.0 1980.0 \n",
"3 Empoli 28.0 47.5 22.0 242.0 1980.0 \n",
"4 Fiorentina 28.0 57.2 22.0 242.0 1980.0 \n",
"5 Hellas Verona 34.0 42.9 22.0 242.0 1980.0 \n",
"6 Inter 23.0 54.5 22.0 242.0 1980.0 \n",
"7 Juventus 26.0 49.0 22.0 242.0 1980.0 \n",
"8 Lazio 21.0 51.8 22.0 242.0 1980.0 \n",
"9 Lecce 26.0 42.4 22.0 242.0 1980.0 \n",
"10 Milan 27.0 53.5 22.0 242.0 1980.0 \n",
"11 Monza 29.0 55.0 22.0 242.0 1980.0 \n",
"12 Napoli 24.0 61.6 22.0 242.0 1980.0 \n",
"13 Roma 26.0 49.3 22.0 242.0 1980.0 \n",
"14 Salernitana 28.0 46.0 22.0 242.0 1980.0 \n",
"15 Sampdoria 31.0 47.3 22.0 242.0 1980.0 \n",
"16 Sassuolo 29.0 48.7 22.0 242.0 1980.0 \n",
"17 Spezia 33.0 45.5 22.0 242.0 1980.0 \n",
"18 Torino 27.0 53.0 22.0 242.0 1980.0 \n",
"19 Udinese 25.0 49.9 22.0 242.0 1980.0 \n",
"\n",
" goals assists pens_made pens_att ... fouls fouled offsides \\\n",
"0 40.0 28.0 6.0 8.0 ... 275.0 229.0 30.0 \n",
"1 27.0 20.0 4.0 4.0 ... 282.0 265.0 42.0 \n",
"2 15.0 7.0 2.0 4.0 ... 283.0 225.0 46.0 \n",
"3 21.0 11.0 0.0 0.0 ... 262.0 268.0 30.0 \n",
"4 23.0 18.0 2.0 4.0 ... 288.0 295.0 32.0 \n",
"5 18.0 15.0 0.0 0.0 ... 326.0 220.0 50.0 \n",
"6 40.0 27.0 2.0 2.0 ... 269.0 262.0 40.0 \n",
"7 34.0 26.0 3.0 4.0 ... 262.0 234.0 38.0 \n",
"8 36.0 26.0 3.0 4.0 ... 230.0 294.0 29.0 \n",
"9 20.0 14.0 1.0 2.0 ... 322.0 272.0 39.0 \n",
"10 36.0 31.0 2.0 2.0 ... 273.0 263.0 37.0 \n",
"11 27.0 17.0 4.0 4.0 ... 288.0 298.0 42.0 \n",
"12 54.0 42.0 5.0 6.0 ... 212.0 279.0 40.0 \n",
"13 29.0 19.0 4.0 6.0 ... 261.0 296.0 35.0 \n",
"14 24.0 16.0 1.0 1.0 ... 272.0 231.0 43.0 \n",
"15 10.0 8.0 0.0 0.0 ... 314.0 330.0 40.0 \n",
"16 25.0 18.0 4.0 5.0 ... 227.0 269.0 19.0 \n",
"17 17.0 10.0 3.0 3.0 ... 313.0 220.0 39.0 \n",
"18 22.0 17.0 1.0 1.0 ... 319.0 224.0 50.0 \n",
"19 29.0 25.0 0.0 0.0 ... 263.0 267.0 37.0 \n",
"\n",
" pens_won pens_conceded own_goals ball_recoveries aerials_won \\\n",
"0 6.0 1.0 1.0 1296.0 328.0 \n",
"1 3.0 5.0 2.0 1230.0 209.0 \n",
"2 3.0 4.0 1.0 1207.0 314.0 \n",
"3 0.0 4.0 0.0 1051.0 217.0 \n",
"4 2.0 3.0 1.0 1200.0 328.0 \n",
"5 0.0 1.0 1.0 1344.0 445.0 \n",
"6 1.0 2.0 2.0 1131.0 288.0 \n",
"7 4.0 2.0 0.0 1158.0 272.0 \n",
"8 2.0 1.0 0.0 1186.0 229.0 \n",
"9 2.0 4.0 1.0 1220.0 332.0 \n",
"10 1.0 4.0 1.0 1178.0 325.0 \n",
"11 4.0 0.0 1.0 1076.0 252.0 \n",
"12 4.0 2.0 0.0 1183.0 280.0 \n",
"13 4.0 0.0 1.0 1164.0 266.0 \n",
"14 0.0 8.0 0.0 1149.0 285.0 \n",
"15 0.0 6.0 2.0 1116.0 349.0 \n",
"16 4.0 4.0 0.0 994.0 206.0 \n",
"17 1.0 2.0 0.0 1234.0 306.0 \n",
"18 1.0 4.0 0.0 1184.0 333.0 \n",
"19 0.0 2.0 2.0 1140.0 277.0 \n",
"\n",
" aerials_lost aerials_won_pct \n",
"0 273.0 54.6 \n",
"1 251.0 45.4 \n",
"2 409.0 43.4 \n",
"3 263.0 45.2 \n",
"4 289.0 53.2 \n",
"5 423.0 51.3 \n",
"6 231.0 55.5 \n",
"7 258.0 51.3 \n",
"8 218.0 51.2 \n",
"9 417.0 44.3 \n",
"10 263.0 55.3 \n",
"11 243.0 50.9 \n",
"12 232.0 54.7 \n",
"13 221.0 54.6 \n",
"14 291.0 49.5 \n",
"15 362.0 49.1 \n",
"16 256.0 44.6 \n",
"17 343.0 47.1 \n",
"18 367.0 47.6 \n",
"19 233.0 54.3 \n",
"\n",
"[20 rows x 152 columns]"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_team = get_team_data('https://fbref.com/en/comps/11/','/Serie-A-Stats', 'for')\n",
"\n",
"df_team.to_csv('fbref_data/teams.csv', index=False)\n",
"\n",
"df_team"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "5868ec4a",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>team</th>\n",
" <th>players_used</th>\n",
" <th>possession</th>\n",
" <th>games</th>\n",
" <th>games_starts</th>\n",
" <th>minutes</th>\n",
" <th>goals</th>\n",
" <th>assists</th>\n",
" <th>pens_made</th>\n",
" <th>pens_att</th>\n",
" <th>...</th>\n",
" <th>fouls</th>\n",
" <th>fouled</th>\n",
" <th>offsides</th>\n",
" <th>pens_won</th>\n",
" <th>pens_conceded</th>\n",
" <th>own_goals</th>\n",
" <th>ball_recoveries</th>\n",
" <th>aerials_won</th>\n",
" <th>aerials_lost</th>\n",
" <th>aerials_won_pct</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>vs Atalanta</td>\n",
" <td>24.0</td>\n",
" <td>51.4</td>\n",
" <td>22.0</td>\n",
" <td>242.0</td>\n",
" <td>1980.0</td>\n",
" <td>23.0</td>\n",
" <td>17.0</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>...</td>\n",
" <td>244.0</td>\n",
" <td>256.0</td>\n",
" <td>26.0</td>\n",
" <td>1.0</td>\n",
" <td>8.0</td>\n",
" <td>1.0</td>\n",
" <td>1335.0</td>\n",
" <td>273.0</td>\n",
" <td>328.0</td>\n",
" <td>45.4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>vs Bologna</td>\n",
" <td>25.0</td>\n",
" <td>47.6</td>\n",
" <td>22.0</td>\n",
" <td>242.0</td>\n",
" <td>1980.0</td>\n",
" <td>30.0</td>\n",
" <td>18.0</td>\n",
" <td>5.0</td>\n",
" <td>5.0</td>\n",
" <td>...</td>\n",
" <td>280.0</td>\n",
" <td>268.0</td>\n",
" <td>38.0</td>\n",
" <td>3.0</td>\n",
" <td>4.0</td>\n",
" <td>1.0</td>\n",
" <td>1204.0</td>\n",
" <td>250.0</td>\n",
" <td>210.0</td>\n",
" <td>54.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>vs Cremonese</td>\n",
" <td>31.0</td>\n",
" <td>56.2</td>\n",
" <td>22.0</td>\n",
" <td>242.0</td>\n",
" <td>1980.0</td>\n",
" <td>39.0</td>\n",
" <td>25.0</td>\n",
" <td>4.0</td>\n",
" <td>4.0</td>\n",
" <td>...</td>\n",
" <td>239.0</td>\n",
" <td>271.0</td>\n",
" <td>36.0</td>\n",
" <td>3.0</td>\n",
" <td>4.0</td>\n",
" <td>0.0</td>\n",
" <td>1229.0</td>\n",
" <td>409.0</td>\n",
" <td>314.0</td>\n",
" <td>56.6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>vs Empoli</td>\n",
" <td>28.0</td>\n",
" <td>52.5</td>\n",
" <td>22.0</td>\n",
" <td>242.0</td>\n",
" <td>1980.0</td>\n",
" <td>28.0</td>\n",
" <td>20.0</td>\n",
" <td>2.0</td>\n",
" <td>4.0</td>\n",
" <td>...</td>\n",
" <td>283.0</td>\n",
" <td>253.0</td>\n",
" <td>36.0</td>\n",
" <td>2.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>1148.0</td>\n",
" <td>263.0</td>\n",
" <td>217.0</td>\n",
" <td>54.8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>vs Fiorentina</td>\n",
" <td>28.0</td>\n",
" <td>42.8</td>\n",
" <td>22.0</td>\n",
" <td>242.0</td>\n",
" <td>1980.0</td>\n",
" <td>28.0</td>\n",
" <td>20.0</td>\n",
" <td>3.0</td>\n",
" <td>3.0</td>\n",
" <td>...</td>\n",
" <td>307.0</td>\n",
" <td>269.0</td>\n",
" <td>59.0</td>\n",
" <td>1.0</td>\n",
" <td>4.0</td>\n",
" <td>0.0</td>\n",
" <td>1130.0</td>\n",
" <td>289.0</td>\n",
" <td>328.0</td>\n",
" <td>46.8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>vs Hellas Verona</td>\n",
" <td>34.0</td>\n",
" <td>57.1</td>\n",
" <td>22.0</td>\n",
" <td>242.0</td>\n",
" <td>1980.0</td>\n",
" <td>32.0</td>\n",
" <td>30.0</td>\n",
" <td>0.0</td>\n",
" <td>1.0</td>\n",
" <td>...</td>\n",
" <td>234.0</td>\n",
" <td>315.0</td>\n",
" <td>25.0</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>2.0</td>\n",
" <td>1231.0</td>\n",
" <td>423.0</td>\n",
" <td>445.0</td>\n",
" <td>48.7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>vs Inter</td>\n",
" <td>23.0</td>\n",
" <td>45.5</td>\n",
" <td>22.0</td>\n",
" <td>242.0</td>\n",
" <td>1980.0</td>\n",
" <td>24.0</td>\n",
" <td>21.0</td>\n",
" <td>2.0</td>\n",
" <td>2.0</td>\n",
" <td>...</td>\n",
" <td>276.0</td>\n",
" <td>248.0</td>\n",
" <td>19.0</td>\n",
" <td>2.0</td>\n",
" <td>2.0</td>\n",
" <td>1.0</td>\n",
" <td>1007.0</td>\n",
" <td>231.0</td>\n",
" <td>288.0</td>\n",
" <td>44.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>vs Juventus</td>\n",
" <td>26.0</td>\n",
" <td>51.0</td>\n",
" <td>22.0</td>\n",
" <td>242.0</td>\n",
" <td>1980.0</td>\n",
" <td>17.0</td>\n",
" <td>14.0</td>\n",
" <td>1.0</td>\n",
" <td>2.0</td>\n",
" <td>...</td>\n",
" <td>246.0</td>\n",
" <td>242.0</td>\n",
" <td>29.0</td>\n",
" <td>0.0</td>\n",
" <td>4.0</td>\n",
" <td>0.0</td>\n",
" <td>1134.0</td>\n",
" <td>258.0</td>\n",
" <td>272.0</td>\n",
" <td>48.7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>vs Lazio</td>\n",
" <td>21.0</td>\n",
" <td>48.2</td>\n",
" <td>22.0</td>\n",
" <td>242.0</td>\n",
" <td>1980.0</td>\n",
" <td>19.0</td>\n",
" <td>13.0</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>...</td>\n",
" <td>308.0</td>\n",
" <td>218.0</td>\n",
" <td>44.0</td>\n",
" <td>1.0</td>\n",
" <td>4.0</td>\n",
" <td>1.0</td>\n",
" <td>1233.0</td>\n",
" <td>218.0</td>\n",
" <td>229.0</td>\n",
" <td>48.8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>vs Lecce</td>\n",
" <td>26.0</td>\n",
" <td>57.6</td>\n",
" <td>22.0</td>\n",
" <td>242.0</td>\n",
" <td>1980.0</td>\n",
" <td>24.0</td>\n",
" <td>16.0</td>\n",
" <td>4.0</td>\n",
" <td>4.0</td>\n",
" <td>...</td>\n",
" <td>283.0</td>\n",
" <td>300.0</td>\n",
" <td>45.0</td>\n",
" <td>3.0</td>\n",
" <td>2.0</td>\n",
" <td>2.0</td>\n",
" <td>1200.0</td>\n",
" <td>417.0</td>\n",
" <td>332.0</td>\n",
" <td>55.7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>vs Milan</td>\n",
" <td>27.0</td>\n",
" <td>46.5</td>\n",
" <td>22.0</td>\n",
" <td>242.0</td>\n",
" <td>1980.0</td>\n",
" <td>29.0</td>\n",
" <td>22.0</td>\n",
" <td>3.0</td>\n",
" <td>4.0</td>\n",
" <td>...</td>\n",
" <td>275.0</td>\n",
" <td>261.0</td>\n",
" <td>25.0</td>\n",
" <td>4.0</td>\n",
" <td>2.0</td>\n",
" <td>2.0</td>\n",
" <td>1125.0</td>\n",
" <td>263.0</td>\n",
" <td>325.0</td>\n",
" <td>44.7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>vs Monza</td>\n",
" <td>29.0</td>\n",
" <td>45.0</td>\n",
" <td>22.0</td>\n",
" <td>242.0</td>\n",
" <td>1980.0</td>\n",
" <td>29.0</td>\n",
" <td>22.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>318.0</td>\n",
" <td>281.0</td>\n",
" <td>37.0</td>\n",
" <td>0.0</td>\n",
" <td>4.0</td>\n",
" <td>1.0</td>\n",
" <td>1145.0</td>\n",
" <td>242.0</td>\n",
" <td>253.0</td>\n",
" <td>48.9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>vs Napoli</td>\n",
" <td>24.0</td>\n",
" <td>38.4</td>\n",
" <td>22.0</td>\n",
" <td>242.0</td>\n",
" <td>1980.0</td>\n",
" <td>15.0</td>\n",
" <td>10.0</td>\n",
" <td>1.0</td>\n",
" <td>2.0</td>\n",
" <td>...</td>\n",
" <td>298.0</td>\n",
" <td>199.0</td>\n",
" <td>28.0</td>\n",
" <td>1.0</td>\n",
" <td>5.0</td>\n",
" <td>0.0</td>\n",
" <td>1100.0</td>\n",
" <td>232.0</td>\n",
" <td>280.0</td>\n",
" <td>45.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>vs Roma</td>\n",
" <td>26.0</td>\n",
" <td>50.7</td>\n",
" <td>22.0</td>\n",
" <td>242.0</td>\n",
" <td>1980.0</td>\n",
" <td>18.0</td>\n",
" <td>14.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>316.0</td>\n",
" <td>246.0</td>\n",
" <td>12.0</td>\n",
" <td>0.0</td>\n",
" <td>6.0</td>\n",
" <td>0.0</td>\n",
" <td>1156.0</td>\n",
" <td>221.0</td>\n",
" <td>266.0</td>\n",
" <td>45.4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>vs Salernitana</td>\n",
" <td>28.0</td>\n",
" <td>54.0</td>\n",
" <td>22.0</td>\n",
" <td>242.0</td>\n",
" <td>1980.0</td>\n",
" <td>42.0</td>\n",
" <td>26.0</td>\n",
" <td>5.0</td>\n",
" <td>8.0</td>\n",
" <td>...</td>\n",
" <td>252.0</td>\n",
" <td>259.0</td>\n",
" <td>57.0</td>\n",
" <td>8.0</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>1213.0</td>\n",
" <td>291.0</td>\n",
" <td>285.0</td>\n",
" <td>50.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>vs Sampdoria</td>\n",
" <td>31.0</td>\n",
" <td>52.7</td>\n",
" <td>22.0</td>\n",
" <td>242.0</td>\n",
" <td>1980.0</td>\n",
" <td>34.0</td>\n",
" <td>24.0</td>\n",
" <td>5.0</td>\n",
" <td>7.0</td>\n",
" <td>...</td>\n",
" <td>339.0</td>\n",
" <td>300.0</td>\n",
" <td>59.0</td>\n",
" <td>4.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>1189.0</td>\n",
" <td>362.0</td>\n",
" <td>349.0</td>\n",
" <td>50.9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>vs Sassuolo</td>\n",
" <td>29.0</td>\n",
" <td>51.3</td>\n",
" <td>22.0</td>\n",
" <td>242.0</td>\n",
" <td>1980.0</td>\n",
" <td>33.0</td>\n",
" <td>24.0</td>\n",
" <td>4.0</td>\n",
" <td>4.0</td>\n",
" <td>...</td>\n",
" <td>287.0</td>\n",
" <td>206.0</td>\n",
" <td>72.0</td>\n",
" <td>2.0</td>\n",
" <td>5.0</td>\n",
" <td>1.0</td>\n",
" <td>1131.0</td>\n",
" <td>256.0</td>\n",
" <td>206.0</td>\n",
" <td>55.4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>vs Spezia</td>\n",
" <td>33.0</td>\n",
" <td>54.5</td>\n",
" <td>22.0</td>\n",
" <td>242.0</td>\n",
" <td>1980.0</td>\n",
" <td>37.0</td>\n",
" <td>28.0</td>\n",
" <td>1.0</td>\n",
" <td>2.0</td>\n",
" <td>...</td>\n",
" <td>235.0</td>\n",
" <td>291.0</td>\n",
" <td>53.0</td>\n",
" <td>1.0</td>\n",
" <td>3.0</td>\n",
" <td>2.0</td>\n",
" <td>1275.0</td>\n",
" <td>343.0</td>\n",
" <td>306.0</td>\n",
" <td>52.9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>vs Torino</td>\n",
" <td>27.0</td>\n",
" <td>47.0</td>\n",
" <td>22.0</td>\n",
" <td>242.0</td>\n",
" <td>1980.0</td>\n",
" <td>23.0</td>\n",
" <td>15.0</td>\n",
" <td>3.0</td>\n",
" <td>4.0</td>\n",
" <td>...</td>\n",
" <td>239.0</td>\n",
" <td>306.0</td>\n",
" <td>24.0</td>\n",
" <td>3.0</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>1155.0</td>\n",
" <td>367.0</td>\n",
" <td>333.0</td>\n",
" <td>52.4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>vs Udinese</td>\n",
" <td>25.0</td>\n",
" <td>50.1</td>\n",
" <td>22.0</td>\n",
" <td>242.0</td>\n",
" <td>1980.0</td>\n",
" <td>23.0</td>\n",
" <td>16.0</td>\n",
" <td>2.0</td>\n",
" <td>2.0</td>\n",
" <td>...</td>\n",
" <td>282.0</td>\n",
" <td>252.0</td>\n",
" <td>34.0</td>\n",
" <td>2.0</td>\n",
" <td>0.0</td>\n",
" <td>1.0</td>\n",
" <td>1101.0</td>\n",
" <td>233.0</td>\n",
" <td>277.0</td>\n",
" <td>45.7</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>20 rows × 152 columns</p>\n",
"</div>"
],
"text/plain": [
" team players_used possession games games_starts minutes \\\n",
"0 vs Atalanta 24.0 51.4 22.0 242.0 1980.0 \n",
"1 vs Bologna 25.0 47.6 22.0 242.0 1980.0 \n",
"2 vs Cremonese 31.0 56.2 22.0 242.0 1980.0 \n",
"3 vs Empoli 28.0 52.5 22.0 242.0 1980.0 \n",
"4 vs Fiorentina 28.0 42.8 22.0 242.0 1980.0 \n",
"5 vs Hellas Verona 34.0 57.1 22.0 242.0 1980.0 \n",
"6 vs Inter 23.0 45.5 22.0 242.0 1980.0 \n",
"7 vs Juventus 26.0 51.0 22.0 242.0 1980.0 \n",
"8 vs Lazio 21.0 48.2 22.0 242.0 1980.0 \n",
"9 vs Lecce 26.0 57.6 22.0 242.0 1980.0 \n",
"10 vs Milan 27.0 46.5 22.0 242.0 1980.0 \n",
"11 vs Monza 29.0 45.0 22.0 242.0 1980.0 \n",
"12 vs Napoli 24.0 38.4 22.0 242.0 1980.0 \n",
"13 vs Roma 26.0 50.7 22.0 242.0 1980.0 \n",
"14 vs Salernitana 28.0 54.0 22.0 242.0 1980.0 \n",
"15 vs Sampdoria 31.0 52.7 22.0 242.0 1980.0 \n",
"16 vs Sassuolo 29.0 51.3 22.0 242.0 1980.0 \n",
"17 vs Spezia 33.0 54.5 22.0 242.0 1980.0 \n",
"18 vs Torino 27.0 47.0 22.0 242.0 1980.0 \n",
"19 vs Udinese 25.0 50.1 22.0 242.0 1980.0 \n",
"\n",
" goals assists pens_made pens_att ... fouls fouled offsides \\\n",
"0 23.0 17.0 1.0 1.0 ... 244.0 256.0 26.0 \n",
"1 30.0 18.0 5.0 5.0 ... 280.0 268.0 38.0 \n",
"2 39.0 25.0 4.0 4.0 ... 239.0 271.0 36.0 \n",
"3 28.0 20.0 2.0 4.0 ... 283.0 253.0 36.0 \n",
"4 28.0 20.0 3.0 3.0 ... 307.0 269.0 59.0 \n",
"5 32.0 30.0 0.0 1.0 ... 234.0 315.0 25.0 \n",
"6 24.0 21.0 2.0 2.0 ... 276.0 248.0 19.0 \n",
"7 17.0 14.0 1.0 2.0 ... 246.0 242.0 29.0 \n",
"8 19.0 13.0 1.0 1.0 ... 308.0 218.0 44.0 \n",
"9 24.0 16.0 4.0 4.0 ... 283.0 300.0 45.0 \n",
"10 29.0 22.0 3.0 4.0 ... 275.0 261.0 25.0 \n",
"11 29.0 22.0 0.0 0.0 ... 318.0 281.0 37.0 \n",
"12 15.0 10.0 1.0 2.0 ... 298.0 199.0 28.0 \n",
"13 18.0 14.0 0.0 0.0 ... 316.0 246.0 12.0 \n",
"14 42.0 26.0 5.0 8.0 ... 252.0 259.0 57.0 \n",
"15 34.0 24.0 5.0 7.0 ... 339.0 300.0 59.0 \n",
"16 33.0 24.0 4.0 4.0 ... 287.0 206.0 72.0 \n",
"17 37.0 28.0 1.0 2.0 ... 235.0 291.0 53.0 \n",
"18 23.0 15.0 3.0 4.0 ... 239.0 306.0 24.0 \n",
"19 23.0 16.0 2.0 2.0 ... 282.0 252.0 34.0 \n",
"\n",
" pens_won pens_conceded own_goals ball_recoveries aerials_won \\\n",
"0 1.0 8.0 1.0 1335.0 273.0 \n",
"1 3.0 4.0 1.0 1204.0 250.0 \n",
"2 3.0 4.0 0.0 1229.0 409.0 \n",
"3 2.0 0.0 0.0 1148.0 263.0 \n",
"4 1.0 4.0 0.0 1130.0 289.0 \n",
"5 1.0 0.0 2.0 1231.0 423.0 \n",
"6 2.0 2.0 1.0 1007.0 231.0 \n",
"7 0.0 4.0 0.0 1134.0 258.0 \n",
"8 1.0 4.0 1.0 1233.0 218.0 \n",
"9 3.0 2.0 2.0 1200.0 417.0 \n",
"10 4.0 2.0 2.0 1125.0 263.0 \n",
"11 0.0 4.0 1.0 1145.0 242.0 \n",
"12 1.0 5.0 0.0 1100.0 232.0 \n",
"13 0.0 6.0 0.0 1156.0 221.0 \n",
"14 8.0 1.0 1.0 1213.0 291.0 \n",
"15 4.0 0.0 0.0 1189.0 362.0 \n",
"16 2.0 5.0 1.0 1131.0 256.0 \n",
"17 1.0 3.0 2.0 1275.0 343.0 \n",
"18 3.0 1.0 0.0 1155.0 367.0 \n",
"19 2.0 0.0 1.0 1101.0 233.0 \n",
"\n",
" aerials_lost aerials_won_pct \n",
"0 328.0 45.4 \n",
"1 210.0 54.3 \n",
"2 314.0 56.6 \n",
"3 217.0 54.8 \n",
"4 328.0 46.8 \n",
"5 445.0 48.7 \n",
"6 288.0 44.5 \n",
"7 272.0 48.7 \n",
"8 229.0 48.8 \n",
"9 332.0 55.7 \n",
"10 325.0 44.7 \n",
"11 253.0 48.9 \n",
"12 280.0 45.3 \n",
"13 266.0 45.4 \n",
"14 285.0 50.5 \n",
"15 349.0 50.9 \n",
"16 206.0 55.4 \n",
"17 306.0 52.9 \n",
"18 333.0 52.4 \n",
"19 277.0 45.7 \n",
"\n",
"[20 rows x 152 columns]"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_vsteam = get_team_data('https://fbref.com/en/comps/11/','/Serie-A-Stats', 'vs')\n",
"\n",
"df_vsteam.to_csv('fbref_data/teams_vs.csv', index=False)\n",
"\n",
"df_vsteam"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "11e51337",
"metadata": {},
"outputs": [],
"source": [
"print('Outfield player columns')\n",
"print(df_outfield.columns.values)\n",
"\n",
"print('Keeper player columns')\n",
"print(df_keeper.columns.values)\n",
"\n",
"print('Team columns')\n",
"print(df_team.columns.values)\n",
"\n",
"print('Vs Team columns')\n",
"print(df_team.columns.values)"
]
},
{
"cell_type": "markdown",
"id": "e4f13ae2",
"metadata": {},
"source": [
"Scrape data for past seasons. \n",
"\n",
"Do not repeat if data is already present."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "2e1370cd",
"metadata": {},
"outputs": [],
"source": [
"df_outfield = get_outfield_data('https://fbref.com/en/comps/11/2021-2022/','/2021-2022-Serie-A-Stats')\n",
"\n",
"df_outfield.to_csv('fbref_data/season2122/outfield_players.csv', index=False)\n",
"\n",
"df_outfield"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "36441b0e",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>player</th>\n",
" <th>nationality</th>\n",
" <th>position</th>\n",
" <th>team</th>\n",
" <th>age</th>\n",
" <th>birth_year</th>\n",
" <th>gk_games</th>\n",
" <th>gk_games_starts</th>\n",
" <th>gk_minutes</th>\n",
" <th>gk_goals_against</th>\n",
" <th>...</th>\n",
" <th>gk_passes_length_avg</th>\n",
" <th>gk_goal_kicks</th>\n",
" <th>gk_pct_goal_kicks_launched</th>\n",
" <th>gk_goal_kick_length_avg</th>\n",
" <th>gk_crosses</th>\n",
" <th>gk_crosses_stopped</th>\n",
" <th>gk_crosses_stopped_pct</th>\n",
" <th>gk_def_actions_outside_pen_area</th>\n",
" <th>gk_def_actions_outside_pen_area_per90</th>\n",
" <th>gk_avg_distance_def_actions</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>Emil Audero</td>\n",
" <td>it ITA</td>\n",
" <td>GK</td>\n",
" <td>Sampdoria</td>\n",
" <td>24</td>\n",
" <td>1997</td>\n",
" <td>29.0</td>\n",
" <td>29.0</td>\n",
" <td>2560.0</td>\n",
" <td>48.0</td>\n",
" <td>...</td>\n",
" <td>36.3</td>\n",
" <td>212.0</td>\n",
" <td>67.9</td>\n",
" <td>47.6</td>\n",
" <td>418.0</td>\n",
" <td>22.0</td>\n",
" <td>5.3</td>\n",
" <td>25.0</td>\n",
" <td>0.88</td>\n",
" <td>13.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Nicola Bagnolini</td>\n",
" <td>it ITA</td>\n",
" <td>GK</td>\n",
" <td>Bologna</td>\n",
" <td>17</td>\n",
" <td>2004</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>3.0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>61.0</td>\n",
" <td>1.0</td>\n",
" <td>100.0</td>\n",
" <td>60.0</td>\n",
" <td>3.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>Francesco Bardi</td>\n",
" <td>it ITA</td>\n",
" <td>GK</td>\n",
" <td>Bologna</td>\n",
" <td>29</td>\n",
" <td>1992</td>\n",
" <td>2.0</td>\n",
" <td>2.0</td>\n",
" <td>177.0</td>\n",
" <td>2.0</td>\n",
" <td>...</td>\n",
" <td>33.0</td>\n",
" <td>13.0</td>\n",
" <td>38.5</td>\n",
" <td>32.1</td>\n",
" <td>24.0</td>\n",
" <td>2.0</td>\n",
" <td>8.3</td>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>5.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>Vid Belec</td>\n",
" <td>si SVN</td>\n",
" <td>GK</td>\n",
" <td>Salernitana</td>\n",
" <td>31</td>\n",
" <td>1990</td>\n",
" <td>23.0</td>\n",
" <td>21.0</td>\n",
" <td>1938.0</td>\n",
" <td>49.0</td>\n",
" <td>...</td>\n",
" <td>39.5</td>\n",
" <td>182.0</td>\n",
" <td>73.1</td>\n",
" <td>49.9</td>\n",
" <td>329.0</td>\n",
" <td>12.0</td>\n",
" <td>3.6</td>\n",
" <td>14.0</td>\n",
" <td>0.65</td>\n",
" <td>12.7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Alessandro Berardi</td>\n",
" <td>it ITA</td>\n",
" <td>GK</td>\n",
" <td>Hellas Verona</td>\n",
" <td>30</td>\n",
" <td>1991</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>90.0</td>\n",
" <td>3.0</td>\n",
" <td>...</td>\n",
" <td>39.7</td>\n",
" <td>7.0</td>\n",
" <td>100.0</td>\n",
" <td>58.7</td>\n",
" <td>12.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>Etrit Berisha</td>\n",
" <td>al ALB</td>\n",
" <td>GK</td>\n",
" <td>Torino</td>\n",
" <td>32</td>\n",
" <td>1989</td>\n",
" <td>10.0</td>\n",
" <td>10.0</td>\n",
" <td>900.0</td>\n",
" <td>8.0</td>\n",
" <td>...</td>\n",
" <td>39.4</td>\n",
" <td>78.0</td>\n",
" <td>87.2</td>\n",
" <td>58.6</td>\n",
" <td>148.0</td>\n",
" <td>7.0</td>\n",
" <td>4.7</td>\n",
" <td>10.0</td>\n",
" <td>1.00</td>\n",
" <td>14.6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>Andrea Consigli</td>\n",
" <td>it ITA</td>\n",
" <td>GK</td>\n",
" <td>Sassuolo</td>\n",
" <td>34</td>\n",
" <td>1987</td>\n",
" <td>37.0</td>\n",
" <td>37.0</td>\n",
" <td>3322.0</td>\n",
" <td>63.0</td>\n",
" <td>...</td>\n",
" <td>30.9</td>\n",
" <td>246.0</td>\n",
" <td>31.7</td>\n",
" <td>28.8</td>\n",
" <td>491.0</td>\n",
" <td>21.0</td>\n",
" <td>4.3</td>\n",
" <td>30.0</td>\n",
" <td>0.81</td>\n",
" <td>13.4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>Alessio Cragno</td>\n",
" <td>it ITA</td>\n",
" <td>GK</td>\n",
" <td>Cagliari</td>\n",
" <td>27</td>\n",
" <td>1994</td>\n",
" <td>35.0</td>\n",
" <td>35.0</td>\n",
" <td>3150.0</td>\n",
" <td>63.0</td>\n",
" <td>...</td>\n",
" <td>39.4</td>\n",
" <td>316.0</td>\n",
" <td>73.4</td>\n",
" <td>48.2</td>\n",
" <td>484.0</td>\n",
" <td>22.0</td>\n",
" <td>4.5</td>\n",
" <td>33.0</td>\n",
" <td>0.94</td>\n",
" <td>15.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>Bartłomiej Drągowski</td>\n",
" <td>pl POL</td>\n",
" <td>GK</td>\n",
" <td>Fiorentina</td>\n",
" <td>23</td>\n",
" <td>1997</td>\n",
" <td>7.0</td>\n",
" <td>7.0</td>\n",
" <td>556.0</td>\n",
" <td>8.0</td>\n",
" <td>...</td>\n",
" <td>30.8</td>\n",
" <td>39.0</td>\n",
" <td>43.6</td>\n",
" <td>40.2</td>\n",
" <td>61.0</td>\n",
" <td>2.0</td>\n",
" <td>3.3</td>\n",
" <td>20.0</td>\n",
" <td>3.24</td>\n",
" <td>22.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>Wladimiro Falcone</td>\n",
" <td>it ITA</td>\n",
" <td>GK</td>\n",
" <td>Sampdoria</td>\n",
" <td>26</td>\n",
" <td>1995</td>\n",
" <td>10.0</td>\n",
" <td>9.0</td>\n",
" <td>855.0</td>\n",
" <td>14.0</td>\n",
" <td>...</td>\n",
" <td>33.2</td>\n",
" <td>74.0</td>\n",
" <td>70.3</td>\n",
" <td>45.0</td>\n",
" <td>164.0</td>\n",
" <td>7.0</td>\n",
" <td>4.3</td>\n",
" <td>2.0</td>\n",
" <td>0.21</td>\n",
" <td>10.2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>Vincenzo Fiorillo</td>\n",
" <td>it ITA</td>\n",
" <td>GK</td>\n",
" <td>Salernitana</td>\n",
" <td>31</td>\n",
" <td>1990</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>90.0</td>\n",
" <td>5.0</td>\n",
" <td>...</td>\n",
" <td>36.4</td>\n",
" <td>12.0</td>\n",
" <td>83.3</td>\n",
" <td>50.8</td>\n",
" <td>16.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>4.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>Luca Gemello</td>\n",
" <td>it ITA</td>\n",
" <td>GK</td>\n",
" <td>Torino</td>\n",
" <td>21</td>\n",
" <td>2000</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>90.0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>47.8</td>\n",
" <td>3.0</td>\n",
" <td>100.0</td>\n",
" <td>56.3</td>\n",
" <td>10.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>1.0</td>\n",
" <td>1.00</td>\n",
" <td>21.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>Samir Handanović</td>\n",
" <td>si SVN</td>\n",
" <td>GK</td>\n",
" <td>Inter</td>\n",
" <td>37</td>\n",
" <td>1984</td>\n",
" <td>37.0</td>\n",
" <td>37.0</td>\n",
" <td>3330.0</td>\n",
" <td>30.0</td>\n",
" <td>...</td>\n",
" <td>28.1</td>\n",
" <td>142.0</td>\n",
" <td>20.4</td>\n",
" <td>26.5</td>\n",
" <td>393.0</td>\n",
" <td>15.0</td>\n",
" <td>3.8</td>\n",
" <td>10.0</td>\n",
" <td>0.27</td>\n",
" <td>11.2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>Luca Lezzerini</td>\n",
" <td>it ITA</td>\n",
" <td>GK</td>\n",
" <td>Venezia</td>\n",
" <td>26</td>\n",
" <td>1995</td>\n",
" <td>6.0</td>\n",
" <td>6.0</td>\n",
" <td>495.0</td>\n",
" <td>9.0</td>\n",
" <td>...</td>\n",
" <td>30.3</td>\n",
" <td>44.0</td>\n",
" <td>34.1</td>\n",
" <td>31.0</td>\n",
" <td>100.0</td>\n",
" <td>2.0</td>\n",
" <td>2.0</td>\n",
" <td>3.0</td>\n",
" <td>0.55</td>\n",
" <td>13.8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>Niki Mäenpää</td>\n",
" <td>fi FIN</td>\n",
" <td>GK</td>\n",
" <td>Venezia</td>\n",
" <td>36</td>\n",
" <td>1985</td>\n",
" <td>17.0</td>\n",
" <td>16.0</td>\n",
" <td>1485.0</td>\n",
" <td>27.0</td>\n",
" <td>...</td>\n",
" <td>36.0</td>\n",
" <td>143.0</td>\n",
" <td>39.2</td>\n",
" <td>35.4</td>\n",
" <td>275.0</td>\n",
" <td>6.0</td>\n",
" <td>2.2</td>\n",
" <td>10.0</td>\n",
" <td>0.61</td>\n",
" <td>10.8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>Mike Maignan</td>\n",
" <td>fr FRA</td>\n",
" <td>GK</td>\n",
" <td>Milan</td>\n",
" <td>26</td>\n",
" <td>1995</td>\n",
" <td>32.0</td>\n",
" <td>32.0</td>\n",
" <td>2880.0</td>\n",
" <td>21.0</td>\n",
" <td>...</td>\n",
" <td>33.0</td>\n",
" <td>149.0</td>\n",
" <td>38.9</td>\n",
" <td>36.5</td>\n",
" <td>347.0</td>\n",
" <td>25.0</td>\n",
" <td>7.2</td>\n",
" <td>45.0</td>\n",
" <td>1.41</td>\n",
" <td>16.8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>Davide Marfella</td>\n",
" <td>it ITA</td>\n",
" <td>GK</td>\n",
" <td>Napoli</td>\n",
" <td>21</td>\n",
" <td>1999</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>11.0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>15.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>Alex Meret</td>\n",
" <td>it ITA</td>\n",
" <td>GK</td>\n",
" <td>Napoli</td>\n",
" <td>24</td>\n",
" <td>1997</td>\n",
" <td>7.0</td>\n",
" <td>7.0</td>\n",
" <td>619.0</td>\n",
" <td>6.0</td>\n",
" <td>...</td>\n",
" <td>25.1</td>\n",
" <td>36.0</td>\n",
" <td>25.0</td>\n",
" <td>26.5</td>\n",
" <td>89.0</td>\n",
" <td>3.0</td>\n",
" <td>3.4</td>\n",
" <td>5.0</td>\n",
" <td>0.73</td>\n",
" <td>14.6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>Vanja Milinković-Savić</td>\n",
" <td>rs SRB</td>\n",
" <td>GK</td>\n",
" <td>Torino</td>\n",
" <td>24</td>\n",
" <td>1997</td>\n",
" <td>27.0</td>\n",
" <td>27.0</td>\n",
" <td>2430.0</td>\n",
" <td>33.0</td>\n",
" <td>...</td>\n",
" <td>44.4</td>\n",
" <td>169.0</td>\n",
" <td>91.1</td>\n",
" <td>66.3</td>\n",
" <td>290.0</td>\n",
" <td>18.0</td>\n",
" <td>6.2</td>\n",
" <td>22.0</td>\n",
" <td>0.81</td>\n",
" <td>14.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>Lorenzo Montipò</td>\n",
" <td>it ITA</td>\n",
" <td>GK</td>\n",
" <td>Hellas Verona</td>\n",
" <td>25</td>\n",
" <td>1996</td>\n",
" <td>34.0</td>\n",
" <td>34.0</td>\n",
" <td>3060.0</td>\n",
" <td>50.0</td>\n",
" <td>...</td>\n",
" <td>42.3</td>\n",
" <td>231.0</td>\n",
" <td>68.4</td>\n",
" <td>46.5</td>\n",
" <td>495.0</td>\n",
" <td>21.0</td>\n",
" <td>4.2</td>\n",
" <td>23.0</td>\n",
" <td>0.68</td>\n",
" <td>13.1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>Juan Musso</td>\n",
" <td>ar ARG</td>\n",
" <td>GK</td>\n",
" <td>Atalanta</td>\n",
" <td>27</td>\n",
" <td>1994</td>\n",
" <td>33.0</td>\n",
" <td>33.0</td>\n",
" <td>2932.0</td>\n",
" <td>42.0</td>\n",
" <td>...</td>\n",
" <td>31.3</td>\n",
" <td>208.0</td>\n",
" <td>69.2</td>\n",
" <td>49.7</td>\n",
" <td>308.0</td>\n",
" <td>28.0</td>\n",
" <td>9.1</td>\n",
" <td>39.0</td>\n",
" <td>1.20</td>\n",
" <td>16.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>David Ospina</td>\n",
" <td>co COL</td>\n",
" <td>GK</td>\n",
" <td>Napoli</td>\n",
" <td>32</td>\n",
" <td>1988</td>\n",
" <td>31.0</td>\n",
" <td>31.0</td>\n",
" <td>2790.0</td>\n",
" <td>25.0</td>\n",
" <td>...</td>\n",
" <td>28.6</td>\n",
" <td>135.0</td>\n",
" <td>14.1</td>\n",
" <td>22.5</td>\n",
" <td>353.0</td>\n",
" <td>18.0</td>\n",
" <td>5.1</td>\n",
" <td>31.0</td>\n",
" <td>1.00</td>\n",
" <td>17.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td>Daniele Padelli</td>\n",
" <td>it ITA</td>\n",
" <td>GK</td>\n",
" <td>Udinese</td>\n",
" <td>35</td>\n",
" <td>1985</td>\n",
" <td>3.0</td>\n",
" <td>3.0</td>\n",
" <td>270.0</td>\n",
" <td>8.0</td>\n",
" <td>...</td>\n",
" <td>29.6</td>\n",
" <td>22.0</td>\n",
" <td>50.0</td>\n",
" <td>40.9</td>\n",
" <td>56.0</td>\n",
" <td>1.0</td>\n",
" <td>1.8</td>\n",
" <td>2.0</td>\n",
" <td>0.67</td>\n",
" <td>13.2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>23</th>\n",
" <td>Ivor Pandur</td>\n",
" <td>hr CRO</td>\n",
" <td>GK</td>\n",
" <td>Hellas Verona</td>\n",
" <td>21</td>\n",
" <td>2000</td>\n",
" <td>3.0</td>\n",
" <td>3.0</td>\n",
" <td>270.0</td>\n",
" <td>6.0</td>\n",
" <td>...</td>\n",
" <td>33.1</td>\n",
" <td>15.0</td>\n",
" <td>53.3</td>\n",
" <td>37.1</td>\n",
" <td>22.0</td>\n",
" <td>1.0</td>\n",
" <td>4.5</td>\n",
" <td>1.0</td>\n",
" <td>0.33</td>\n",
" <td>11.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>24</th>\n",
" <td>Rui Patrício</td>\n",
" <td>pt POR</td>\n",
" <td>GK</td>\n",
" <td>Roma</td>\n",
" <td>33</td>\n",
" <td>1988</td>\n",
" <td>38.0</td>\n",
" <td>38.0</td>\n",
" <td>3420.0</td>\n",
" <td>43.0</td>\n",
" <td>...</td>\n",
" <td>34.2</td>\n",
" <td>222.0</td>\n",
" <td>32.0</td>\n",
" <td>31.5</td>\n",
" <td>393.0</td>\n",
" <td>12.0</td>\n",
" <td>3.1</td>\n",
" <td>26.0</td>\n",
" <td>0.68</td>\n",
" <td>14.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25</th>\n",
" <td>Gianluca Pegolo</td>\n",
" <td>it ITA</td>\n",
" <td>GK</td>\n",
" <td>Sassuolo</td>\n",
" <td>40</td>\n",
" <td>1981</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>90.0</td>\n",
" <td>3.0</td>\n",
" <td>...</td>\n",
" <td>26.7</td>\n",
" <td>8.0</td>\n",
" <td>12.5</td>\n",
" <td>19.8</td>\n",
" <td>8.0</td>\n",
" <td>1.0</td>\n",
" <td>12.5</td>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>6.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>26</th>\n",
" <td>Mattia Perin</td>\n",
" <td>it ITA</td>\n",
" <td>GK</td>\n",
" <td>Juventus</td>\n",
" <td>28</td>\n",
" <td>1992</td>\n",
" <td>5.0</td>\n",
" <td>5.0</td>\n",
" <td>405.0</td>\n",
" <td>7.0</td>\n",
" <td>...</td>\n",
" <td>29.6</td>\n",
" <td>26.0</td>\n",
" <td>23.1</td>\n",
" <td>29.2</td>\n",
" <td>77.0</td>\n",
" <td>1.0</td>\n",
" <td>1.3</td>\n",
" <td>4.0</td>\n",
" <td>0.89</td>\n",
" <td>12.6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>27</th>\n",
" <td>Carlo Pinsoglio</td>\n",
" <td>it ITA</td>\n",
" <td>GK</td>\n",
" <td>Juventus</td>\n",
" <td>31</td>\n",
" <td>1990</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>45.0</td>\n",
" <td>1.0</td>\n",
" <td>...</td>\n",
" <td>29.6</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>37.0</td>\n",
" <td>12.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>28</th>\n",
" <td>Ivan Provedel</td>\n",
" <td>it ITA</td>\n",
" <td>GK</td>\n",
" <td>Spezia</td>\n",
" <td>27</td>\n",
" <td>1994</td>\n",
" <td>31.0</td>\n",
" <td>31.0</td>\n",
" <td>2761.0</td>\n",
" <td>52.0</td>\n",
" <td>...</td>\n",
" <td>40.1</td>\n",
" <td>229.0</td>\n",
" <td>69.4</td>\n",
" <td>51.7</td>\n",
" <td>476.0</td>\n",
" <td>28.0</td>\n",
" <td>5.9</td>\n",
" <td>25.0</td>\n",
" <td>0.81</td>\n",
" <td>11.8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>29</th>\n",
" <td>Ionuț Radu</td>\n",
" <td>ro ROU</td>\n",
" <td>GK</td>\n",
" <td>Inter</td>\n",
" <td>24</td>\n",
" <td>1997</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>90.0</td>\n",
" <td>2.0</td>\n",
" <td>...</td>\n",
" <td>33.3</td>\n",
" <td>4.0</td>\n",
" <td>25.0</td>\n",
" <td>29.8</td>\n",
" <td>4.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>1.0</td>\n",
" <td>1.00</td>\n",
" <td>16.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>30</th>\n",
" <td>Boris Radunović</td>\n",
" <td>rs SRB</td>\n",
" <td>GK</td>\n",
" <td>Cagliari</td>\n",
" <td>25</td>\n",
" <td>1996</td>\n",
" <td>3.0</td>\n",
" <td>3.0</td>\n",
" <td>270.0</td>\n",
" <td>5.0</td>\n",
" <td>...</td>\n",
" <td>41.5</td>\n",
" <td>28.0</td>\n",
" <td>82.1</td>\n",
" <td>51.1</td>\n",
" <td>42.0</td>\n",
" <td>1.0</td>\n",
" <td>2.4</td>\n",
" <td>1.0</td>\n",
" <td>0.33</td>\n",
" <td>13.8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>31</th>\n",
" <td>Nicola Ravaglia</td>\n",
" <td>it ITA</td>\n",
" <td>GK</td>\n",
" <td>Sampdoria</td>\n",
" <td>32</td>\n",
" <td>1988</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>5.0</td>\n",
" <td>1.0</td>\n",
" <td>...</td>\n",
" <td>57.0</td>\n",
" <td>2.0</td>\n",
" <td>100.0</td>\n",
" <td>65.5</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>32</th>\n",
" <td>Pepe Reina</td>\n",
" <td>es ESP</td>\n",
" <td>GK</td>\n",
" <td>Lazio</td>\n",
" <td>38</td>\n",
" <td>1982</td>\n",
" <td>15.0</td>\n",
" <td>15.0</td>\n",
" <td>1350.0</td>\n",
" <td>29.0</td>\n",
" <td>...</td>\n",
" <td>29.8</td>\n",
" <td>99.0</td>\n",
" <td>29.3</td>\n",
" <td>30.1</td>\n",
" <td>186.0</td>\n",
" <td>10.0</td>\n",
" <td>5.4</td>\n",
" <td>10.0</td>\n",
" <td>0.67</td>\n",
" <td>13.7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>33</th>\n",
" <td>Sergio Romero</td>\n",
" <td>ar ARG</td>\n",
" <td>GK</td>\n",
" <td>Venezia</td>\n",
" <td>34</td>\n",
" <td>1987</td>\n",
" <td>16.0</td>\n",
" <td>16.0</td>\n",
" <td>1440.0</td>\n",
" <td>33.0</td>\n",
" <td>...</td>\n",
" <td>34.6</td>\n",
" <td>142.0</td>\n",
" <td>45.8</td>\n",
" <td>38.8</td>\n",
" <td>265.0</td>\n",
" <td>14.0</td>\n",
" <td>5.3</td>\n",
" <td>11.0</td>\n",
" <td>0.69</td>\n",
" <td>11.8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>34</th>\n",
" <td>Francesco Rossi</td>\n",
" <td>it ITA</td>\n",
" <td>GK</td>\n",
" <td>Atalanta</td>\n",
" <td>30</td>\n",
" <td>1991</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>37.0</td>\n",
" <td>1.0</td>\n",
" <td>...</td>\n",
" <td>37.8</td>\n",
" <td>4.0</td>\n",
" <td>25.0</td>\n",
" <td>39.3</td>\n",
" <td>3.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>18.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>35</th>\n",
" <td>Giacomo Satalino</td>\n",
" <td>it ITA</td>\n",
" <td>GK</td>\n",
" <td>Sassuolo</td>\n",
" <td>22</td>\n",
" <td>1999</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>8.0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>0.0</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>22.0</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>36</th>\n",
" <td>Adrian Šemper</td>\n",
" <td>hr CRO</td>\n",
" <td>GK</td>\n",
" <td>Genoa</td>\n",
" <td>23</td>\n",
" <td>1998</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>90.0</td>\n",
" <td>1.0</td>\n",
" <td>...</td>\n",
" <td>38.5</td>\n",
" <td>7.0</td>\n",
" <td>85.7</td>\n",
" <td>52.0</td>\n",
" <td>14.0</td>\n",
" <td>2.0</td>\n",
" <td>14.3</td>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>11.2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>37</th>\n",
" <td>Luigi Sepe</td>\n",
" <td>it ITA</td>\n",
" <td>GK</td>\n",
" <td>Salernitana</td>\n",
" <td>30</td>\n",
" <td>1991</td>\n",
" <td>16.0</td>\n",
" <td>16.0</td>\n",
" <td>1392.0</td>\n",
" <td>24.0</td>\n",
" <td>...</td>\n",
" <td>40.8</td>\n",
" <td>130.0</td>\n",
" <td>63.8</td>\n",
" <td>46.4</td>\n",
" <td>235.0</td>\n",
" <td>10.0</td>\n",
" <td>4.3</td>\n",
" <td>13.0</td>\n",
" <td>0.84</td>\n",
" <td>16.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>38</th>\n",
" <td>Marco Silvestri</td>\n",
" <td>it ITA</td>\n",
" <td>GK</td>\n",
" <td>Udinese</td>\n",
" <td>30</td>\n",
" <td>1991</td>\n",
" <td>35.0</td>\n",
" <td>35.0</td>\n",
" <td>3150.0</td>\n",
" <td>50.0</td>\n",
" <td>...</td>\n",
" <td>36.7</td>\n",
" <td>252.0</td>\n",
" <td>46.8</td>\n",
" <td>38.4</td>\n",
" <td>462.0</td>\n",
" <td>16.0</td>\n",
" <td>3.5</td>\n",
" <td>10.0</td>\n",
" <td>0.29</td>\n",
" <td>11.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>39</th>\n",
" <td>Salvatore Sirigu</td>\n",
" <td>it ITA</td>\n",
" <td>GK</td>\n",
" <td>Genoa</td>\n",
" <td>34</td>\n",
" <td>1987</td>\n",
" <td>37.0</td>\n",
" <td>37.0</td>\n",
" <td>3330.0</td>\n",
" <td>59.0</td>\n",
" <td>...</td>\n",
" <td>36.6</td>\n",
" <td>263.0</td>\n",
" <td>68.8</td>\n",
" <td>45.9</td>\n",
" <td>476.0</td>\n",
" <td>14.0</td>\n",
" <td>2.9</td>\n",
" <td>20.0</td>\n",
" <td>0.54</td>\n",
" <td>12.9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>40</th>\n",
" <td>Łukasz Skorupski</td>\n",
" <td>pl POL</td>\n",
" <td>GK</td>\n",
" <td>Bologna</td>\n",
" <td>30</td>\n",
" <td>1991</td>\n",
" <td>36.0</td>\n",
" <td>36.0</td>\n",
" <td>3240.0</td>\n",
" <td>53.0</td>\n",
" <td>...</td>\n",
" <td>34.0</td>\n",
" <td>294.0</td>\n",
" <td>28.9</td>\n",
" <td>26.6</td>\n",
" <td>498.0</td>\n",
" <td>27.0</td>\n",
" <td>5.4</td>\n",
" <td>14.0</td>\n",
" <td>0.39</td>\n",
" <td>11.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>41</th>\n",
" <td>Marco Sportiello</td>\n",
" <td>it ITA</td>\n",
" <td>GK</td>\n",
" <td>Atalanta</td>\n",
" <td>29</td>\n",
" <td>1992</td>\n",
" <td>5.0</td>\n",
" <td>5.0</td>\n",
" <td>450.0</td>\n",
" <td>5.0</td>\n",
" <td>...</td>\n",
" <td>26.0</td>\n",
" <td>28.0</td>\n",
" <td>64.3</td>\n",
" <td>47.0</td>\n",
" <td>45.0</td>\n",
" <td>1.0</td>\n",
" <td>2.2</td>\n",
" <td>4.0</td>\n",
" <td>0.80</td>\n",
" <td>13.9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>42</th>\n",
" <td>Thomas Strakosha</td>\n",
" <td>al ALB</td>\n",
" <td>GK</td>\n",
" <td>Lazio</td>\n",
" <td>26</td>\n",
" <td>1995</td>\n",
" <td>23.0</td>\n",
" <td>23.0</td>\n",
" <td>2070.0</td>\n",
" <td>29.0</td>\n",
" <td>...</td>\n",
" <td>28.5</td>\n",
" <td>119.0</td>\n",
" <td>20.2</td>\n",
" <td>23.6</td>\n",
" <td>283.0</td>\n",
" <td>11.0</td>\n",
" <td>3.9</td>\n",
" <td>16.0</td>\n",
" <td>0.70</td>\n",
" <td>14.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>43</th>\n",
" <td>Wojciech Szczęsny</td>\n",
" <td>pl POL</td>\n",
" <td>GK</td>\n",
" <td>Juventus</td>\n",
" <td>31</td>\n",
" <td>1990</td>\n",
" <td>33.0</td>\n",
" <td>33.0</td>\n",
" <td>2970.0</td>\n",
" <td>29.0</td>\n",
" <td>...</td>\n",
" <td>30.8</td>\n",
" <td>172.0</td>\n",
" <td>29.7</td>\n",
" <td>31.5</td>\n",
" <td>481.0</td>\n",
" <td>24.0</td>\n",
" <td>5.0</td>\n",
" <td>25.0</td>\n",
" <td>0.76</td>\n",
" <td>13.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>44</th>\n",
" <td>Ciprian Tătărușanu</td>\n",
" <td>ro ROU</td>\n",
" <td>GK</td>\n",
" <td>Milan</td>\n",
" <td>35</td>\n",
" <td>1986</td>\n",
" <td>6.0</td>\n",
" <td>6.0</td>\n",
" <td>540.0</td>\n",
" <td>10.0</td>\n",
" <td>...</td>\n",
" <td>33.3</td>\n",
" <td>36.0</td>\n",
" <td>36.1</td>\n",
" <td>35.0</td>\n",
" <td>82.0</td>\n",
" <td>6.0</td>\n",
" <td>7.3</td>\n",
" <td>3.0</td>\n",
" <td>0.50</td>\n",
" <td>12.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>45</th>\n",
" <td>Pietro Terracciano</td>\n",
" <td>it ITA</td>\n",
" <td>GK</td>\n",
" <td>Fiorentina</td>\n",
" <td>31</td>\n",
" <td>1990</td>\n",
" <td>32.0</td>\n",
" <td>31.0</td>\n",
" <td>2862.0</td>\n",
" <td>43.0</td>\n",
" <td>...</td>\n",
" <td>32.2</td>\n",
" <td>170.0</td>\n",
" <td>35.3</td>\n",
" <td>33.7</td>\n",
" <td>291.0</td>\n",
" <td>22.0</td>\n",
" <td>7.6</td>\n",
" <td>51.0</td>\n",
" <td>1.60</td>\n",
" <td>16.7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>46</th>\n",
" <td>Guglielmo Vicario</td>\n",
" <td>it ITA</td>\n",
" <td>GK</td>\n",
" <td>Empoli</td>\n",
" <td>24</td>\n",
" <td>1996</td>\n",
" <td>38.0</td>\n",
" <td>38.0</td>\n",
" <td>3420.0</td>\n",
" <td>70.0</td>\n",
" <td>...</td>\n",
" <td>29.5</td>\n",
" <td>257.0</td>\n",
" <td>41.6</td>\n",
" <td>37.5</td>\n",
" <td>602.0</td>\n",
" <td>35.0</td>\n",
" <td>5.8</td>\n",
" <td>38.0</td>\n",
" <td>1.00</td>\n",
" <td>13.9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>47</th>\n",
" <td>Jeroen Zoet</td>\n",
" <td>nl NED</td>\n",
" <td>GK</td>\n",
" <td>Spezia</td>\n",
" <td>30</td>\n",
" <td>1991</td>\n",
" <td>7.0</td>\n",
" <td>7.0</td>\n",
" <td>630.0</td>\n",
" <td>19.0</td>\n",
" <td>...</td>\n",
" <td>30.7</td>\n",
" <td>54.0</td>\n",
" <td>37.0</td>\n",
" <td>37.4</td>\n",
" <td>95.0</td>\n",
" <td>2.0</td>\n",
" <td>2.1</td>\n",
" <td>6.0</td>\n",
" <td>0.86</td>\n",
" <td>16.4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>48</th>\n",
" <td>Petar Zovko</td>\n",
" <td>ba BIH</td>\n",
" <td>GK</td>\n",
" <td>Spezia</td>\n",
" <td>19</td>\n",
" <td>2002</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>29.0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>35.9</td>\n",
" <td>2.0</td>\n",
" <td>50.0</td>\n",
" <td>35.0</td>\n",
" <td>4.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>2.0</td>\n",
" <td>6.21</td>\n",
" <td>28.5</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>49 rows × 47 columns</p>\n",
"</div>"
],
"text/plain": [
" player nationality position team age birth_year \\\n",
"0 Emil Audero it ITA GK Sampdoria 24 1997 \n",
"1 Nicola Bagnolini it ITA GK Bologna 17 2004 \n",
"2 Francesco Bardi it ITA GK Bologna 29 1992 \n",
"3 Vid Belec si SVN GK Salernitana 31 1990 \n",
"4 Alessandro Berardi it ITA GK Hellas Verona 30 1991 \n",
"5 Etrit Berisha al ALB GK Torino 32 1989 \n",
"6 Andrea Consigli it ITA GK Sassuolo 34 1987 \n",
"7 Alessio Cragno it ITA GK Cagliari 27 1994 \n",
"8 Bartłomiej Drągowski pl POL GK Fiorentina 23 1997 \n",
"9 Wladimiro Falcone it ITA GK Sampdoria 26 1995 \n",
"10 Vincenzo Fiorillo it ITA GK Salernitana 31 1990 \n",
"11 Luca Gemello it ITA GK Torino 21 2000 \n",
"12 Samir Handanović si SVN GK Inter 37 1984 \n",
"13 Luca Lezzerini it ITA GK Venezia 26 1995 \n",
"14 Niki Mäenpää fi FIN GK Venezia 36 1985 \n",
"15 Mike Maignan fr FRA GK Milan 26 1995 \n",
"16 Davide Marfella it ITA GK Napoli 21 1999 \n",
"17 Alex Meret it ITA GK Napoli 24 1997 \n",
"18 Vanja Milinković-Savić rs SRB GK Torino 24 1997 \n",
"19 Lorenzo Montipò it ITA GK Hellas Verona 25 1996 \n",
"20 Juan Musso ar ARG GK Atalanta 27 1994 \n",
"21 David Ospina co COL GK Napoli 32 1988 \n",
"22 Daniele Padelli it ITA GK Udinese 35 1985 \n",
"23 Ivor Pandur hr CRO GK Hellas Verona 21 2000 \n",
"24 Rui Patrício pt POR GK Roma 33 1988 \n",
"25 Gianluca Pegolo it ITA GK Sassuolo 40 1981 \n",
"26 Mattia Perin it ITA GK Juventus 28 1992 \n",
"27 Carlo Pinsoglio it ITA GK Juventus 31 1990 \n",
"28 Ivan Provedel it ITA GK Spezia 27 1994 \n",
"29 Ionuț Radu ro ROU GK Inter 24 1997 \n",
"30 Boris Radunović rs SRB GK Cagliari 25 1996 \n",
"31 Nicola Ravaglia it ITA GK Sampdoria 32 1988 \n",
"32 Pepe Reina es ESP GK Lazio 38 1982 \n",
"33 Sergio Romero ar ARG GK Venezia 34 1987 \n",
"34 Francesco Rossi it ITA GK Atalanta 30 1991 \n",
"35 Giacomo Satalino it ITA GK Sassuolo 22 1999 \n",
"36 Adrian Šemper hr CRO GK Genoa 23 1998 \n",
"37 Luigi Sepe it ITA GK Salernitana 30 1991 \n",
"38 Marco Silvestri it ITA GK Udinese 30 1991 \n",
"39 Salvatore Sirigu it ITA GK Genoa 34 1987 \n",
"40 Łukasz Skorupski pl POL GK Bologna 30 1991 \n",
"41 Marco Sportiello it ITA GK Atalanta 29 1992 \n",
"42 Thomas Strakosha al ALB GK Lazio 26 1995 \n",
"43 Wojciech Szczęsny pl POL GK Juventus 31 1990 \n",
"44 Ciprian Tătărușanu ro ROU GK Milan 35 1986 \n",
"45 Pietro Terracciano it ITA GK Fiorentina 31 1990 \n",
"46 Guglielmo Vicario it ITA GK Empoli 24 1996 \n",
"47 Jeroen Zoet nl NED GK Spezia 30 1991 \n",
"48 Petar Zovko ba BIH GK Spezia 19 2002 \n",
"\n",
" gk_games gk_games_starts gk_minutes gk_goals_against ... \\\n",
"0 29.0 29.0 2560.0 48.0 ... \n",
"1 1.0 0.0 3.0 0.0 ... \n",
"2 2.0 2.0 177.0 2.0 ... \n",
"3 23.0 21.0 1938.0 49.0 ... \n",
"4 1.0 1.0 90.0 3.0 ... \n",
"5 10.0 10.0 900.0 8.0 ... \n",
"6 37.0 37.0 3322.0 63.0 ... \n",
"7 35.0 35.0 3150.0 63.0 ... \n",
"8 7.0 7.0 556.0 8.0 ... \n",
"9 10.0 9.0 855.0 14.0 ... \n",
"10 1.0 1.0 90.0 5.0 ... \n",
"11 1.0 1.0 90.0 0.0 ... \n",
"12 37.0 37.0 3330.0 30.0 ... \n",
"13 6.0 6.0 495.0 9.0 ... \n",
"14 17.0 16.0 1485.0 27.0 ... \n",
"15 32.0 32.0 2880.0 21.0 ... \n",
"16 1.0 0.0 11.0 0.0 ... \n",
"17 7.0 7.0 619.0 6.0 ... \n",
"18 27.0 27.0 2430.0 33.0 ... \n",
"19 34.0 34.0 3060.0 50.0 ... \n",
"20 33.0 33.0 2932.0 42.0 ... \n",
"21 31.0 31.0 2790.0 25.0 ... \n",
"22 3.0 3.0 270.0 8.0 ... \n",
"23 3.0 3.0 270.0 6.0 ... \n",
"24 38.0 38.0 3420.0 43.0 ... \n",
"25 1.0 1.0 90.0 3.0 ... \n",
"26 5.0 5.0 405.0 7.0 ... \n",
"27 1.0 0.0 45.0 1.0 ... \n",
"28 31.0 31.0 2761.0 52.0 ... \n",
"29 1.0 1.0 90.0 2.0 ... \n",
"30 3.0 3.0 270.0 5.0 ... \n",
"31 1.0 0.0 5.0 1.0 ... \n",
"32 15.0 15.0 1350.0 29.0 ... \n",
"33 16.0 16.0 1440.0 33.0 ... \n",
"34 1.0 0.0 37.0 1.0 ... \n",
"35 1.0 0.0 8.0 0.0 ... \n",
"36 1.0 1.0 90.0 1.0 ... \n",
"37 16.0 16.0 1392.0 24.0 ... \n",
"38 35.0 35.0 3150.0 50.0 ... \n",
"39 37.0 37.0 3330.0 59.0 ... \n",
"40 36.0 36.0 3240.0 53.0 ... \n",
"41 5.0 5.0 450.0 5.0 ... \n",
"42 23.0 23.0 2070.0 29.0 ... \n",
"43 33.0 33.0 2970.0 29.0 ... \n",
"44 6.0 6.0 540.0 10.0 ... \n",
"45 32.0 31.0 2862.0 43.0 ... \n",
"46 38.0 38.0 3420.0 70.0 ... \n",
"47 7.0 7.0 630.0 19.0 ... \n",
"48 1.0 0.0 29.0 0.0 ... \n",
"\n",
" gk_passes_length_avg gk_goal_kicks gk_pct_goal_kicks_launched \\\n",
"0 36.3 212.0 67.9 \n",
"1 61.0 1.0 100.0 \n",
"2 33.0 13.0 38.5 \n",
"3 39.5 182.0 73.1 \n",
"4 39.7 7.0 100.0 \n",
"5 39.4 78.0 87.2 \n",
"6 30.9 246.0 31.7 \n",
"7 39.4 316.0 73.4 \n",
"8 30.8 39.0 43.6 \n",
"9 33.2 74.0 70.3 \n",
"10 36.4 12.0 83.3 \n",
"11 47.8 3.0 100.0 \n",
"12 28.1 142.0 20.4 \n",
"13 30.3 44.0 34.1 \n",
"14 36.0 143.0 39.2 \n",
"15 33.0 149.0 38.9 \n",
"16 15.0 0.0 0.0 \n",
"17 25.1 36.0 25.0 \n",
"18 44.4 169.0 91.1 \n",
"19 42.3 231.0 68.4 \n",
"20 31.3 208.0 69.2 \n",
"21 28.6 135.0 14.1 \n",
"22 29.6 22.0 50.0 \n",
"23 33.1 15.0 53.3 \n",
"24 34.2 222.0 32.0 \n",
"25 26.7 8.0 12.5 \n",
"26 29.6 26.0 23.1 \n",
"27 29.6 1.0 0.0 \n",
"28 40.1 229.0 69.4 \n",
"29 33.3 4.0 25.0 \n",
"30 41.5 28.0 82.1 \n",
"31 57.0 2.0 100.0 \n",
"32 29.8 99.0 29.3 \n",
"33 34.6 142.0 45.8 \n",
"34 37.8 4.0 25.0 \n",
"35 0.0 1.0 0.0 \n",
"36 38.5 7.0 85.7 \n",
"37 40.8 130.0 63.8 \n",
"38 36.7 252.0 46.8 \n",
"39 36.6 263.0 68.8 \n",
"40 34.0 294.0 28.9 \n",
"41 26.0 28.0 64.3 \n",
"42 28.5 119.0 20.2 \n",
"43 30.8 172.0 29.7 \n",
"44 33.3 36.0 36.1 \n",
"45 32.2 170.0 35.3 \n",
"46 29.5 257.0 41.6 \n",
"47 30.7 54.0 37.0 \n",
"48 35.9 2.0 50.0 \n",
"\n",
" gk_goal_kick_length_avg gk_crosses gk_crosses_stopped \\\n",
"0 47.6 418.0 22.0 \n",
"1 60.0 3.0 0.0 \n",
"2 32.1 24.0 2.0 \n",
"3 49.9 329.0 12.0 \n",
"4 58.7 12.0 0.0 \n",
"5 58.6 148.0 7.0 \n",
"6 28.8 491.0 21.0 \n",
"7 48.2 484.0 22.0 \n",
"8 40.2 61.0 2.0 \n",
"9 45.0 164.0 7.0 \n",
"10 50.8 16.0 0.0 \n",
"11 56.3 10.0 0.0 \n",
"12 26.5 393.0 15.0 \n",
"13 31.0 100.0 2.0 \n",
"14 35.4 275.0 6.0 \n",
"15 36.5 347.0 25.0 \n",
"16 0.0 1.0 0.0 \n",
"17 26.5 89.0 3.0 \n",
"18 66.3 290.0 18.0 \n",
"19 46.5 495.0 21.0 \n",
"20 49.7 308.0 28.0 \n",
"21 22.5 353.0 18.0 \n",
"22 40.9 56.0 1.0 \n",
"23 37.1 22.0 1.0 \n",
"24 31.5 393.0 12.0 \n",
"25 19.8 8.0 1.0 \n",
"26 29.2 77.0 1.0 \n",
"27 37.0 12.0 0.0 \n",
"28 51.7 476.0 28.0 \n",
"29 29.8 4.0 0.0 \n",
"30 51.1 42.0 1.0 \n",
"31 65.5 1.0 0.0 \n",
"32 30.1 186.0 10.0 \n",
"33 38.8 265.0 14.0 \n",
"34 39.3 3.0 0.0 \n",
"35 22.0 1.0 0.0 \n",
"36 52.0 14.0 2.0 \n",
"37 46.4 235.0 10.0 \n",
"38 38.4 462.0 16.0 \n",
"39 45.9 476.0 14.0 \n",
"40 26.6 498.0 27.0 \n",
"41 47.0 45.0 1.0 \n",
"42 23.6 283.0 11.0 \n",
"43 31.5 481.0 24.0 \n",
"44 35.0 82.0 6.0 \n",
"45 33.7 291.0 22.0 \n",
"46 37.5 602.0 35.0 \n",
"47 37.4 95.0 2.0 \n",
"48 35.0 4.0 0.0 \n",
"\n",
" gk_crosses_stopped_pct gk_def_actions_outside_pen_area \\\n",
"0 5.3 25.0 \n",
"1 0.0 0.0 \n",
"2 8.3 0.0 \n",
"3 3.6 14.0 \n",
"4 0.0 0.0 \n",
"5 4.7 10.0 \n",
"6 4.3 30.0 \n",
"7 4.5 33.0 \n",
"8 3.3 20.0 \n",
"9 4.3 2.0 \n",
"10 0.0 0.0 \n",
"11 0.0 1.0 \n",
"12 3.8 10.0 \n",
"13 2.0 3.0 \n",
"14 2.2 10.0 \n",
"15 7.2 45.0 \n",
"16 0.0 0.0 \n",
"17 3.4 5.0 \n",
"18 6.2 22.0 \n",
"19 4.2 23.0 \n",
"20 9.1 39.0 \n",
"21 5.1 31.0 \n",
"22 1.8 2.0 \n",
"23 4.5 1.0 \n",
"24 3.1 26.0 \n",
"25 12.5 0.0 \n",
"26 1.3 4.0 \n",
"27 0.0 0.0 \n",
"28 5.9 25.0 \n",
"29 0.0 1.0 \n",
"30 2.4 1.0 \n",
"31 0.0 0.0 \n",
"32 5.4 10.0 \n",
"33 5.3 11.0 \n",
"34 0.0 0.0 \n",
"35 0.0 0.0 \n",
"36 14.3 0.0 \n",
"37 4.3 13.0 \n",
"38 3.5 10.0 \n",
"39 2.9 20.0 \n",
"40 5.4 14.0 \n",
"41 2.2 4.0 \n",
"42 3.9 16.0 \n",
"43 5.0 25.0 \n",
"44 7.3 3.0 \n",
"45 7.6 51.0 \n",
"46 5.8 38.0 \n",
"47 2.1 6.0 \n",
"48 0.0 2.0 \n",
"\n",
" gk_def_actions_outside_pen_area_per90 gk_avg_distance_def_actions \n",
"0 0.88 13.5 \n",
"1 0.00 0.0 \n",
"2 0.00 5.5 \n",
"3 0.65 12.7 \n",
"4 0.00 0.0 \n",
"5 1.00 14.6 \n",
"6 0.81 13.4 \n",
"7 0.94 15.0 \n",
"8 3.24 22.3 \n",
"9 0.21 10.2 \n",
"10 0.00 4.0 \n",
"11 1.00 21.0 \n",
"12 0.27 11.2 \n",
"13 0.55 13.8 \n",
"14 0.61 10.8 \n",
"15 1.41 16.8 \n",
"16 0.00 0.0 \n",
"17 0.73 14.6 \n",
"18 0.81 14.3 \n",
"19 0.68 13.1 \n",
"20 1.20 16.5 \n",
"21 1.00 17.0 \n",
"22 0.67 13.2 \n",
"23 0.33 11.3 \n",
"24 0.68 14.3 \n",
"25 0.00 6.0 \n",
"26 0.89 12.6 \n",
"27 0.00 0.0 \n",
"28 0.81 11.8 \n",
"29 1.00 16.0 \n",
"30 0.33 13.8 \n",
"31 0.00 0.0 \n",
"32 0.67 13.7 \n",
"33 0.69 11.8 \n",
"34 0.00 18.0 \n",
"35 0.00 0.0 \n",
"36 0.00 11.2 \n",
"37 0.84 16.0 \n",
"38 0.29 11.0 \n",
"39 0.54 12.9 \n",
"40 0.39 11.3 \n",
"41 0.80 13.9 \n",
"42 0.70 14.5 \n",
"43 0.76 13.5 \n",
"44 0.50 12.5 \n",
"45 1.60 16.7 \n",
"46 1.00 13.9 \n",
"47 0.86 16.4 \n",
"48 6.21 28.5 \n",
"\n",
"[49 rows x 47 columns]"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_keeper = get_keeper_data('https://fbref.com/en/comps/11/2021-2022/','/2021-2022-Serie-A-Stats')\n",
"\n",
"df_keeper.to_csv('fbref_data/season2122/keepers_players.csv', index=False)\n",
"\n",
"df_keeper"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "9172edae",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>team</th>\n",
" <th>players_used</th>\n",
" <th>possession</th>\n",
" <th>games</th>\n",
" <th>games_starts</th>\n",
" <th>minutes</th>\n",
" <th>goals</th>\n",
" <th>assists</th>\n",
" <th>pens_made</th>\n",
" <th>pens_att</th>\n",
" <th>...</th>\n",
" <th>fouls</th>\n",
" <th>fouled</th>\n",
" <th>offsides</th>\n",
" <th>pens_won</th>\n",
" <th>pens_conceded</th>\n",
" <th>own_goals</th>\n",
" <th>ball_recoveries</th>\n",
" <th>aerials_won</th>\n",
" <th>aerials_lost</th>\n",
" <th>aerials_won_pct</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>Atalanta</td>\n",
" <td>32.0</td>\n",
" <td>55.0</td>\n",
" <td>38.0</td>\n",
" <td>418.0</td>\n",
" <td>3420.0</td>\n",
" <td>62.0</td>\n",
" <td>48.0</td>\n",
" <td>5.0</td>\n",
" <td>6.0</td>\n",
" <td>...</td>\n",
" <td>513.0</td>\n",
" <td>454.0</td>\n",
" <td>68.0</td>\n",
" <td>3.0</td>\n",
" <td>6.0</td>\n",
" <td>3.0</td>\n",
" <td>2292.0</td>\n",
" <td>685.0</td>\n",
" <td>518.0</td>\n",
" <td>56.9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Bologna</td>\n",
" <td>36.0</td>\n",
" <td>50.6</td>\n",
" <td>38.0</td>\n",
" <td>418.0</td>\n",
" <td>3420.0</td>\n",
" <td>43.0</td>\n",
" <td>34.0</td>\n",
" <td>4.0</td>\n",
" <td>5.0</td>\n",
" <td>...</td>\n",
" <td>443.0</td>\n",
" <td>497.0</td>\n",
" <td>56.0</td>\n",
" <td>3.0</td>\n",
" <td>9.0</td>\n",
" <td>2.0</td>\n",
" <td>1972.0</td>\n",
" <td>492.0</td>\n",
" <td>520.0</td>\n",
" <td>48.6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>Cagliari</td>\n",
" <td>33.0</td>\n",
" <td>44.5</td>\n",
" <td>38.0</td>\n",
" <td>418.0</td>\n",
" <td>3420.0</td>\n",
" <td>34.0</td>\n",
" <td>26.0</td>\n",
" <td>3.0</td>\n",
" <td>4.0</td>\n",
" <td>...</td>\n",
" <td>549.0</td>\n",
" <td>490.0</td>\n",
" <td>70.0</td>\n",
" <td>3.0</td>\n",
" <td>10.0</td>\n",
" <td>1.0</td>\n",
" <td>1995.0</td>\n",
" <td>696.0</td>\n",
" <td>742.0</td>\n",
" <td>48.4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>Empoli</td>\n",
" <td>28.0</td>\n",
" <td>47.4</td>\n",
" <td>38.0</td>\n",
" <td>418.0</td>\n",
" <td>3420.0</td>\n",
" <td>47.0</td>\n",
" <td>27.0</td>\n",
" <td>7.0</td>\n",
" <td>7.0</td>\n",
" <td>...</td>\n",
" <td>506.0</td>\n",
" <td>463.0</td>\n",
" <td>83.0</td>\n",
" <td>6.0</td>\n",
" <td>10.0</td>\n",
" <td>6.0</td>\n",
" <td>1998.0</td>\n",
" <td>427.0</td>\n",
" <td>549.0</td>\n",
" <td>43.8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Fiorentina</td>\n",
" <td>28.0</td>\n",
" <td>57.7</td>\n",
" <td>38.0</td>\n",
" <td>418.0</td>\n",
" <td>3420.0</td>\n",
" <td>59.0</td>\n",
" <td>33.0</td>\n",
" <td>9.0</td>\n",
" <td>12.0</td>\n",
" <td>...</td>\n",
" <td>464.0</td>\n",
" <td>565.0</td>\n",
" <td>57.0</td>\n",
" <td>8.0</td>\n",
" <td>5.0</td>\n",
" <td>2.0</td>\n",
" <td>1885.0</td>\n",
" <td>469.0</td>\n",
" <td>456.0</td>\n",
" <td>50.7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>Genoa</td>\n",
" <td>40.0</td>\n",
" <td>43.9</td>\n",
" <td>38.0</td>\n",
" <td>418.0</td>\n",
" <td>3420.0</td>\n",
" <td>26.0</td>\n",
" <td>19.0</td>\n",
" <td>6.0</td>\n",
" <td>7.0</td>\n",
" <td>...</td>\n",
" <td>566.0</td>\n",
" <td>499.0</td>\n",
" <td>72.0</td>\n",
" <td>4.0</td>\n",
" <td>5.0</td>\n",
" <td>2.0</td>\n",
" <td>2228.0</td>\n",
" <td>635.0</td>\n",
" <td>743.0</td>\n",
" <td>46.1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>Hellas Verona</td>\n",
" <td>31.0</td>\n",
" <td>50.6</td>\n",
" <td>38.0</td>\n",
" <td>418.0</td>\n",
" <td>3420.0</td>\n",
" <td>63.0</td>\n",
" <td>44.0</td>\n",
" <td>7.0</td>\n",
" <td>8.0</td>\n",
" <td>...</td>\n",
" <td>560.0</td>\n",
" <td>429.0</td>\n",
" <td>97.0</td>\n",
" <td>6.0</td>\n",
" <td>4.0</td>\n",
" <td>2.0</td>\n",
" <td>2413.0</td>\n",
" <td>689.0</td>\n",
" <td>733.0</td>\n",
" <td>48.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>Inter</td>\n",
" <td>27.0</td>\n",
" <td>56.5</td>\n",
" <td>38.0</td>\n",
" <td>418.0</td>\n",
" <td>3420.0</td>\n",
" <td>83.0</td>\n",
" <td>57.0</td>\n",
" <td>7.0</td>\n",
" <td>11.0</td>\n",
" <td>...</td>\n",
" <td>466.0</td>\n",
" <td>412.0</td>\n",
" <td>57.0</td>\n",
" <td>7.0</td>\n",
" <td>4.0</td>\n",
" <td>1.0</td>\n",
" <td>2004.0</td>\n",
" <td>549.0</td>\n",
" <td>476.0</td>\n",
" <td>53.6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>Juventus</td>\n",
" <td>32.0</td>\n",
" <td>51.5</td>\n",
" <td>38.0</td>\n",
" <td>418.0</td>\n",
" <td>3420.0</td>\n",
" <td>56.0</td>\n",
" <td>37.0</td>\n",
" <td>5.0</td>\n",
" <td>6.0</td>\n",
" <td>...</td>\n",
" <td>508.0</td>\n",
" <td>503.0</td>\n",
" <td>74.0</td>\n",
" <td>5.0</td>\n",
" <td>7.0</td>\n",
" <td>1.0</td>\n",
" <td>2008.0</td>\n",
" <td>550.0</td>\n",
" <td>440.0</td>\n",
" <td>55.6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>Lazio</td>\n",
" <td>27.0</td>\n",
" <td>55.4</td>\n",
" <td>38.0</td>\n",
" <td>418.0</td>\n",
" <td>3420.0</td>\n",
" <td>74.0</td>\n",
" <td>48.0</td>\n",
" <td>7.0</td>\n",
" <td>9.0</td>\n",
" <td>...</td>\n",
" <td>441.0</td>\n",
" <td>450.0</td>\n",
" <td>44.0</td>\n",
" <td>6.0</td>\n",
" <td>6.0</td>\n",
" <td>1.0</td>\n",
" <td>1941.0</td>\n",
" <td>411.0</td>\n",
" <td>427.0</td>\n",
" <td>49.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>Milan</td>\n",
" <td>28.0</td>\n",
" <td>54.0</td>\n",
" <td>38.0</td>\n",
" <td>418.0</td>\n",
" <td>3420.0</td>\n",
" <td>66.0</td>\n",
" <td>39.0</td>\n",
" <td>5.0</td>\n",
" <td>8.0</td>\n",
" <td>...</td>\n",
" <td>465.0</td>\n",
" <td>513.0</td>\n",
" <td>80.0</td>\n",
" <td>5.0</td>\n",
" <td>5.0</td>\n",
" <td>2.0</td>\n",
" <td>2167.0</td>\n",
" <td>521.0</td>\n",
" <td>517.0</td>\n",
" <td>50.2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>Napoli</td>\n",
" <td>27.0</td>\n",
" <td>58.3</td>\n",
" <td>38.0</td>\n",
" <td>418.0</td>\n",
" <td>3420.0</td>\n",
" <td>74.0</td>\n",
" <td>46.0</td>\n",
" <td>10.0</td>\n",
" <td>14.0</td>\n",
" <td>...</td>\n",
" <td>460.0</td>\n",
" <td>482.0</td>\n",
" <td>67.0</td>\n",
" <td>9.0</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>1981.0</td>\n",
" <td>393.0</td>\n",
" <td>403.0</td>\n",
" <td>49.4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>Roma</td>\n",
" <td>29.0</td>\n",
" <td>51.4</td>\n",
" <td>38.0</td>\n",
" <td>418.0</td>\n",
" <td>3420.0</td>\n",
" <td>58.0</td>\n",
" <td>31.0</td>\n",
" <td>7.0</td>\n",
" <td>9.0</td>\n",
" <td>...</td>\n",
" <td>500.0</td>\n",
" <td>474.0</td>\n",
" <td>60.0</td>\n",
" <td>5.0</td>\n",
" <td>6.0</td>\n",
" <td>2.0</td>\n",
" <td>1980.0</td>\n",
" <td>524.0</td>\n",
" <td>441.0</td>\n",
" <td>54.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>Salernitana</td>\n",
" <td>42.0</td>\n",
" <td>41.2</td>\n",
" <td>38.0</td>\n",
" <td>418.0</td>\n",
" <td>3420.0</td>\n",
" <td>32.0</td>\n",
" <td>19.0</td>\n",
" <td>4.0</td>\n",
" <td>5.0</td>\n",
" <td>...</td>\n",
" <td>494.0</td>\n",
" <td>522.0</td>\n",
" <td>41.0</td>\n",
" <td>4.0</td>\n",
" <td>8.0</td>\n",
" <td>2.0</td>\n",
" <td>1849.0</td>\n",
" <td>657.0</td>\n",
" <td>506.0</td>\n",
" <td>56.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>Sampdoria</td>\n",
" <td>34.0</td>\n",
" <td>46.1</td>\n",
" <td>38.0</td>\n",
" <td>418.0</td>\n",
" <td>3420.0</td>\n",
" <td>42.0</td>\n",
" <td>29.0</td>\n",
" <td>2.0</td>\n",
" <td>4.0</td>\n",
" <td>...</td>\n",
" <td>495.0</td>\n",
" <td>513.0</td>\n",
" <td>82.0</td>\n",
" <td>3.0</td>\n",
" <td>4.0</td>\n",
" <td>2.0</td>\n",
" <td>2044.0</td>\n",
" <td>609.0</td>\n",
" <td>506.0</td>\n",
" <td>54.6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>Sassuolo</td>\n",
" <td>29.0</td>\n",
" <td>54.9</td>\n",
" <td>38.0</td>\n",
" <td>418.0</td>\n",
" <td>3420.0</td>\n",
" <td>60.0</td>\n",
" <td>39.0</td>\n",
" <td>7.0</td>\n",
" <td>7.0</td>\n",
" <td>...</td>\n",
" <td>461.0</td>\n",
" <td>479.0</td>\n",
" <td>43.0</td>\n",
" <td>6.0</td>\n",
" <td>9.0</td>\n",
" <td>1.0</td>\n",
" <td>1926.0</td>\n",
" <td>343.0</td>\n",
" <td>404.0</td>\n",
" <td>45.9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>Spezia</td>\n",
" <td>30.0</td>\n",
" <td>42.7</td>\n",
" <td>38.0</td>\n",
" <td>418.0</td>\n",
" <td>3420.0</td>\n",
" <td>38.0</td>\n",
" <td>25.0</td>\n",
" <td>3.0</td>\n",
" <td>5.0</td>\n",
" <td>...</td>\n",
" <td>508.0</td>\n",
" <td>439.0</td>\n",
" <td>77.0</td>\n",
" <td>4.0</td>\n",
" <td>13.0</td>\n",
" <td>3.0</td>\n",
" <td>1994.0</td>\n",
" <td>530.0</td>\n",
" <td>589.0</td>\n",
" <td>47.4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>Torino</td>\n",
" <td>31.0</td>\n",
" <td>53.3</td>\n",
" <td>38.0</td>\n",
" <td>418.0</td>\n",
" <td>3420.0</td>\n",
" <td>43.0</td>\n",
" <td>27.0</td>\n",
" <td>6.0</td>\n",
" <td>6.0</td>\n",
" <td>...</td>\n",
" <td>636.0</td>\n",
" <td>460.0</td>\n",
" <td>84.0</td>\n",
" <td>4.0</td>\n",
" <td>11.0</td>\n",
" <td>0.0</td>\n",
" <td>2113.0</td>\n",
" <td>781.0</td>\n",
" <td>891.0</td>\n",
" <td>46.7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>Udinese</td>\n",
" <td>29.0</td>\n",
" <td>42.7</td>\n",
" <td>38.0</td>\n",
" <td>418.0</td>\n",
" <td>3420.0</td>\n",
" <td>58.0</td>\n",
" <td>36.0</td>\n",
" <td>3.0</td>\n",
" <td>4.0</td>\n",
" <td>...</td>\n",
" <td>564.0</td>\n",
" <td>461.0</td>\n",
" <td>78.0</td>\n",
" <td>4.0</td>\n",
" <td>7.0</td>\n",
" <td>1.0</td>\n",
" <td>2027.0</td>\n",
" <td>453.0</td>\n",
" <td>534.0</td>\n",
" <td>45.9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>Venezia</td>\n",
" <td>39.0</td>\n",
" <td>42.3</td>\n",
" <td>38.0</td>\n",
" <td>418.0</td>\n",
" <td>3420.0</td>\n",
" <td>34.0</td>\n",
" <td>23.0</td>\n",
" <td>3.0</td>\n",
" <td>5.0</td>\n",
" <td>...</td>\n",
" <td>522.0</td>\n",
" <td>457.0</td>\n",
" <td>61.0</td>\n",
" <td>5.0</td>\n",
" <td>12.0</td>\n",
" <td>2.0</td>\n",
" <td>1942.0</td>\n",
" <td>564.0</td>\n",
" <td>583.0</td>\n",
" <td>49.2</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>20 rows × 152 columns</p>\n",
"</div>"
],
"text/plain": [
" team players_used possession games games_starts minutes \\\n",
"0 Atalanta 32.0 55.0 38.0 418.0 3420.0 \n",
"1 Bologna 36.0 50.6 38.0 418.0 3420.0 \n",
"2 Cagliari 33.0 44.5 38.0 418.0 3420.0 \n",
"3 Empoli 28.0 47.4 38.0 418.0 3420.0 \n",
"4 Fiorentina 28.0 57.7 38.0 418.0 3420.0 \n",
"5 Genoa 40.0 43.9 38.0 418.0 3420.0 \n",
"6 Hellas Verona 31.0 50.6 38.0 418.0 3420.0 \n",
"7 Inter 27.0 56.5 38.0 418.0 3420.0 \n",
"8 Juventus 32.0 51.5 38.0 418.0 3420.0 \n",
"9 Lazio 27.0 55.4 38.0 418.0 3420.0 \n",
"10 Milan 28.0 54.0 38.0 418.0 3420.0 \n",
"11 Napoli 27.0 58.3 38.0 418.0 3420.0 \n",
"12 Roma 29.0 51.4 38.0 418.0 3420.0 \n",
"13 Salernitana 42.0 41.2 38.0 418.0 3420.0 \n",
"14 Sampdoria 34.0 46.1 38.0 418.0 3420.0 \n",
"15 Sassuolo 29.0 54.9 38.0 418.0 3420.0 \n",
"16 Spezia 30.0 42.7 38.0 418.0 3420.0 \n",
"17 Torino 31.0 53.3 38.0 418.0 3420.0 \n",
"18 Udinese 29.0 42.7 38.0 418.0 3420.0 \n",
"19 Venezia 39.0 42.3 38.0 418.0 3420.0 \n",
"\n",
" goals assists pens_made pens_att ... fouls fouled offsides \\\n",
"0 62.0 48.0 5.0 6.0 ... 513.0 454.0 68.0 \n",
"1 43.0 34.0 4.0 5.0 ... 443.0 497.0 56.0 \n",
"2 34.0 26.0 3.0 4.0 ... 549.0 490.0 70.0 \n",
"3 47.0 27.0 7.0 7.0 ... 506.0 463.0 83.0 \n",
"4 59.0 33.0 9.0 12.0 ... 464.0 565.0 57.0 \n",
"5 26.0 19.0 6.0 7.0 ... 566.0 499.0 72.0 \n",
"6 63.0 44.0 7.0 8.0 ... 560.0 429.0 97.0 \n",
"7 83.0 57.0 7.0 11.0 ... 466.0 412.0 57.0 \n",
"8 56.0 37.0 5.0 6.0 ... 508.0 503.0 74.0 \n",
"9 74.0 48.0 7.0 9.0 ... 441.0 450.0 44.0 \n",
"10 66.0 39.0 5.0 8.0 ... 465.0 513.0 80.0 \n",
"11 74.0 46.0 10.0 14.0 ... 460.0 482.0 67.0 \n",
"12 58.0 31.0 7.0 9.0 ... 500.0 474.0 60.0 \n",
"13 32.0 19.0 4.0 5.0 ... 494.0 522.0 41.0 \n",
"14 42.0 29.0 2.0 4.0 ... 495.0 513.0 82.0 \n",
"15 60.0 39.0 7.0 7.0 ... 461.0 479.0 43.0 \n",
"16 38.0 25.0 3.0 5.0 ... 508.0 439.0 77.0 \n",
"17 43.0 27.0 6.0 6.0 ... 636.0 460.0 84.0 \n",
"18 58.0 36.0 3.0 4.0 ... 564.0 461.0 78.0 \n",
"19 34.0 23.0 3.0 5.0 ... 522.0 457.0 61.0 \n",
"\n",
" pens_won pens_conceded own_goals ball_recoveries aerials_won \\\n",
"0 3.0 6.0 3.0 2292.0 685.0 \n",
"1 3.0 9.0 2.0 1972.0 492.0 \n",
"2 3.0 10.0 1.0 1995.0 696.0 \n",
"3 6.0 10.0 6.0 1998.0 427.0 \n",
"4 8.0 5.0 2.0 1885.0 469.0 \n",
"5 4.0 5.0 2.0 2228.0 635.0 \n",
"6 6.0 4.0 2.0 2413.0 689.0 \n",
"7 7.0 4.0 1.0 2004.0 549.0 \n",
"8 5.0 7.0 1.0 2008.0 550.0 \n",
"9 6.0 6.0 1.0 1941.0 411.0 \n",
"10 5.0 5.0 2.0 2167.0 521.0 \n",
"11 9.0 1.0 1.0 1981.0 393.0 \n",
"12 5.0 6.0 2.0 1980.0 524.0 \n",
"13 4.0 8.0 2.0 1849.0 657.0 \n",
"14 3.0 4.0 2.0 2044.0 609.0 \n",
"15 6.0 9.0 1.0 1926.0 343.0 \n",
"16 4.0 13.0 3.0 1994.0 530.0 \n",
"17 4.0 11.0 0.0 2113.0 781.0 \n",
"18 4.0 7.0 1.0 2027.0 453.0 \n",
"19 5.0 12.0 2.0 1942.0 564.0 \n",
"\n",
" aerials_lost aerials_won_pct \n",
"0 518.0 56.9 \n",
"1 520.0 48.6 \n",
"2 742.0 48.4 \n",
"3 549.0 43.8 \n",
"4 456.0 50.7 \n",
"5 743.0 46.1 \n",
"6 733.0 48.5 \n",
"7 476.0 53.6 \n",
"8 440.0 55.6 \n",
"9 427.0 49.0 \n",
"10 517.0 50.2 \n",
"11 403.0 49.4 \n",
"12 441.0 54.3 \n",
"13 506.0 56.5 \n",
"14 506.0 54.6 \n",
"15 404.0 45.9 \n",
"16 589.0 47.4 \n",
"17 891.0 46.7 \n",
"18 534.0 45.9 \n",
"19 583.0 49.2 \n",
"\n",
"[20 rows x 152 columns]"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_team = get_team_data('https://fbref.com/en/comps/11/2021-2022/','/2021-2022-Serie-A-Stats', 'for')\n",
"\n",
"df_team.to_csv('fbref_data/season2122/teams.csv', index=False)\n",
"\n",
"df_team"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "fa6258db",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>team</th>\n",
" <th>players_used</th>\n",
" <th>possession</th>\n",
" <th>games</th>\n",
" <th>games_starts</th>\n",
" <th>minutes</th>\n",
" <th>goals</th>\n",
" <th>assists</th>\n",
" <th>pens_made</th>\n",
" <th>pens_att</th>\n",
" <th>...</th>\n",
" <th>fouls</th>\n",
" <th>fouled</th>\n",
" <th>offsides</th>\n",
" <th>pens_won</th>\n",
" <th>pens_conceded</th>\n",
" <th>own_goals</th>\n",
" <th>ball_recoveries</th>\n",
" <th>aerials_won</th>\n",
" <th>aerials_lost</th>\n",
" <th>aerials_won_pct</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>vs Atalanta</td>\n",
" <td>32.0</td>\n",
" <td>44.9</td>\n",
" <td>38.0</td>\n",
" <td>418.0</td>\n",
" <td>3420.0</td>\n",
" <td>45.0</td>\n",
" <td>29.0</td>\n",
" <td>5.0</td>\n",
" <td>6.0</td>\n",
" <td>...</td>\n",
" <td>491.0</td>\n",
" <td>488.0</td>\n",
" <td>69.0</td>\n",
" <td>4.0</td>\n",
" <td>6.0</td>\n",
" <td>3.0</td>\n",
" <td>2240.0</td>\n",
" <td>518.0</td>\n",
" <td>685.0</td>\n",
" <td>43.1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>vs Bologna</td>\n",
" <td>36.0</td>\n",
" <td>49.3</td>\n",
" <td>38.0</td>\n",
" <td>418.0</td>\n",
" <td>3420.0</td>\n",
" <td>53.0</td>\n",
" <td>32.0</td>\n",
" <td>8.0</td>\n",
" <td>9.0</td>\n",
" <td>...</td>\n",
" <td>527.0</td>\n",
" <td>416.0</td>\n",
" <td>88.0</td>\n",
" <td>8.0</td>\n",
" <td>5.0</td>\n",
" <td>1.0</td>\n",
" <td>2032.0</td>\n",
" <td>520.0</td>\n",
" <td>492.0</td>\n",
" <td>51.4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>vs Cagliari</td>\n",
" <td>33.0</td>\n",
" <td>55.6</td>\n",
" <td>38.0</td>\n",
" <td>418.0</td>\n",
" <td>3420.0</td>\n",
" <td>67.0</td>\n",
" <td>41.0</td>\n",
" <td>7.0</td>\n",
" <td>10.0</td>\n",
" <td>...</td>\n",
" <td>526.0</td>\n",
" <td>524.0</td>\n",
" <td>76.0</td>\n",
" <td>6.0</td>\n",
" <td>4.0</td>\n",
" <td>0.0</td>\n",
" <td>2112.0</td>\n",
" <td>742.0</td>\n",
" <td>696.0</td>\n",
" <td>51.6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>vs Empoli</td>\n",
" <td>28.0</td>\n",
" <td>52.9</td>\n",
" <td>38.0</td>\n",
" <td>418.0</td>\n",
" <td>3420.0</td>\n",
" <td>64.0</td>\n",
" <td>44.0</td>\n",
" <td>5.0</td>\n",
" <td>10.0</td>\n",
" <td>...</td>\n",
" <td>488.0</td>\n",
" <td>482.0</td>\n",
" <td>66.0</td>\n",
" <td>7.0</td>\n",
" <td>7.0</td>\n",
" <td>3.0</td>\n",
" <td>2051.0</td>\n",
" <td>549.0</td>\n",
" <td>427.0</td>\n",
" <td>56.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>vs Fiorentina</td>\n",
" <td>28.0</td>\n",
" <td>41.8</td>\n",
" <td>38.0</td>\n",
" <td>418.0</td>\n",
" <td>3420.0</td>\n",
" <td>49.0</td>\n",
" <td>33.0</td>\n",
" <td>3.0</td>\n",
" <td>5.0</td>\n",
" <td>...</td>\n",
" <td>585.0</td>\n",
" <td>441.0</td>\n",
" <td>119.0</td>\n",
" <td>4.0</td>\n",
" <td>12.0</td>\n",
" <td>0.0</td>\n",
" <td>1825.0</td>\n",
" <td>456.0</td>\n",
" <td>469.0</td>\n",
" <td>49.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>vs Genoa</td>\n",
" <td>40.0</td>\n",
" <td>56.1</td>\n",
" <td>38.0</td>\n",
" <td>418.0</td>\n",
" <td>3420.0</td>\n",
" <td>58.0</td>\n",
" <td>35.0</td>\n",
" <td>4.0</td>\n",
" <td>5.0</td>\n",
" <td>...</td>\n",
" <td>523.0</td>\n",
" <td>530.0</td>\n",
" <td>59.0</td>\n",
" <td>4.0</td>\n",
" <td>7.0</td>\n",
" <td>1.0</td>\n",
" <td>2257.0</td>\n",
" <td>743.0</td>\n",
" <td>635.0</td>\n",
" <td>53.9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>vs Hellas Verona</td>\n",
" <td>31.0</td>\n",
" <td>49.4</td>\n",
" <td>38.0</td>\n",
" <td>418.0</td>\n",
" <td>3420.0</td>\n",
" <td>57.0</td>\n",
" <td>38.0</td>\n",
" <td>3.0</td>\n",
" <td>4.0</td>\n",
" <td>...</td>\n",
" <td>463.0</td>\n",
" <td>534.0</td>\n",
" <td>32.0</td>\n",
" <td>3.0</td>\n",
" <td>8.0</td>\n",
" <td>2.0</td>\n",
" <td>2206.0</td>\n",
" <td>733.0</td>\n",
" <td>689.0</td>\n",
" <td>51.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>vs Inter</td>\n",
" <td>27.0</td>\n",
" <td>43.4</td>\n",
" <td>38.0</td>\n",
" <td>418.0</td>\n",
" <td>3420.0</td>\n",
" <td>31.0</td>\n",
" <td>19.0</td>\n",
" <td>4.0</td>\n",
" <td>4.0</td>\n",
" <td>...</td>\n",
" <td>440.0</td>\n",
" <td>441.0</td>\n",
" <td>34.0</td>\n",
" <td>3.0</td>\n",
" <td>11.0</td>\n",
" <td>1.0</td>\n",
" <td>1767.0</td>\n",
" <td>476.0</td>\n",
" <td>549.0</td>\n",
" <td>46.4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>vs Juventus</td>\n",
" <td>32.0</td>\n",
" <td>48.3</td>\n",
" <td>38.0</td>\n",
" <td>418.0</td>\n",
" <td>3420.0</td>\n",
" <td>36.0</td>\n",
" <td>21.0</td>\n",
" <td>4.0</td>\n",
" <td>7.0</td>\n",
" <td>...</td>\n",
" <td>525.0</td>\n",
" <td>471.0</td>\n",
" <td>35.0</td>\n",
" <td>5.0</td>\n",
" <td>6.0</td>\n",
" <td>1.0</td>\n",
" <td>1894.0</td>\n",
" <td>440.0</td>\n",
" <td>550.0</td>\n",
" <td>44.4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>vs Lazio</td>\n",
" <td>27.0</td>\n",
" <td>44.4</td>\n",
" <td>38.0</td>\n",
" <td>418.0</td>\n",
" <td>3420.0</td>\n",
" <td>57.0</td>\n",
" <td>40.0</td>\n",
" <td>5.0</td>\n",
" <td>6.0</td>\n",
" <td>...</td>\n",
" <td>474.0</td>\n",
" <td>418.0</td>\n",
" <td>73.0</td>\n",
" <td>6.0</td>\n",
" <td>9.0</td>\n",
" <td>3.0</td>\n",
" <td>1956.0</td>\n",
" <td>427.0</td>\n",
" <td>411.0</td>\n",
" <td>51.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>vs Milan</td>\n",
" <td>28.0</td>\n",
" <td>45.8</td>\n",
" <td>38.0</td>\n",
" <td>418.0</td>\n",
" <td>3420.0</td>\n",
" <td>29.0</td>\n",
" <td>19.0</td>\n",
" <td>4.0</td>\n",
" <td>5.0</td>\n",
" <td>...</td>\n",
" <td>533.0</td>\n",
" <td>440.0</td>\n",
" <td>63.0</td>\n",
" <td>3.0</td>\n",
" <td>8.0</td>\n",
" <td>3.0</td>\n",
" <td>2106.0</td>\n",
" <td>517.0</td>\n",
" <td>521.0</td>\n",
" <td>49.8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>vs Napoli</td>\n",
" <td>27.0</td>\n",
" <td>41.5</td>\n",
" <td>38.0</td>\n",
" <td>418.0</td>\n",
" <td>3420.0</td>\n",
" <td>30.0</td>\n",
" <td>19.0</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>...</td>\n",
" <td>517.0</td>\n",
" <td>415.0</td>\n",
" <td>60.0</td>\n",
" <td>0.0</td>\n",
" <td>14.0</td>\n",
" <td>0.0</td>\n",
" <td>1963.0</td>\n",
" <td>403.0</td>\n",
" <td>393.0</td>\n",
" <td>50.6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>vs Roma</td>\n",
" <td>29.0</td>\n",
" <td>48.6</td>\n",
" <td>38.0</td>\n",
" <td>418.0</td>\n",
" <td>3420.0</td>\n",
" <td>41.0</td>\n",
" <td>23.0</td>\n",
" <td>5.0</td>\n",
" <td>6.0</td>\n",
" <td>...</td>\n",
" <td>497.0</td>\n",
" <td>477.0</td>\n",
" <td>81.0</td>\n",
" <td>5.0</td>\n",
" <td>9.0</td>\n",
" <td>1.0</td>\n",
" <td>1970.0</td>\n",
" <td>441.0</td>\n",
" <td>524.0</td>\n",
" <td>45.7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>vs Salernitana</td>\n",
" <td>42.0</td>\n",
" <td>59.0</td>\n",
" <td>38.0</td>\n",
" <td>418.0</td>\n",
" <td>3420.0</td>\n",
" <td>76.0</td>\n",
" <td>58.0</td>\n",
" <td>6.0</td>\n",
" <td>8.0</td>\n",
" <td>...</td>\n",
" <td>546.0</td>\n",
" <td>463.0</td>\n",
" <td>63.0</td>\n",
" <td>6.0</td>\n",
" <td>5.0</td>\n",
" <td>1.0</td>\n",
" <td>2043.0</td>\n",
" <td>506.0</td>\n",
" <td>657.0</td>\n",
" <td>43.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>vs Sampdoria</td>\n",
" <td>34.0</td>\n",
" <td>54.1</td>\n",
" <td>38.0</td>\n",
" <td>418.0</td>\n",
" <td>3420.0</td>\n",
" <td>61.0</td>\n",
" <td>41.0</td>\n",
" <td>3.0</td>\n",
" <td>4.0</td>\n",
" <td>...</td>\n",
" <td>538.0</td>\n",
" <td>471.0</td>\n",
" <td>64.0</td>\n",
" <td>1.0</td>\n",
" <td>4.0</td>\n",
" <td>4.0</td>\n",
" <td>2174.0</td>\n",
" <td>506.0</td>\n",
" <td>609.0</td>\n",
" <td>45.4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>vs Sassuolo</td>\n",
" <td>29.0</td>\n",
" <td>44.8</td>\n",
" <td>38.0</td>\n",
" <td>418.0</td>\n",
" <td>3420.0</td>\n",
" <td>65.0</td>\n",
" <td>48.0</td>\n",
" <td>8.0</td>\n",
" <td>9.0</td>\n",
" <td>...</td>\n",
" <td>519.0</td>\n",
" <td>434.0</td>\n",
" <td>142.0</td>\n",
" <td>6.0</td>\n",
" <td>7.0</td>\n",
" <td>4.0</td>\n",
" <td>2041.0</td>\n",
" <td>404.0</td>\n",
" <td>343.0</td>\n",
" <td>54.1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>vs Spezia</td>\n",
" <td>30.0</td>\n",
" <td>57.3</td>\n",
" <td>38.0</td>\n",
" <td>418.0</td>\n",
" <td>3420.0</td>\n",
" <td>68.0</td>\n",
" <td>44.0</td>\n",
" <td>10.0</td>\n",
" <td>13.0</td>\n",
" <td>...</td>\n",
" <td>474.0</td>\n",
" <td>477.0</td>\n",
" <td>62.0</td>\n",
" <td>8.0</td>\n",
" <td>5.0</td>\n",
" <td>3.0</td>\n",
" <td>2064.0</td>\n",
" <td>589.0</td>\n",
" <td>530.0</td>\n",
" <td>52.6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>vs Torino</td>\n",
" <td>31.0</td>\n",
" <td>46.4</td>\n",
" <td>38.0</td>\n",
" <td>418.0</td>\n",
" <td>3420.0</td>\n",
" <td>41.0</td>\n",
" <td>25.0</td>\n",
" <td>9.0</td>\n",
" <td>11.0</td>\n",
" <td>...</td>\n",
" <td>485.0</td>\n",
" <td>611.0</td>\n",
" <td>60.0</td>\n",
" <td>10.0</td>\n",
" <td>6.0</td>\n",
" <td>3.0</td>\n",
" <td>1989.0</td>\n",
" <td>891.0</td>\n",
" <td>781.0</td>\n",
" <td>53.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>vs Udinese</td>\n",
" <td>29.0</td>\n",
" <td>57.7</td>\n",
" <td>38.0</td>\n",
" <td>418.0</td>\n",
" <td>3420.0</td>\n",
" <td>57.0</td>\n",
" <td>39.0</td>\n",
" <td>5.0</td>\n",
" <td>7.0</td>\n",
" <td>...</td>\n",
" <td>494.0</td>\n",
" <td>537.0</td>\n",
" <td>57.0</td>\n",
" <td>6.0</td>\n",
" <td>4.0</td>\n",
" <td>3.0</td>\n",
" <td>2010.0</td>\n",
" <td>534.0</td>\n",
" <td>453.0</td>\n",
" <td>54.1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>vs Venezia</td>\n",
" <td>39.0</td>\n",
" <td>57.9</td>\n",
" <td>38.0</td>\n",
" <td>418.0</td>\n",
" <td>3420.0</td>\n",
" <td>67.0</td>\n",
" <td>39.0</td>\n",
" <td>11.0</td>\n",
" <td>12.0</td>\n",
" <td>...</td>\n",
" <td>476.0</td>\n",
" <td>492.0</td>\n",
" <td>48.0</td>\n",
" <td>5.0</td>\n",
" <td>5.0</td>\n",
" <td>0.0</td>\n",
" <td>2059.0</td>\n",
" <td>583.0</td>\n",
" <td>564.0</td>\n",
" <td>50.8</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>20 rows × 152 columns</p>\n",
"</div>"
],
"text/plain": [
" team players_used possession games games_starts minutes \\\n",
"0 vs Atalanta 32.0 44.9 38.0 418.0 3420.0 \n",
"1 vs Bologna 36.0 49.3 38.0 418.0 3420.0 \n",
"2 vs Cagliari 33.0 55.6 38.0 418.0 3420.0 \n",
"3 vs Empoli 28.0 52.9 38.0 418.0 3420.0 \n",
"4 vs Fiorentina 28.0 41.8 38.0 418.0 3420.0 \n",
"5 vs Genoa 40.0 56.1 38.0 418.0 3420.0 \n",
"6 vs Hellas Verona 31.0 49.4 38.0 418.0 3420.0 \n",
"7 vs Inter 27.0 43.4 38.0 418.0 3420.0 \n",
"8 vs Juventus 32.0 48.3 38.0 418.0 3420.0 \n",
"9 vs Lazio 27.0 44.4 38.0 418.0 3420.0 \n",
"10 vs Milan 28.0 45.8 38.0 418.0 3420.0 \n",
"11 vs Napoli 27.0 41.5 38.0 418.0 3420.0 \n",
"12 vs Roma 29.0 48.6 38.0 418.0 3420.0 \n",
"13 vs Salernitana 42.0 59.0 38.0 418.0 3420.0 \n",
"14 vs Sampdoria 34.0 54.1 38.0 418.0 3420.0 \n",
"15 vs Sassuolo 29.0 44.8 38.0 418.0 3420.0 \n",
"16 vs Spezia 30.0 57.3 38.0 418.0 3420.0 \n",
"17 vs Torino 31.0 46.4 38.0 418.0 3420.0 \n",
"18 vs Udinese 29.0 57.7 38.0 418.0 3420.0 \n",
"19 vs Venezia 39.0 57.9 38.0 418.0 3420.0 \n",
"\n",
" goals assists pens_made pens_att ... fouls fouled offsides \\\n",
"0 45.0 29.0 5.0 6.0 ... 491.0 488.0 69.0 \n",
"1 53.0 32.0 8.0 9.0 ... 527.0 416.0 88.0 \n",
"2 67.0 41.0 7.0 10.0 ... 526.0 524.0 76.0 \n",
"3 64.0 44.0 5.0 10.0 ... 488.0 482.0 66.0 \n",
"4 49.0 33.0 3.0 5.0 ... 585.0 441.0 119.0 \n",
"5 58.0 35.0 4.0 5.0 ... 523.0 530.0 59.0 \n",
"6 57.0 38.0 3.0 4.0 ... 463.0 534.0 32.0 \n",
"7 31.0 19.0 4.0 4.0 ... 440.0 441.0 34.0 \n",
"8 36.0 21.0 4.0 7.0 ... 525.0 471.0 35.0 \n",
"9 57.0 40.0 5.0 6.0 ... 474.0 418.0 73.0 \n",
"10 29.0 19.0 4.0 5.0 ... 533.0 440.0 63.0 \n",
"11 30.0 19.0 1.0 1.0 ... 517.0 415.0 60.0 \n",
"12 41.0 23.0 5.0 6.0 ... 497.0 477.0 81.0 \n",
"13 76.0 58.0 6.0 8.0 ... 546.0 463.0 63.0 \n",
"14 61.0 41.0 3.0 4.0 ... 538.0 471.0 64.0 \n",
"15 65.0 48.0 8.0 9.0 ... 519.0 434.0 142.0 \n",
"16 68.0 44.0 10.0 13.0 ... 474.0 477.0 62.0 \n",
"17 41.0 25.0 9.0 11.0 ... 485.0 611.0 60.0 \n",
"18 57.0 39.0 5.0 7.0 ... 494.0 537.0 57.0 \n",
"19 67.0 39.0 11.0 12.0 ... 476.0 492.0 48.0 \n",
"\n",
" pens_won pens_conceded own_goals ball_recoveries aerials_won \\\n",
"0 4.0 6.0 3.0 2240.0 518.0 \n",
"1 8.0 5.0 1.0 2032.0 520.0 \n",
"2 6.0 4.0 0.0 2112.0 742.0 \n",
"3 7.0 7.0 3.0 2051.0 549.0 \n",
"4 4.0 12.0 0.0 1825.0 456.0 \n",
"5 4.0 7.0 1.0 2257.0 743.0 \n",
"6 3.0 8.0 2.0 2206.0 733.0 \n",
"7 3.0 11.0 1.0 1767.0 476.0 \n",
"8 5.0 6.0 1.0 1894.0 440.0 \n",
"9 6.0 9.0 3.0 1956.0 427.0 \n",
"10 3.0 8.0 3.0 2106.0 517.0 \n",
"11 0.0 14.0 0.0 1963.0 403.0 \n",
"12 5.0 9.0 1.0 1970.0 441.0 \n",
"13 6.0 5.0 1.0 2043.0 506.0 \n",
"14 1.0 4.0 4.0 2174.0 506.0 \n",
"15 6.0 7.0 4.0 2041.0 404.0 \n",
"16 8.0 5.0 3.0 2064.0 589.0 \n",
"17 10.0 6.0 3.0 1989.0 891.0 \n",
"18 6.0 4.0 3.0 2010.0 534.0 \n",
"19 5.0 5.0 0.0 2059.0 583.0 \n",
"\n",
" aerials_lost aerials_won_pct \n",
"0 685.0 43.1 \n",
"1 492.0 51.4 \n",
"2 696.0 51.6 \n",
"3 427.0 56.3 \n",
"4 469.0 49.3 \n",
"5 635.0 53.9 \n",
"6 689.0 51.5 \n",
"7 549.0 46.4 \n",
"8 550.0 44.4 \n",
"9 411.0 51.0 \n",
"10 521.0 49.8 \n",
"11 393.0 50.6 \n",
"12 524.0 45.7 \n",
"13 657.0 43.5 \n",
"14 609.0 45.4 \n",
"15 343.0 54.1 \n",
"16 530.0 52.6 \n",
"17 781.0 53.3 \n",
"18 453.0 54.1 \n",
"19 564.0 50.8 \n",
"\n",
"[20 rows x 152 columns]"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_vsteam = get_team_data('https://fbref.com/en/comps/11/2021-2022/','/2021-2022-Serie-A-Stats', 'vs')\n",
"\n",
"df_vsteam.to_csv('fbref_data/season2122/teams_vs.csv', index=False)\n",
"\n",
"df_vsteam"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "22ad9be5",
"metadata": {},
"outputs": [],
"source": [
"df_outfield = get_outfield_data('https://fbref.com/en/comps/11/2020-2021/','/2020-2021-Serie-A-Stats')\n",
"df_outfield.to_csv('fbref_data/season2021/outfield_players.csv', index=False)\n",
"\n",
"df_keeper = get_keeper_data('https://fbref.com/en/comps/11/2020-2021/','/2020-2021-Serie-A-Stats')\n",
"df_keeper.to_csv('fbref_data/season2021/keepers_players.csv', index=False)\n",
"\n",
"df_team = get_team_data('https://fbref.com/en/comps/11/2020-2021/','/2020-2021-Serie-A-Stats', 'for')\n",
"df_team.to_csv('fbref_data/season2021/teams.csv', index=False)\n",
"\n",
"df_vsteam = get_team_data('https://fbref.com/en/comps/11/2020-2021/','/2020-2021-Serie-A-Stats', 'vs')\n",
"df_vsteam.to_csv('fbref_data/season2021/teams_vs.csv', index=False)\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "125223ae",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.13"
}
},
"nbformat": 4,
"nbformat_minor": 5
}