Files
fantabeto/1_scraping_fbref.ipynb
T
Giuseppe Musicco 8f7df5dd7f Minor update (matchday 21)
- updated code for new FBRef stats;
- updated players list;
- players who changed team handled slightly better
2023-02-04 13:10:39 +01:00

6369 lines
254 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",
" res = requests.get(url)\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>Tammy Abraham</td>\n",
" <td>eng ENG</td>\n",
" <td>FW</td>\n",
" <td>Roma</td>\n",
" <td>25-125</td>\n",
" <td>1997</td>\n",
" <td>20.0</td>\n",
" <td>16.0</td>\n",
" <td>1410.0</td>\n",
" <td>5.0</td>\n",
" <td>...</td>\n",
" <td>19.0</td>\n",
" <td>30.0</td>\n",
" <td>8.0</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>30.0</td>\n",
" <td>38.0</td>\n",
" <td>36.0</td>\n",
" <td>51.4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Francesco Acerbi</td>\n",
" <td>it ITA</td>\n",
" <td>DF</td>\n",
" <td>Inter</td>\n",
" <td>34-359</td>\n",
" <td>1988</td>\n",
" <td>13.0</td>\n",
" <td>11.0</td>\n",
" <td>1020.0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>8.0</td>\n",
" <td>7.0</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>57.0</td>\n",
" <td>30.0</td>\n",
" <td>19.0</td>\n",
" <td>61.2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>Yacine Adli</td>\n",
" <td>fr FRA</td>\n",
" <td>MF,FW</td>\n",
" <td>Milan</td>\n",
" <td>22-190</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>3</th>\n",
" <td>Michel Aebischer</td>\n",
" <td>ch SUI</td>\n",
" <td>FW,MF</td>\n",
" <td>Bologna</td>\n",
" <td>26-029</td>\n",
" <td>1997</td>\n",
" <td>17.0</td>\n",
" <td>8.0</td>\n",
" <td>767.0</td>\n",
" <td>1.0</td>\n",
" <td>...</td>\n",
" <td>10.0</td>\n",
" <td>14.0</td>\n",
" <td>5.0</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>42.0</td>\n",
" <td>5.0</td>\n",
" <td>8.0</td>\n",
" <td>38.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Felix Afena-Gyan</td>\n",
" <td>gh GHA</td>\n",
" <td>FW,MF</td>\n",
" <td>Cremonese</td>\n",
" <td>20-016</td>\n",
" <td>2003</td>\n",
" <td>11.0</td>\n",
" <td>2.0</td>\n",
" <td>327.0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>8.0</td>\n",
" <td>3.0</td>\n",
" <td>4.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>14.0</td>\n",
" <td>8.0</td>\n",
" <td>15.0</td>\n",
" <td>34.8</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>520</th>\n",
" <td>Petar Zovko</td>\n",
" <td>ba BIH</td>\n",
" <td>GK</td>\n",
" <td>Spezia</td>\n",
" <td>20-316</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>521</th>\n",
" <td>Szymon Żurkowski</td>\n",
" <td>pl POL</td>\n",
" <td>MF</td>\n",
" <td>Fiorentina</td>\n",
" <td>25-132</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>522</th>\n",
" <td>Szymon Żurkowski</td>\n",
" <td>pl POL</td>\n",
" <td>MF</td>\n",
" <td>Spezia</td>\n",
" <td>25-132</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>523</th>\n",
" <td>Milan Đurić</td>\n",
" <td>ba BIH</td>\n",
" <td>FW</td>\n",
" <td>Hellas Verona</td>\n",
" <td>32-258</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>524</th>\n",
" <td>Filip Đuričić</td>\n",
" <td>rs SRB</td>\n",
" <td>MF,FW</td>\n",
" <td>Sampdoria</td>\n",
" <td>31-005</td>\n",
" <td>1992</td>\n",
" <td>19.0</td>\n",
" <td>16.0</td>\n",
" <td>1259.0</td>\n",
" <td>2.0</td>\n",
" <td>...</td>\n",
" <td>21.0</td>\n",
" <td>33.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>69.0</td>\n",
" <td>7.0</td>\n",
" <td>12.0</td>\n",
" <td>36.8</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>525 rows × 124 columns</p>\n",
"</div>"
],
"text/plain": [
" player nationality position team age birth_year \\\n",
"0 Tammy Abraham eng ENG FW Roma 25-125 1997 \n",
"1 Francesco Acerbi it ITA DF Inter 34-359 1988 \n",
"2 Yacine Adli fr FRA MF,FW Milan 22-190 2000 \n",
"3 Michel Aebischer ch SUI FW,MF Bologna 26-029 1997 \n",
"4 Felix Afena-Gyan gh GHA FW,MF Cremonese 20-016 2003 \n",
".. ... ... ... ... ... ... \n",
"520 Petar Zovko ba BIH GK Spezia 20-316 2002 \n",
"521 Szymon Żurkowski pl POL MF Fiorentina 25-132 1997 \n",
"522 Szymon Żurkowski pl POL MF Spezia 25-132 1997 \n",
"523 Milan Đurić ba BIH FW Hellas Verona 32-258 1990 \n",
"524 Filip Đuričić rs SRB MF,FW Sampdoria 31-005 1992 \n",
"\n",
" games games_starts minutes goals ... fouls fouled offsides \\\n",
"0 20.0 16.0 1410.0 5.0 ... 19.0 30.0 8.0 \n",
"1 13.0 11.0 1020.0 0.0 ... 8.0 7.0 1.0 \n",
"2 4.0 1.0 116.0 0.0 ... 3.0 1.0 0.0 \n",
"3 17.0 8.0 767.0 1.0 ... 10.0 14.0 5.0 \n",
"4 11.0 2.0 327.0 0.0 ... 8.0 3.0 4.0 \n",
".. ... ... ... ... ... ... ... ... \n",
"520 1.0 0.0 74.0 0.0 ... 0.0 0.0 0.0 \n",
"521 2.0 0.0 32.0 0.0 ... 1.0 0.0 0.0 \n",
"522 1.0 0.0 8.0 0.0 ... 0.0 0.0 0.0 \n",
"523 16.0 7.0 703.0 1.0 ... 15.0 14.0 3.0 \n",
"524 19.0 16.0 1259.0 2.0 ... 21.0 33.0 0.0 \n",
"\n",
" pens_won pens_conceded own_goals ball_recoveries aerials_won \\\n",
"0 1.0 0.0 0.0 30.0 38.0 \n",
"1 0.0 0.0 0.0 57.0 30.0 \n",
"2 0.0 0.0 0.0 5.0 0.0 \n",
"3 1.0 1.0 0.0 42.0 5.0 \n",
"4 0.0 0.0 0.0 14.0 8.0 \n",
".. ... ... ... ... ... \n",
"520 0.0 0.0 0.0 2.0 0.0 \n",
"521 0.0 0.0 0.0 2.0 1.0 \n",
"522 0.0 0.0 0.0 3.0 0.0 \n",
"523 0.0 0.0 0.0 16.0 113.0 \n",
"524 0.0 0.0 0.0 69.0 7.0 \n",
"\n",
" aerials_lost aerials_won_pct \n",
"0 36.0 51.4 \n",
"1 19.0 61.2 \n",
"2 3.0 0.0 \n",
"3 8.0 38.5 \n",
"4 15.0 34.8 \n",
".. ... ... \n",
"520 0.0 0.0 \n",
"521 1.0 50.0 \n",
"522 0.0 0.0 \n",
"523 28.0 80.1 \n",
"524 12.0 36.8 \n",
"\n",
"[525 rows x 124 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-017</td>\n",
" <td>1997</td>\n",
" <td>20.0</td>\n",
" <td>20.0</td>\n",
" <td>1800.0</td>\n",
" <td>34.0</td>\n",
" <td>...</td>\n",
" <td>38.9</td>\n",
" <td>154.0</td>\n",
" <td>58.4</td>\n",
" <td>45.0</td>\n",
" <td>256.0</td>\n",
" <td>15.0</td>\n",
" <td>5.9</td>\n",
" <td>20.0</td>\n",
" <td>1.00</td>\n",
" <td>15.4</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-218</td>\n",
" <td>2000</td>\n",
" <td>11.0</td>\n",
" <td>11.0</td>\n",
" <td>990.0</td>\n",
" <td>16.0</td>\n",
" <td>...</td>\n",
" <td>39.6</td>\n",
" <td>78.0</td>\n",
" <td>59.0</td>\n",
" <td>49.3</td>\n",
" <td>138.0</td>\n",
" <td>12.0</td>\n",
" <td>8.7</td>\n",
" <td>7.0</td>\n",
" <td>0.64</td>\n",
" <td>12.3</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-008</td>\n",
" <td>1987</td>\n",
" <td>18.0</td>\n",
" <td>18.0</td>\n",
" <td>1620.0</td>\n",
" <td>28.0</td>\n",
" <td>...</td>\n",
" <td>34.6</td>\n",
" <td>167.0</td>\n",
" <td>32.3</td>\n",
" <td>33.3</td>\n",
" <td>236.0</td>\n",
" <td>14.0</td>\n",
" <td>5.9</td>\n",
" <td>15.0</td>\n",
" <td>0.83</td>\n",
" <td>14.4</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-192</td>\n",
" <td>1997</td>\n",
" <td>20.0</td>\n",
" <td>20.0</td>\n",
" <td>1800.0</td>\n",
" <td>28.0</td>\n",
" <td>...</td>\n",
" <td>33.2</td>\n",
" <td>121.0</td>\n",
" <td>32.2</td>\n",
" <td>31.7</td>\n",
" <td>278.0</td>\n",
" <td>10.0</td>\n",
" <td>3.6</td>\n",
" <td>14.0</td>\n",
" <td>0.70</td>\n",
" <td>12.9</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-169</td>\n",
" <td>1997</td>\n",
" <td>18.0</td>\n",
" <td>18.0</td>\n",
" <td>1572.0</td>\n",
" <td>29.0</td>\n",
" <td>...</td>\n",
" <td>34.4</td>\n",
" <td>106.0</td>\n",
" <td>63.2</td>\n",
" <td>47.8</td>\n",
" <td>235.0</td>\n",
" <td>9.0</td>\n",
" <td>3.8</td>\n",
" <td>24.0</td>\n",
" <td>1.37</td>\n",
" <td>15.6</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-298</td>\n",
" <td>1995</td>\n",
" <td>20.0</td>\n",
" <td>20.0</td>\n",
" <td>1800.0</td>\n",
" <td>24.0</td>\n",
" <td>...</td>\n",
" <td>40.9</td>\n",
" <td>156.0</td>\n",
" <td>75.0</td>\n",
" <td>51.4</td>\n",
" <td>302.0</td>\n",
" <td>13.0</td>\n",
" <td>4.3</td>\n",
" <td>20.0</td>\n",
" <td>1.00</td>\n",
" <td>12.5</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-323</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-205</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-216</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-030</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-319</td>\n",
" <td>1997</td>\n",
" <td>20.0</td>\n",
" <td>20.0</td>\n",
" <td>1800.0</td>\n",
" <td>15.0</td>\n",
" <td>...</td>\n",
" <td>26.7</td>\n",
" <td>118.0</td>\n",
" <td>20.3</td>\n",
" <td>27.5</td>\n",
" <td>213.0</td>\n",
" <td>6.0</td>\n",
" <td>2.8</td>\n",
" <td>24.0</td>\n",
" <td>1.20</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-349</td>\n",
" <td>1997</td>\n",
" <td>20.0</td>\n",
" <td>20.0</td>\n",
" <td>1800.0</td>\n",
" <td>22.0</td>\n",
" <td>...</td>\n",
" <td>41.0</td>\n",
" <td>149.0</td>\n",
" <td>94.0</td>\n",
" <td>71.7</td>\n",
" <td>244.0</td>\n",
" <td>18.0</td>\n",
" <td>7.4</td>\n",
" <td>33.0</td>\n",
" <td>1.65</td>\n",
" <td>16.1</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-349</td>\n",
" <td>1996</td>\n",
" <td>20.0</td>\n",
" <td>20.0</td>\n",
" <td>1800.0</td>\n",
" <td>32.0</td>\n",
" <td>...</td>\n",
" <td>43.5</td>\n",
" <td>159.0</td>\n",
" <td>59.7</td>\n",
" <td>45.7</td>\n",
" <td>279.0</td>\n",
" <td>12.0</td>\n",
" <td>4.3</td>\n",
" <td>46.0</td>\n",
" <td>2.30</td>\n",
" <td>17.4</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-274</td>\n",
" <td>1994</td>\n",
" <td>14.0</td>\n",
" <td>14.0</td>\n",
" <td>1177.0</td>\n",
" <td>14.0</td>\n",
" <td>...</td>\n",
" <td>32.6</td>\n",
" <td>92.0</td>\n",
" <td>62.0</td>\n",
" <td>47.6</td>\n",
" <td>161.0</td>\n",
" <td>8.0</td>\n",
" <td>5.0</td>\n",
" <td>12.0</td>\n",
" <td>0.92</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-206</td>\n",
" <td>1985</td>\n",
" <td>5.0</td>\n",
" <td>5.0</td>\n",
" <td>450.0</td>\n",
" <td>14.0</td>\n",
" <td>...</td>\n",
" <td>43.3</td>\n",
" <td>52.0</td>\n",
" <td>78.8</td>\n",
" <td>54.7</td>\n",
" <td>77.0</td>\n",
" <td>2.0</td>\n",
" <td>2.6</td>\n",
" <td>4.0</td>\n",
" <td>0.80</td>\n",
" <td>16.5</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-308</td>\n",
" <td>1996</td>\n",
" <td>12.0</td>\n",
" <td>12.0</td>\n",
" <td>1080.0</td>\n",
" <td>13.0</td>\n",
" <td>...</td>\n",
" <td>31.0</td>\n",
" <td>88.0</td>\n",
" <td>33.0</td>\n",
" <td>36.3</td>\n",
" <td>159.0</td>\n",
" <td>7.0</td>\n",
" <td>4.4</td>\n",
" <td>3.0</td>\n",
" <td>0.25</td>\n",
" <td>12.6</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>34-354</td>\n",
" <td>1988</td>\n",
" <td>20.0</td>\n",
" <td>20.0</td>\n",
" <td>1800.0</td>\n",
" <td>18.0</td>\n",
" <td>...</td>\n",
" <td>31.6</td>\n",
" <td>146.0</td>\n",
" <td>30.8</td>\n",
" <td>32.9</td>\n",
" <td>229.0</td>\n",
" <td>6.0</td>\n",
" <td>2.6</td>\n",
" <td>13.0</td>\n",
" <td>0.65</td>\n",
" <td>13.8</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-316</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-086</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-324</td>\n",
" <td>1994</td>\n",
" <td>20.0</td>\n",
" <td>19.0</td>\n",
" <td>1793.0</td>\n",
" <td>16.0</td>\n",
" <td>...</td>\n",
" <td>32.8</td>\n",
" <td>119.0</td>\n",
" <td>33.6</td>\n",
" <td>34.2</td>\n",
" <td>266.0</td>\n",
" <td>7.0</td>\n",
" <td>2.6</td>\n",
" <td>37.0</td>\n",
" <td>1.86</td>\n",
" <td>18.0</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-252</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-272</td>\n",
" <td>1991</td>\n",
" <td>15.0</td>\n",
" <td>15.0</td>\n",
" <td>1350.0</td>\n",
" <td>24.0</td>\n",
" <td>...</td>\n",
" <td>36.1</td>\n",
" <td>134.0</td>\n",
" <td>46.3</td>\n",
" <td>40.6</td>\n",
" <td>199.0</td>\n",
" <td>15.0</td>\n",
" <td>7.5</td>\n",
" <td>11.0</td>\n",
" <td>0.73</td>\n",
" <td>14.2</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-339</td>\n",
" <td>1991</td>\n",
" <td>20.0</td>\n",
" <td>20.0</td>\n",
" <td>1800.0</td>\n",
" <td>22.0</td>\n",
" <td>...</td>\n",
" <td>33.3</td>\n",
" <td>154.0</td>\n",
" <td>39.6</td>\n",
" <td>36.6</td>\n",
" <td>263.0</td>\n",
" <td>5.0</td>\n",
" <td>1.9</td>\n",
" <td>10.0</td>\n",
" <td>0.50</td>\n",
" <td>13.8</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-275</td>\n",
" <td>1991</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>32.1</td>\n",
" <td>141.0</td>\n",
" <td>37.6</td>\n",
" <td>33.9</td>\n",
" <td>280.0</td>\n",
" <td>18.0</td>\n",
" <td>6.4</td>\n",
" <td>17.0</td>\n",
" <td>0.85</td>\n",
" <td>14.1</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-270</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-292</td>\n",
" <td>1990</td>\n",
" <td>14.0</td>\n",
" <td>14.0</td>\n",
" <td>1212.0</td>\n",
" <td>13.0</td>\n",
" <td>...</td>\n",
" <td>35.2</td>\n",
" <td>62.0</td>\n",
" <td>40.3</td>\n",
" <td>38.9</td>\n",
" <td>159.0</td>\n",
" <td>4.0</td>\n",
" <td>2.5</td>\n",
" <td>10.0</td>\n",
" <td>0.74</td>\n",
" <td>15.1</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>36-360</td>\n",
" <td>1986</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>32.5</td>\n",
" <td>52.0</td>\n",
" <td>34.6</td>\n",
" <td>34.7</td>\n",
" <td>134.0</td>\n",
" <td>8.0</td>\n",
" <td>6.0</td>\n",
" <td>10.0</td>\n",
" <td>0.77</td>\n",
" <td>15.1</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-333</td>\n",
" <td>1990</td>\n",
" <td>17.0</td>\n",
" <td>17.0</td>\n",
" <td>1530.0</td>\n",
" <td>24.0</td>\n",
" <td>...</td>\n",
" <td>32.9</td>\n",
" <td>110.0</td>\n",
" <td>44.5</td>\n",
" <td>40.4</td>\n",
" <td>159.0</td>\n",
" <td>9.0</td>\n",
" <td>5.7</td>\n",
" <td>34.0</td>\n",
" <td>2.00</td>\n",
" <td>18.9</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-120</td>\n",
" <td>1996</td>\n",
" <td>20.0</td>\n",
" <td>20.0</td>\n",
" <td>1800.0</td>\n",
" <td>24.0</td>\n",
" <td>...</td>\n",
" <td>34.3</td>\n",
" <td>107.0</td>\n",
" <td>47.7</td>\n",
" <td>42.5</td>\n",
" <td>412.0</td>\n",
" <td>25.0</td>\n",
" <td>6.1</td>\n",
" <td>10.0</td>\n",
" <td>0.50</td>\n",
" <td>10.7</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-029</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-316</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-017 \n",
"1 Marco Carnesecchi it ITA GK Cremonese 22-218 \n",
"2 Andrea Consigli it ITA GK Sassuolo 36-008 \n",
"3 Michele Di Gregorio it ITA GK Monza 25-192 \n",
"4 Bartłomiej Drągowski pl POL GK Spezia 25-169 \n",
"5 Wladimiro Falcone it ITA GK Lecce 27-298 \n",
"6 Pierluigi Gollini it ITA GK Fiorentina 27-323 \n",
"7 Samir Handanović si SVN GK Inter 38-205 \n",
"8 Mike Maignan fr FRA GK Milan 27-216 \n",
"9 Luís Maximiano pt POR GK Lazio 24-030 \n",
"10 Alex Meret it ITA GK Napoli 25-319 \n",
"11 Vanja Milinković-Savić rs SRB GK Torino 25-349 \n",
"12 Lorenzo Montipò it ITA GK Hellas Verona 26-349 \n",
"13 Juan Musso ar ARG GK Atalanta 28-274 \n",
"14 Guillermo Ochoa mx MEX GK Salernitana 37-206 \n",
"15 André Onana cm CMR GK Inter 26-308 \n",
"16 Rui Patrício pt POR GK Roma 34-354 \n",
"17 Gianluca Pegolo it ITA GK Sassuolo 41-316 \n",
"18 Mattia Perin it ITA GK Juventus 30-086 \n",
"19 Ivan Provedel it ITA GK Lazio 28-324 \n",
"20 Ionuț Radu ro ROU GK Cremonese 25-252 \n",
"21 Luigi Sepe it ITA GK Salernitana 31-272 \n",
"22 Marco Silvestri it ITA GK Udinese 31-339 \n",
"23 Łukasz Skorupski pl POL GK Bologna 31-275 \n",
"24 Marco Sportiello it ITA GK Atalanta 30-270 \n",
"25 Wojciech Szczęsny pl POL GK Juventus 32-292 \n",
"26 Ciprian Tătărușanu ro ROU GK Milan 36-360 \n",
"27 Pietro Terracciano it ITA GK Fiorentina 32-333 \n",
"28 Guglielmo Vicario it ITA GK Empoli 26-120 \n",
"29 Jeroen Zoet nl NED GK Spezia 32-029 \n",
"30 Petar Zovko ba BIH GK Spezia 20-316 \n",
"\n",
" birth_year gk_games gk_games_starts gk_minutes gk_goals_against ... \\\n",
"0 1997 20.0 20.0 1800.0 34.0 ... \n",
"1 2000 11.0 11.0 990.0 16.0 ... \n",
"2 1987 18.0 18.0 1620.0 28.0 ... \n",
"3 1997 20.0 20.0 1800.0 28.0 ... \n",
"4 1997 18.0 18.0 1572.0 29.0 ... \n",
"5 1995 20.0 20.0 1800.0 24.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 20.0 20.0 1800.0 15.0 ... \n",
"11 1997 20.0 20.0 1800.0 22.0 ... \n",
"12 1996 20.0 20.0 1800.0 32.0 ... \n",
"13 1994 14.0 14.0 1177.0 14.0 ... \n",
"14 1985 5.0 5.0 450.0 14.0 ... \n",
"15 1996 12.0 12.0 1080.0 13.0 ... \n",
"16 1988 20.0 20.0 1800.0 18.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 20.0 19.0 1793.0 16.0 ... \n",
"20 1997 9.0 9.0 810.0 19.0 ... \n",
"21 1991 15.0 15.0 1350.0 24.0 ... \n",
"22 1991 20.0 20.0 1800.0 22.0 ... \n",
"23 1991 20.0 20.0 1800.0 30.0 ... \n",
"24 1992 7.0 6.0 623.0 9.0 ... \n",
"25 1990 14.0 14.0 1212.0 13.0 ... \n",
"26 1986 13.0 13.0 1170.0 21.0 ... \n",
"27 1990 17.0 17.0 1530.0 24.0 ... \n",
"28 1996 20.0 20.0 1800.0 24.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 38.9 154.0 58.4 \n",
"1 39.6 78.0 59.0 \n",
"2 34.6 167.0 32.3 \n",
"3 33.2 121.0 32.2 \n",
"4 34.4 106.0 63.2 \n",
"5 40.9 156.0 75.0 \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.7 118.0 20.3 \n",
"11 41.0 149.0 94.0 \n",
"12 43.5 159.0 59.7 \n",
"13 32.6 92.0 62.0 \n",
"14 43.3 52.0 78.8 \n",
"15 31.0 88.0 33.0 \n",
"16 31.6 146.0 30.8 \n",
"17 29.7 16.0 31.3 \n",
"18 30.3 41.0 39.0 \n",
"19 32.8 119.0 33.6 \n",
"20 37.3 67.0 50.7 \n",
"21 36.1 134.0 46.3 \n",
"22 33.3 154.0 39.6 \n",
"23 32.1 141.0 37.6 \n",
"24 28.5 61.0 68.9 \n",
"25 35.2 62.0 40.3 \n",
"26 32.5 52.0 34.6 \n",
"27 32.9 110.0 44.5 \n",
"28 34.3 107.0 47.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 45.0 256.0 15.0 \n",
"1 49.3 138.0 12.0 \n",
"2 33.3 236.0 14.0 \n",
"3 31.7 278.0 10.0 \n",
"4 47.8 235.0 9.0 \n",
"5 51.4 302.0 13.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 27.5 213.0 6.0 \n",
"11 71.7 244.0 18.0 \n",
"12 45.7 279.0 12.0 \n",
"13 47.6 161.0 8.0 \n",
"14 54.7 77.0 2.0 \n",
"15 36.3 159.0 7.0 \n",
"16 32.9 229.0 6.0 \n",
"17 28.3 28.0 2.0 \n",
"18 35.3 99.0 2.0 \n",
"19 34.2 266.0 7.0 \n",
"20 46.3 107.0 6.0 \n",
"21 40.6 199.0 15.0 \n",
"22 36.6 263.0 5.0 \n",
"23 33.9 280.0 18.0 \n",
"24 48.9 86.0 7.0 \n",
"25 38.9 159.0 4.0 \n",
"26 34.7 134.0 8.0 \n",
"27 40.4 159.0 9.0 \n",
"28 42.5 412.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 5.9 20.0 \n",
"1 8.7 7.0 \n",
"2 5.9 15.0 \n",
"3 3.6 14.0 \n",
"4 3.8 24.0 \n",
"5 4.3 20.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.8 24.0 \n",
"11 7.4 33.0 \n",
"12 4.3 46.0 \n",
"13 5.0 12.0 \n",
"14 2.6 4.0 \n",
"15 4.4 3.0 \n",
"16 2.6 13.0 \n",
"17 7.1 0.0 \n",
"18 2.0 9.0 \n",
"19 2.6 37.0 \n",
"20 5.6 9.0 \n",
"21 7.5 11.0 \n",
"22 1.9 10.0 \n",
"23 6.4 17.0 \n",
"24 8.1 14.0 \n",
"25 2.5 10.0 \n",
"26 6.0 10.0 \n",
"27 5.7 34.0 \n",
"28 6.1 10.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 1.00 15.4 \n",
"1 0.64 12.3 \n",
"2 0.83 14.4 \n",
"3 0.70 12.9 \n",
"4 1.37 15.6 \n",
"5 1.00 12.5 \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.20 17.2 \n",
"11 1.65 16.1 \n",
"12 2.30 17.4 \n",
"13 0.92 15.1 \n",
"14 0.80 16.5 \n",
"15 0.25 12.6 \n",
"16 0.65 13.8 \n",
"17 0.00 9.0 \n",
"18 1.38 17.8 \n",
"19 1.86 18.0 \n",
"20 1.00 14.5 \n",
"21 0.73 14.2 \n",
"22 0.50 13.8 \n",
"23 0.85 14.1 \n",
"24 2.02 19.9 \n",
"25 0.74 15.1 \n",
"26 0.77 15.1 \n",
"27 2.00 18.9 \n",
"28 0.50 10.7 \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>49.1</td>\n",
" <td>20.0</td>\n",
" <td>220.0</td>\n",
" <td>1800.0</td>\n",
" <td>38.0</td>\n",
" <td>27.0</td>\n",
" <td>6.0</td>\n",
" <td>8.0</td>\n",
" <td>...</td>\n",
" <td>248.0</td>\n",
" <td>207.0</td>\n",
" <td>28.0</td>\n",
" <td>6.0</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>1175.0</td>\n",
" <td>303.0</td>\n",
" <td>248.0</td>\n",
" <td>55.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Bologna</td>\n",
" <td>24.0</td>\n",
" <td>52.6</td>\n",
" <td>20.0</td>\n",
" <td>220.0</td>\n",
" <td>1800.0</td>\n",
" <td>25.0</td>\n",
" <td>19.0</td>\n",
" <td>3.0</td>\n",
" <td>3.0</td>\n",
" <td>...</td>\n",
" <td>242.0</td>\n",
" <td>238.0</td>\n",
" <td>41.0</td>\n",
" <td>3.0</td>\n",
" <td>5.0</td>\n",
" <td>2.0</td>\n",
" <td>1104.0</td>\n",
" <td>180.0</td>\n",
" <td>224.0</td>\n",
" <td>44.6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>Cremonese</td>\n",
" <td>29.0</td>\n",
" <td>43.6</td>\n",
" <td>20.0</td>\n",
" <td>220.0</td>\n",
" <td>1800.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>264.0</td>\n",
" <td>204.0</td>\n",
" <td>44.0</td>\n",
" <td>3.0</td>\n",
" <td>4.0</td>\n",
" <td>1.0</td>\n",
" <td>1087.0</td>\n",
" <td>273.0</td>\n",
" <td>367.0</td>\n",
" <td>42.7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>Empoli</td>\n",
" <td>26.0</td>\n",
" <td>46.4</td>\n",
" <td>20.0</td>\n",
" <td>220.0</td>\n",
" <td>1800.0</td>\n",
" <td>19.0</td>\n",
" <td>11.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>234.0</td>\n",
" <td>246.0</td>\n",
" <td>27.0</td>\n",
" <td>0.0</td>\n",
" <td>3.0</td>\n",
" <td>0.0</td>\n",
" <td>954.0</td>\n",
" <td>203.0</td>\n",
" <td>231.0</td>\n",
" <td>46.8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Fiorentina</td>\n",
" <td>27.0</td>\n",
" <td>57.1</td>\n",
" <td>20.0</td>\n",
" <td>220.0</td>\n",
" <td>1800.0</td>\n",
" <td>22.0</td>\n",
" <td>17.0</td>\n",
" <td>2.0</td>\n",
" <td>4.0</td>\n",
" <td>...</td>\n",
" <td>261.0</td>\n",
" <td>260.0</td>\n",
" <td>27.0</td>\n",
" <td>2.0</td>\n",
" <td>2.0</td>\n",
" <td>1.0</td>\n",
" <td>1066.0</td>\n",
" <td>302.0</td>\n",
" <td>261.0</td>\n",
" <td>53.6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>Hellas Verona</td>\n",
" <td>32.0</td>\n",
" <td>43.5</td>\n",
" <td>20.0</td>\n",
" <td>220.0</td>\n",
" <td>1800.0</td>\n",
" <td>16.0</td>\n",
" <td>13.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>296.0</td>\n",
" <td>193.0</td>\n",
" <td>45.0</td>\n",
" <td>0.0</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>1202.0</td>\n",
" <td>411.0</td>\n",
" <td>362.0</td>\n",
" <td>53.2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>Inter</td>\n",
" <td>23.0</td>\n",
" <td>53.6</td>\n",
" <td>20.0</td>\n",
" <td>220.0</td>\n",
" <td>1800.0</td>\n",
" <td>39.0</td>\n",
" <td>26.0</td>\n",
" <td>2.0</td>\n",
" <td>2.0</td>\n",
" <td>...</td>\n",
" <td>245.0</td>\n",
" <td>236.0</td>\n",
" <td>35.0</td>\n",
" <td>1.0</td>\n",
" <td>2.0</td>\n",
" <td>2.0</td>\n",
" <td>1014.0</td>\n",
" <td>251.0</td>\n",
" <td>204.0</td>\n",
" <td>55.2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>Juventus</td>\n",
" <td>26.0</td>\n",
" <td>49.4</td>\n",
" <td>20.0</td>\n",
" <td>220.0</td>\n",
" <td>1800.0</td>\n",
" <td>30.0</td>\n",
" <td>23.0</td>\n",
" <td>2.0</td>\n",
" <td>3.0</td>\n",
" <td>...</td>\n",
" <td>239.0</td>\n",
" <td>208.0</td>\n",
" <td>30.0</td>\n",
" <td>3.0</td>\n",
" <td>2.0</td>\n",
" <td>0.0</td>\n",
" <td>1030.0</td>\n",
" <td>247.0</td>\n",
" <td>240.0</td>\n",
" <td>50.7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>Lazio</td>\n",
" <td>21.0</td>\n",
" <td>50.9</td>\n",
" <td>20.0</td>\n",
" <td>220.0</td>\n",
" <td>1800.0</td>\n",
" <td>35.0</td>\n",
" <td>25.0</td>\n",
" <td>3.0</td>\n",
" <td>4.0</td>\n",
" <td>...</td>\n",
" <td>206.0</td>\n",
" <td>266.0</td>\n",
" <td>27.0</td>\n",
" <td>2.0</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>1035.0</td>\n",
" <td>193.0</td>\n",
" <td>196.0</td>\n",
" <td>49.6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>Lecce</td>\n",
" <td>26.0</td>\n",
" <td>42.5</td>\n",
" <td>20.0</td>\n",
" <td>220.0</td>\n",
" <td>1800.0</td>\n",
" <td>18.0</td>\n",
" <td>12.0</td>\n",
" <td>1.0</td>\n",
" <td>2.0</td>\n",
" <td>...</td>\n",
" <td>283.0</td>\n",
" <td>254.0</td>\n",
" <td>36.0</td>\n",
" <td>2.0</td>\n",
" <td>3.0</td>\n",
" <td>1.0</td>\n",
" <td>1097.0</td>\n",
" <td>295.0</td>\n",
" <td>373.0</td>\n",
" <td>44.2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>Milan</td>\n",
" <td>27.0</td>\n",
" <td>54.8</td>\n",
" <td>20.0</td>\n",
" <td>220.0</td>\n",
" <td>1800.0</td>\n",
" <td>35.0</td>\n",
" <td>30.0</td>\n",
" <td>2.0</td>\n",
" <td>2.0</td>\n",
" <td>...</td>\n",
" <td>249.0</td>\n",
" <td>231.0</td>\n",
" <td>35.0</td>\n",
" <td>1.0</td>\n",
" <td>4.0</td>\n",
" <td>1.0</td>\n",
" <td>1072.0</td>\n",
" <td>288.0</td>\n",
" <td>234.0</td>\n",
" <td>55.2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>Monza</td>\n",
" <td>29.0</td>\n",
" <td>55.1</td>\n",
" <td>20.0</td>\n",
" <td>220.0</td>\n",
" <td>1800.0</td>\n",
" <td>24.0</td>\n",
" <td>15.0</td>\n",
" <td>3.0</td>\n",
" <td>3.0</td>\n",
" <td>...</td>\n",
" <td>258.0</td>\n",
" <td>273.0</td>\n",
" <td>40.0</td>\n",
" <td>3.0</td>\n",
" <td>0.0</td>\n",
" <td>1.0</td>\n",
" <td>966.0</td>\n",
" <td>225.0</td>\n",
" <td>214.0</td>\n",
" <td>51.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>Napoli</td>\n",
" <td>24.0</td>\n",
" <td>61.0</td>\n",
" <td>20.0</td>\n",
" <td>220.0</td>\n",
" <td>1800.0</td>\n",
" <td>48.0</td>\n",
" <td>39.0</td>\n",
" <td>4.0</td>\n",
" <td>5.0</td>\n",
" <td>...</td>\n",
" <td>187.0</td>\n",
" <td>254.0</td>\n",
" <td>33.0</td>\n",
" <td>4.0</td>\n",
" <td>2.0</td>\n",
" <td>0.0</td>\n",
" <td>1079.0</td>\n",
" <td>244.0</td>\n",
" <td>210.0</td>\n",
" <td>53.7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>Roma</td>\n",
" <td>25.0</td>\n",
" <td>49.1</td>\n",
" <td>20.0</td>\n",
" <td>220.0</td>\n",
" <td>1800.0</td>\n",
" <td>26.0</td>\n",
" <td>17.0</td>\n",
" <td>3.0</td>\n",
" <td>5.0</td>\n",
" <td>...</td>\n",
" <td>243.0</td>\n",
" <td>257.0</td>\n",
" <td>32.0</td>\n",
" <td>4.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>1063.0</td>\n",
" <td>234.0</td>\n",
" <td>197.0</td>\n",
" <td>54.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>Salernitana</td>\n",
" <td>28.0</td>\n",
" <td>44.8</td>\n",
" <td>20.0</td>\n",
" <td>220.0</td>\n",
" <td>1800.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>242.0</td>\n",
" <td>207.0</td>\n",
" <td>42.0</td>\n",
" <td>0.0</td>\n",
" <td>7.0</td>\n",
" <td>0.0</td>\n",
" <td>1034.0</td>\n",
" <td>240.0</td>\n",
" <td>258.0</td>\n",
" <td>48.2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>Sampdoria</td>\n",
" <td>30.0</td>\n",
" <td>48.9</td>\n",
" <td>20.0</td>\n",
" <td>220.0</td>\n",
" <td>1800.0</td>\n",
" <td>8.0</td>\n",
" <td>7.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>289.0</td>\n",
" <td>307.0</td>\n",
" <td>40.0</td>\n",
" <td>0.0</td>\n",
" <td>5.0</td>\n",
" <td>2.0</td>\n",
" <td>1017.0</td>\n",
" <td>327.0</td>\n",
" <td>324.0</td>\n",
" <td>50.2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>Sassuolo</td>\n",
" <td>27.0</td>\n",
" <td>48.3</td>\n",
" <td>20.0</td>\n",
" <td>220.0</td>\n",
" <td>1800.0</td>\n",
" <td>23.0</td>\n",
" <td>17.0</td>\n",
" <td>4.0</td>\n",
" <td>5.0</td>\n",
" <td>...</td>\n",
" <td>207.0</td>\n",
" <td>247.0</td>\n",
" <td>19.0</td>\n",
" <td>4.0</td>\n",
" <td>4.0</td>\n",
" <td>0.0</td>\n",
" <td>909.0</td>\n",
" <td>183.0</td>\n",
" <td>229.0</td>\n",
" <td>44.4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>Spezia</td>\n",
" <td>30.0</td>\n",
" <td>46.7</td>\n",
" <td>20.0</td>\n",
" <td>220.0</td>\n",
" <td>1800.0</td>\n",
" <td>15.0</td>\n",
" <td>10.0</td>\n",
" <td>2.0</td>\n",
" <td>2.0</td>\n",
" <td>...</td>\n",
" <td>281.0</td>\n",
" <td>193.0</td>\n",
" <td>37.0</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>1136.0</td>\n",
" <td>281.0</td>\n",
" <td>322.0</td>\n",
" <td>46.6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>Torino</td>\n",
" <td>24.0</td>\n",
" <td>52.9</td>\n",
" <td>20.0</td>\n",
" <td>220.0</td>\n",
" <td>1800.0</td>\n",
" <td>21.0</td>\n",
" <td>16.0</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>...</td>\n",
" <td>286.0</td>\n",
" <td>207.0</td>\n",
" <td>47.0</td>\n",
" <td>1.0</td>\n",
" <td>4.0</td>\n",
" <td>0.0</td>\n",
" <td>1065.0</td>\n",
" <td>309.0</td>\n",
" <td>337.0</td>\n",
" <td>47.8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>Udinese</td>\n",
" <td>23.0</td>\n",
" <td>50.4</td>\n",
" <td>20.0</td>\n",
" <td>220.0</td>\n",
" <td>1800.0</td>\n",
" <td>27.0</td>\n",
" <td>23.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>243.0</td>\n",
" <td>248.0</td>\n",
" <td>33.0</td>\n",
" <td>0.0</td>\n",
" <td>2.0</td>\n",
" <td>1.0</td>\n",
" <td>1047.0</td>\n",
" <td>254.0</td>\n",
" <td>212.0</td>\n",
" <td>54.5</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>20 rows × 161 columns</p>\n",
"</div>"
],
"text/plain": [
" team players_used possession games games_starts minutes \\\n",
"0 Atalanta 24.0 49.1 20.0 220.0 1800.0 \n",
"1 Bologna 24.0 52.6 20.0 220.0 1800.0 \n",
"2 Cremonese 29.0 43.6 20.0 220.0 1800.0 \n",
"3 Empoli 26.0 46.4 20.0 220.0 1800.0 \n",
"4 Fiorentina 27.0 57.1 20.0 220.0 1800.0 \n",
"5 Hellas Verona 32.0 43.5 20.0 220.0 1800.0 \n",
"6 Inter 23.0 53.6 20.0 220.0 1800.0 \n",
"7 Juventus 26.0 49.4 20.0 220.0 1800.0 \n",
"8 Lazio 21.0 50.9 20.0 220.0 1800.0 \n",
"9 Lecce 26.0 42.5 20.0 220.0 1800.0 \n",
"10 Milan 27.0 54.8 20.0 220.0 1800.0 \n",
"11 Monza 29.0 55.1 20.0 220.0 1800.0 \n",
"12 Napoli 24.0 61.0 20.0 220.0 1800.0 \n",
"13 Roma 25.0 49.1 20.0 220.0 1800.0 \n",
"14 Salernitana 28.0 44.8 20.0 220.0 1800.0 \n",
"15 Sampdoria 30.0 48.9 20.0 220.0 1800.0 \n",
"16 Sassuolo 27.0 48.3 20.0 220.0 1800.0 \n",
"17 Spezia 30.0 46.7 20.0 220.0 1800.0 \n",
"18 Torino 24.0 52.9 20.0 220.0 1800.0 \n",
"19 Udinese 23.0 50.4 20.0 220.0 1800.0 \n",
"\n",
" goals assists pens_made pens_att ... fouls fouled offsides \\\n",
"0 38.0 27.0 6.0 8.0 ... 248.0 207.0 28.0 \n",
"1 25.0 19.0 3.0 3.0 ... 242.0 238.0 41.0 \n",
"2 15.0 7.0 2.0 4.0 ... 264.0 204.0 44.0 \n",
"3 19.0 11.0 0.0 0.0 ... 234.0 246.0 27.0 \n",
"4 22.0 17.0 2.0 4.0 ... 261.0 260.0 27.0 \n",
"5 16.0 13.0 0.0 0.0 ... 296.0 193.0 45.0 \n",
"6 39.0 26.0 2.0 2.0 ... 245.0 236.0 35.0 \n",
"7 30.0 23.0 2.0 3.0 ... 239.0 208.0 30.0 \n",
"8 35.0 25.0 3.0 4.0 ... 206.0 266.0 27.0 \n",
"9 18.0 12.0 1.0 2.0 ... 283.0 254.0 36.0 \n",
"10 35.0 30.0 2.0 2.0 ... 249.0 231.0 35.0 \n",
"11 24.0 15.0 3.0 3.0 ... 258.0 273.0 40.0 \n",
"12 48.0 39.0 4.0 5.0 ... 187.0 254.0 33.0 \n",
"13 26.0 17.0 3.0 5.0 ... 243.0 257.0 32.0 \n",
"14 24.0 16.0 1.0 1.0 ... 242.0 207.0 42.0 \n",
"15 8.0 7.0 0.0 0.0 ... 289.0 307.0 40.0 \n",
"16 23.0 17.0 4.0 5.0 ... 207.0 247.0 19.0 \n",
"17 15.0 10.0 2.0 2.0 ... 281.0 193.0 37.0 \n",
"18 21.0 16.0 1.0 1.0 ... 286.0 207.0 47.0 \n",
"19 27.0 23.0 0.0 0.0 ... 243.0 248.0 33.0 \n",
"\n",
" pens_won pens_conceded own_goals ball_recoveries aerials_won \\\n",
"0 6.0 1.0 1.0 1175.0 303.0 \n",
"1 3.0 5.0 2.0 1104.0 180.0 \n",
"2 3.0 4.0 1.0 1087.0 273.0 \n",
"3 0.0 3.0 0.0 954.0 203.0 \n",
"4 2.0 2.0 1.0 1066.0 302.0 \n",
"5 0.0 1.0 1.0 1202.0 411.0 \n",
"6 1.0 2.0 2.0 1014.0 251.0 \n",
"7 3.0 2.0 0.0 1030.0 247.0 \n",
"8 2.0 1.0 0.0 1035.0 193.0 \n",
"9 2.0 3.0 1.0 1097.0 295.0 \n",
"10 1.0 4.0 1.0 1072.0 288.0 \n",
"11 3.0 0.0 1.0 966.0 225.0 \n",
"12 4.0 2.0 0.0 1079.0 244.0 \n",
"13 4.0 0.0 0.0 1063.0 234.0 \n",
"14 0.0 7.0 0.0 1034.0 240.0 \n",
"15 0.0 5.0 2.0 1017.0 327.0 \n",
"16 4.0 4.0 0.0 909.0 183.0 \n",
"17 1.0 1.0 0.0 1136.0 281.0 \n",
"18 1.0 4.0 0.0 1065.0 309.0 \n",
"19 0.0 2.0 1.0 1047.0 254.0 \n",
"\n",
" aerials_lost aerials_won_pct \n",
"0 248.0 55.0 \n",
"1 224.0 44.6 \n",
"2 367.0 42.7 \n",
"3 231.0 46.8 \n",
"4 261.0 53.6 \n",
"5 362.0 53.2 \n",
"6 204.0 55.2 \n",
"7 240.0 50.7 \n",
"8 196.0 49.6 \n",
"9 373.0 44.2 \n",
"10 234.0 55.2 \n",
"11 214.0 51.3 \n",
"12 210.0 53.7 \n",
"13 197.0 54.3 \n",
"14 258.0 48.2 \n",
"15 324.0 50.2 \n",
"16 229.0 44.4 \n",
"17 322.0 46.6 \n",
"18 337.0 47.8 \n",
"19 212.0 54.5 \n",
"\n",
"[20 rows x 161 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.0</td>\n",
" <td>20.0</td>\n",
" <td>220.0</td>\n",
" <td>1800.0</td>\n",
" <td>22.0</td>\n",
" <td>16.0</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>...</td>\n",
" <td>220.0</td>\n",
" <td>232.0</td>\n",
" <td>26.0</td>\n",
" <td>1.0</td>\n",
" <td>8.0</td>\n",
" <td>1.0</td>\n",
" <td>1214.0</td>\n",
" <td>248.0</td>\n",
" <td>303.0</td>\n",
" <td>45.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>vs Bologna</td>\n",
" <td>24.0</td>\n",
" <td>47.4</td>\n",
" <td>20.0</td>\n",
" <td>220.0</td>\n",
" <td>1800.0</td>\n",
" <td>28.0</td>\n",
" <td>16.0</td>\n",
" <td>5.0</td>\n",
" <td>5.0</td>\n",
" <td>...</td>\n",
" <td>252.0</td>\n",
" <td>229.0</td>\n",
" <td>33.0</td>\n",
" <td>3.0</td>\n",
" <td>3.0</td>\n",
" <td>1.0</td>\n",
" <td>1081.0</td>\n",
" <td>224.0</td>\n",
" <td>180.0</td>\n",
" <td>55.4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>vs Cremonese</td>\n",
" <td>29.0</td>\n",
" <td>56.5</td>\n",
" <td>20.0</td>\n",
" <td>220.0</td>\n",
" <td>1800.0</td>\n",
" <td>34.0</td>\n",
" <td>21.0</td>\n",
" <td>4.0</td>\n",
" <td>4.0</td>\n",
" <td>...</td>\n",
" <td>217.0</td>\n",
" <td>254.0</td>\n",
" <td>32.0</td>\n",
" <td>3.0</td>\n",
" <td>4.0</td>\n",
" <td>0.0</td>\n",
" <td>1106.0</td>\n",
" <td>367.0</td>\n",
" <td>273.0</td>\n",
" <td>57.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>vs Empoli</td>\n",
" <td>26.0</td>\n",
" <td>53.7</td>\n",
" <td>20.0</td>\n",
" <td>220.0</td>\n",
" <td>1800.0</td>\n",
" <td>24.0</td>\n",
" <td>18.0</td>\n",
" <td>1.0</td>\n",
" <td>3.0</td>\n",
" <td>...</td>\n",
" <td>260.0</td>\n",
" <td>226.0</td>\n",
" <td>32.0</td>\n",
" <td>2.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>1062.0</td>\n",
" <td>231.0</td>\n",
" <td>203.0</td>\n",
" <td>53.2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>vs Fiorentina</td>\n",
" <td>27.0</td>\n",
" <td>42.9</td>\n",
" <td>20.0</td>\n",
" <td>220.0</td>\n",
" <td>1800.0</td>\n",
" <td>25.0</td>\n",
" <td>18.0</td>\n",
" <td>2.0</td>\n",
" <td>2.0</td>\n",
" <td>...</td>\n",
" <td>271.0</td>\n",
" <td>243.0</td>\n",
" <td>53.0</td>\n",
" <td>1.0</td>\n",
" <td>4.0</td>\n",
" <td>0.0</td>\n",
" <td>1005.0</td>\n",
" <td>261.0</td>\n",
" <td>302.0</td>\n",
" <td>46.4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>vs Hellas Verona</td>\n",
" <td>32.0</td>\n",
" <td>56.6</td>\n",
" <td>20.0</td>\n",
" <td>220.0</td>\n",
" <td>1800.0</td>\n",
" <td>31.0</td>\n",
" <td>29.0</td>\n",
" <td>0.0</td>\n",
" <td>1.0</td>\n",
" <td>...</td>\n",
" <td>201.0</td>\n",
" <td>286.0</td>\n",
" <td>22.0</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>2.0</td>\n",
" <td>1096.0</td>\n",
" <td>362.0</td>\n",
" <td>411.0</td>\n",
" <td>46.8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>vs Inter</td>\n",
" <td>23.0</td>\n",
" <td>46.5</td>\n",
" <td>20.0</td>\n",
" <td>220.0</td>\n",
" <td>1800.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>249.0</td>\n",
" <td>224.0</td>\n",
" <td>18.0</td>\n",
" <td>2.0</td>\n",
" <td>2.0</td>\n",
" <td>1.0</td>\n",
" <td>914.0</td>\n",
" <td>204.0</td>\n",
" <td>251.0</td>\n",
" <td>44.8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>vs Juventus</td>\n",
" <td>26.0</td>\n",
" <td>50.7</td>\n",
" <td>20.0</td>\n",
" <td>220.0</td>\n",
" <td>1800.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>220.0</td>\n",
" <td>221.0</td>\n",
" <td>27.0</td>\n",
" <td>0.0</td>\n",
" <td>3.0</td>\n",
" <td>0.0</td>\n",
" <td>1007.0</td>\n",
" <td>240.0</td>\n",
" <td>247.0</td>\n",
" <td>49.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>vs Lazio</td>\n",
" <td>21.0</td>\n",
" <td>49.2</td>\n",
" <td>20.0</td>\n",
" <td>220.0</td>\n",
" <td>1800.0</td>\n",
" <td>16.0</td>\n",
" <td>11.0</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>...</td>\n",
" <td>278.0</td>\n",
" <td>196.0</td>\n",
" <td>44.0</td>\n",
" <td>1.0</td>\n",
" <td>4.0</td>\n",
" <td>1.0</td>\n",
" <td>1085.0</td>\n",
" <td>196.0</td>\n",
" <td>193.0</td>\n",
" <td>50.4</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>20.0</td>\n",
" <td>220.0</td>\n",
" <td>1800.0</td>\n",
" <td>23.0</td>\n",
" <td>16.0</td>\n",
" <td>3.0</td>\n",
" <td>3.0</td>\n",
" <td>...</td>\n",
" <td>263.0</td>\n",
" <td>265.0</td>\n",
" <td>43.0</td>\n",
" <td>3.0</td>\n",
" <td>2.0</td>\n",
" <td>1.0</td>\n",
" <td>1072.0</td>\n",
" <td>373.0</td>\n",
" <td>295.0</td>\n",
" <td>55.8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>vs Milan</td>\n",
" <td>27.0</td>\n",
" <td>45.2</td>\n",
" <td>20.0</td>\n",
" <td>220.0</td>\n",
" <td>1800.0</td>\n",
" <td>28.0</td>\n",
" <td>21.0</td>\n",
" <td>3.0</td>\n",
" <td>4.0</td>\n",
" <td>...</td>\n",
" <td>242.0</td>\n",
" <td>237.0</td>\n",
" <td>23.0</td>\n",
" <td>4.0</td>\n",
" <td>2.0</td>\n",
" <td>2.0</td>\n",
" <td>1005.0</td>\n",
" <td>234.0</td>\n",
" <td>288.0</td>\n",
" <td>44.8</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>20.0</td>\n",
" <td>220.0</td>\n",
" <td>1800.0</td>\n",
" <td>27.0</td>\n",
" <td>21.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>291.0</td>\n",
" <td>251.0</td>\n",
" <td>37.0</td>\n",
" <td>0.0</td>\n",
" <td>3.0</td>\n",
" <td>1.0</td>\n",
" <td>1023.0</td>\n",
" <td>214.0</td>\n",
" <td>225.0</td>\n",
" <td>48.7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>vs Napoli</td>\n",
" <td>24.0</td>\n",
" <td>39.0</td>\n",
" <td>20.0</td>\n",
" <td>220.0</td>\n",
" <td>1800.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>272.0</td>\n",
" <td>174.0</td>\n",
" <td>27.0</td>\n",
" <td>1.0</td>\n",
" <td>4.0</td>\n",
" <td>0.0</td>\n",
" <td>995.0</td>\n",
" <td>210.0</td>\n",
" <td>244.0</td>\n",
" <td>46.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>vs Roma</td>\n",
" <td>25.0</td>\n",
" <td>50.9</td>\n",
" <td>20.0</td>\n",
" <td>220.0</td>\n",
" <td>1800.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>274.0</td>\n",
" <td>228.0</td>\n",
" <td>10.0</td>\n",
" <td>0.0</td>\n",
" <td>5.0</td>\n",
" <td>0.0</td>\n",
" <td>1048.0</td>\n",
" <td>197.0</td>\n",
" <td>234.0</td>\n",
" <td>45.7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>vs Salernitana</td>\n",
" <td>28.0</td>\n",
" <td>55.3</td>\n",
" <td>20.0</td>\n",
" <td>220.0</td>\n",
" <td>1800.0</td>\n",
" <td>38.0</td>\n",
" <td>23.0</td>\n",
" <td>4.0</td>\n",
" <td>7.0</td>\n",
" <td>...</td>\n",
" <td>226.0</td>\n",
" <td>233.0</td>\n",
" <td>49.0</td>\n",
" <td>7.0</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>1084.0</td>\n",
" <td>258.0</td>\n",
" <td>240.0</td>\n",
" <td>51.8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>vs Sampdoria</td>\n",
" <td>30.0</td>\n",
" <td>51.1</td>\n",
" <td>20.0</td>\n",
" <td>220.0</td>\n",
" <td>1800.0</td>\n",
" <td>32.0</td>\n",
" <td>23.0</td>\n",
" <td>4.0</td>\n",
" <td>6.0</td>\n",
" <td>...</td>\n",
" <td>316.0</td>\n",
" <td>277.0</td>\n",
" <td>56.0</td>\n",
" <td>3.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>1075.0</td>\n",
" <td>324.0</td>\n",
" <td>327.0</td>\n",
" <td>49.8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>vs Sassuolo</td>\n",
" <td>27.0</td>\n",
" <td>51.8</td>\n",
" <td>20.0</td>\n",
" <td>220.0</td>\n",
" <td>1800.0</td>\n",
" <td>31.0</td>\n",
" <td>22.0</td>\n",
" <td>4.0</td>\n",
" <td>4.0</td>\n",
" <td>...</td>\n",
" <td>262.0</td>\n",
" <td>190.0</td>\n",
" <td>67.0</td>\n",
" <td>2.0</td>\n",
" <td>5.0</td>\n",
" <td>0.0</td>\n",
" <td>1043.0</td>\n",
" <td>229.0</td>\n",
" <td>183.0</td>\n",
" <td>55.6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>vs Spezia</td>\n",
" <td>30.0</td>\n",
" <td>53.4</td>\n",
" <td>20.0</td>\n",
" <td>220.0</td>\n",
" <td>1800.0</td>\n",
" <td>32.0</td>\n",
" <td>27.0</td>\n",
" <td>0.0</td>\n",
" <td>1.0</td>\n",
" <td>...</td>\n",
" <td>207.0</td>\n",
" <td>261.0</td>\n",
" <td>46.0</td>\n",
" <td>1.0</td>\n",
" <td>2.0</td>\n",
" <td>2.0</td>\n",
" <td>1182.0</td>\n",
" <td>322.0</td>\n",
" <td>281.0</td>\n",
" <td>53.4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>vs Torino</td>\n",
" <td>24.0</td>\n",
" <td>47.2</td>\n",
" <td>20.0</td>\n",
" <td>220.0</td>\n",
" <td>1800.0</td>\n",
" <td>22.0</td>\n",
" <td>14.0</td>\n",
" <td>3.0</td>\n",
" <td>4.0</td>\n",
" <td>...</td>\n",
" <td>221.0</td>\n",
" <td>274.0</td>\n",
" <td>22.0</td>\n",
" <td>3.0</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>1045.0</td>\n",
" <td>337.0</td>\n",
" <td>309.0</td>\n",
" <td>52.2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>vs Udinese</td>\n",
" <td>23.0</td>\n",
" <td>49.7</td>\n",
" <td>20.0</td>\n",
" <td>220.0</td>\n",
" <td>1800.0</td>\n",
" <td>21.0</td>\n",
" <td>15.0</td>\n",
" <td>2.0</td>\n",
" <td>2.0</td>\n",
" <td>...</td>\n",
" <td>261.0</td>\n",
" <td>235.0</td>\n",
" <td>31.0</td>\n",
" <td>2.0</td>\n",
" <td>0.0</td>\n",
" <td>1.0</td>\n",
" <td>1010.0</td>\n",
" <td>212.0</td>\n",
" <td>254.0</td>\n",
" <td>45.5</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>20 rows × 161 columns</p>\n",
"</div>"
],
"text/plain": [
" team players_used possession games games_starts minutes \\\n",
"0 vs Atalanta 24.0 51.0 20.0 220.0 1800.0 \n",
"1 vs Bologna 24.0 47.4 20.0 220.0 1800.0 \n",
"2 vs Cremonese 29.0 56.5 20.0 220.0 1800.0 \n",
"3 vs Empoli 26.0 53.7 20.0 220.0 1800.0 \n",
"4 vs Fiorentina 27.0 42.9 20.0 220.0 1800.0 \n",
"5 vs Hellas Verona 32.0 56.6 20.0 220.0 1800.0 \n",
"6 vs Inter 23.0 46.5 20.0 220.0 1800.0 \n",
"7 vs Juventus 26.0 50.7 20.0 220.0 1800.0 \n",
"8 vs Lazio 21.0 49.2 20.0 220.0 1800.0 \n",
"9 vs Lecce 26.0 57.6 20.0 220.0 1800.0 \n",
"10 vs Milan 27.0 45.2 20.0 220.0 1800.0 \n",
"11 vs Monza 29.0 45.0 20.0 220.0 1800.0 \n",
"12 vs Napoli 24.0 39.0 20.0 220.0 1800.0 \n",
"13 vs Roma 25.0 50.9 20.0 220.0 1800.0 \n",
"14 vs Salernitana 28.0 55.3 20.0 220.0 1800.0 \n",
"15 vs Sampdoria 30.0 51.1 20.0 220.0 1800.0 \n",
"16 vs Sassuolo 27.0 51.8 20.0 220.0 1800.0 \n",
"17 vs Spezia 30.0 53.4 20.0 220.0 1800.0 \n",
"18 vs Torino 24.0 47.2 20.0 220.0 1800.0 \n",
"19 vs Udinese 23.0 49.7 20.0 220.0 1800.0 \n",
"\n",
" goals assists pens_made pens_att ... fouls fouled offsides \\\n",
"0 22.0 16.0 1.0 1.0 ... 220.0 232.0 26.0 \n",
"1 28.0 16.0 5.0 5.0 ... 252.0 229.0 33.0 \n",
"2 34.0 21.0 4.0 4.0 ... 217.0 254.0 32.0 \n",
"3 24.0 18.0 1.0 3.0 ... 260.0 226.0 32.0 \n",
"4 25.0 18.0 2.0 2.0 ... 271.0 243.0 53.0 \n",
"5 31.0 29.0 0.0 1.0 ... 201.0 286.0 22.0 \n",
"6 24.0 21.0 2.0 2.0 ... 249.0 224.0 18.0 \n",
"7 17.0 14.0 1.0 2.0 ... 220.0 221.0 27.0 \n",
"8 16.0 11.0 1.0 1.0 ... 278.0 196.0 44.0 \n",
"9 23.0 16.0 3.0 3.0 ... 263.0 265.0 43.0 \n",
"10 28.0 21.0 3.0 4.0 ... 242.0 237.0 23.0 \n",
"11 27.0 21.0 0.0 0.0 ... 291.0 251.0 37.0 \n",
"12 15.0 10.0 1.0 2.0 ... 272.0 174.0 27.0 \n",
"13 18.0 14.0 0.0 0.0 ... 274.0 228.0 10.0 \n",
"14 38.0 23.0 4.0 7.0 ... 226.0 233.0 49.0 \n",
"15 32.0 23.0 4.0 6.0 ... 316.0 277.0 56.0 \n",
"16 31.0 22.0 4.0 4.0 ... 262.0 190.0 67.0 \n",
"17 32.0 27.0 0.0 1.0 ... 207.0 261.0 46.0 \n",
"18 22.0 14.0 3.0 4.0 ... 221.0 274.0 22.0 \n",
"19 21.0 15.0 2.0 2.0 ... 261.0 235.0 31.0 \n",
"\n",
" pens_won pens_conceded own_goals ball_recoveries aerials_won \\\n",
"0 1.0 8.0 1.0 1214.0 248.0 \n",
"1 3.0 3.0 1.0 1081.0 224.0 \n",
"2 3.0 4.0 0.0 1106.0 367.0 \n",
"3 2.0 0.0 0.0 1062.0 231.0 \n",
"4 1.0 4.0 0.0 1005.0 261.0 \n",
"5 1.0 0.0 2.0 1096.0 362.0 \n",
"6 2.0 2.0 1.0 914.0 204.0 \n",
"7 0.0 3.0 0.0 1007.0 240.0 \n",
"8 1.0 4.0 1.0 1085.0 196.0 \n",
"9 3.0 2.0 1.0 1072.0 373.0 \n",
"10 4.0 2.0 2.0 1005.0 234.0 \n",
"11 0.0 3.0 1.0 1023.0 214.0 \n",
"12 1.0 4.0 0.0 995.0 210.0 \n",
"13 0.0 5.0 0.0 1048.0 197.0 \n",
"14 7.0 1.0 1.0 1084.0 258.0 \n",
"15 3.0 0.0 0.0 1075.0 324.0 \n",
"16 2.0 5.0 0.0 1043.0 229.0 \n",
"17 1.0 2.0 2.0 1182.0 322.0 \n",
"18 3.0 1.0 0.0 1045.0 337.0 \n",
"19 2.0 0.0 1.0 1010.0 212.0 \n",
"\n",
" aerials_lost aerials_won_pct \n",
"0 303.0 45.0 \n",
"1 180.0 55.4 \n",
"2 273.0 57.3 \n",
"3 203.0 53.2 \n",
"4 302.0 46.4 \n",
"5 411.0 46.8 \n",
"6 251.0 44.8 \n",
"7 247.0 49.3 \n",
"8 193.0 50.4 \n",
"9 295.0 55.8 \n",
"10 288.0 44.8 \n",
"11 225.0 48.7 \n",
"12 244.0 46.3 \n",
"13 234.0 45.7 \n",
"14 240.0 51.8 \n",
"15 327.0 49.8 \n",
"16 183.0 55.6 \n",
"17 281.0 53.4 \n",
"18 309.0 52.2 \n",
"19 254.0 45.5 \n",
"\n",
"[20 rows x 161 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": 7,
"id": "11e51337",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Outfield player columns\n",
"['player' 'nationality' 'position' 'team' 'age' 'birth_year' 'games'\n",
" 'games_starts' 'minutes' 'goals' 'assists' 'pens_made' 'pens_att'\n",
" 'cards_yellow' 'cards_red' 'goals_per90' 'assists_per90'\n",
" 'goals_assists_per90' 'goals_pens_per90' 'goals_assists_pens_per90' 'xg'\n",
" 'npxg' 'xg_per90' 'npxg_per90' 'minutes_90s' 'shots_on_target'\n",
" 'shots_free_kicks' 'shots_on_target_pct' 'shots_on_target_per90'\n",
" 'goals_per_shot' 'goals_per_shot_on_target' 'npxg_per_shot' 'xg_net'\n",
" 'npxg_net' 'passes_completed' 'passes' 'passes_pct'\n",
" 'passes_total_distance' 'passes_progressive_distance'\n",
" 'passes_completed_short' 'passes_short' 'passes_pct_short'\n",
" 'passes_completed_medium' 'passes_medium' 'passes_pct_medium'\n",
" 'passes_completed_long' 'passes_long' 'passes_pct_long' 'assisted_shots'\n",
" 'passes_into_final_third' 'passes_into_penalty_area'\n",
" 'crosses_into_penalty_area' 'progressive_passes' 'passes_live'\n",
" 'passes_dead' 'passes_free_kicks' 'through_balls' 'passes_switches'\n",
" 'crosses' 'corner_kicks' 'corner_kicks_in' 'corner_kicks_out'\n",
" 'corner_kicks_straight' 'throw_ins' 'passes_offsides' 'passes_blocked'\n",
" 'sca' 'sca_per90' 'sca_passes_live' 'sca_passes_dead' 'sca_dribbles'\n",
" 'sca_shots' 'sca_fouled' 'gca' 'gca_per90' 'gca_passes_live'\n",
" 'gca_passes_dead' 'gca_dribbles' 'gca_shots' 'gca_fouled' 'gca_defense'\n",
" 'tackles' 'tackles_won' 'tackles_def_3rd' 'tackles_mid_3rd'\n",
" 'tackles_att_3rd' 'dribble_tackles' 'dribbles_vs' 'dribble_tackles_pct'\n",
" 'dribbled_past' 'blocks' 'blocked_shots' 'blocked_passes' 'interceptions'\n",
" 'clearances' 'errors' 'touches' 'touches_def_pen_area' 'touches_def_3rd'\n",
" 'touches_mid_3rd' 'touches_att_3rd' 'touches_att_pen_area'\n",
" 'touches_live_ball' 'dribbles_completed' 'dribbles'\n",
" 'dribbles_completed_pct' 'carries' 'progressive_carries'\n",
" 'carries_into_final_third' 'carries_into_penalty_area' 'passes_received'\n",
" 'miscontrols' 'dispossessed' 'cards_yellow_red' 'fouls' 'fouled'\n",
" 'offsides' 'pens_won' 'pens_conceded' 'own_goals' 'ball_recoveries'\n",
" 'aerials_won' 'aerials_lost' 'aerials_won_pct']\n",
"Keeper player columns\n",
"['player' 'nationality' 'position' 'team' 'age' 'birth_year' 'gk_games'\n",
" 'gk_games_starts' 'gk_minutes' 'gk_goals_against'\n",
" 'gk_goals_against_per90' 'gk_shots_on_target_against' 'gk_saves'\n",
" 'gk_save_pct' 'gk_wins' 'gk_ties' 'gk_losses' 'gk_clean_sheets'\n",
" 'gk_clean_sheets_pct' 'gk_pens_att' 'gk_pens_allowed' 'gk_pens_saved'\n",
" 'gk_pens_missed' 'minutes_90s' 'gk_free_kick_goals_against'\n",
" 'gk_corner_kick_goals_against' 'gk_own_goals_against' 'gk_psxg'\n",
" 'gk_psnpxg_per_shot_on_target_against' 'gk_psxg_net' 'gk_psxg_net_per90'\n",
" 'gk_passes_completed_launched' 'gk_passes_launched'\n",
" 'gk_passes_pct_launched' 'gk_passes' 'gk_passes_throws'\n",
" 'gk_pct_passes_launched' 'gk_passes_length_avg' 'gk_goal_kicks'\n",
" 'gk_pct_goal_kicks_launched' 'gk_goal_kick_length_avg' 'gk_crosses'\n",
" 'gk_crosses_stopped' 'gk_crosses_stopped_pct'\n",
" 'gk_def_actions_outside_pen_area' 'gk_def_actions_outside_pen_area_per90'\n",
" 'gk_avg_distance_def_actions']\n",
"Team columns\n",
"['team' 'players_used' 'possession' 'games' 'games_starts' 'minutes'\n",
" 'goals' 'assists' 'pens_made' 'pens_att' 'cards_yellow' 'cards_red'\n",
" 'goals_per90' 'assists_per90' 'goals_assists_per90' 'goals_pens_per90'\n",
" 'goals_assists_pens_per90' 'xg' 'npxg' 'xg_per90' 'npxg_per90' 'gk_games'\n",
" 'gk_games_starts' 'gk_minutes' 'gk_goals_against'\n",
" 'gk_goals_against_per90' 'gk_shots_on_target_against' 'gk_saves'\n",
" 'gk_save_pct' 'gk_wins' 'gk_ties' 'gk_losses' 'gk_clean_sheets'\n",
" 'gk_clean_sheets_pct' 'gk_pens_att' 'gk_pens_allowed' 'gk_pens_saved'\n",
" 'gk_pens_missed' 'minutes_90s' 'gk_free_kick_goals_against'\n",
" 'gk_corner_kick_goals_against' 'gk_own_goals_against' 'gk_psxg'\n",
" 'gk_psnpxg_per_shot_on_target_against' 'gk_psxg_net' 'gk_psxg_net_per90'\n",
" 'gk_passes_completed_launched' 'gk_passes_launched'\n",
" 'gk_passes_pct_launched' 'gk_passes' 'gk_passes_throws'\n",
" 'gk_pct_passes_launched' 'gk_passes_length_avg' 'gk_goal_kicks'\n",
" 'gk_pct_goal_kicks_launched' 'gk_goal_kick_length_avg' 'gk_crosses'\n",
" 'gk_crosses_stopped' 'gk_crosses_stopped_pct'\n",
" 'gk_def_actions_outside_pen_area' 'gk_def_actions_outside_pen_area_per90'\n",
" 'gk_avg_distance_def_actions' 'shots_on_target' 'shots_free_kicks'\n",
" 'shots_on_target_pct' 'shots_on_target_per90' 'goals_per_shot'\n",
" 'goals_per_shot_on_target' 'npxg_per_shot' 'xg_net' 'npxg_net'\n",
" 'passes_completed' 'passes' 'passes_pct' 'passes_total_distance'\n",
" 'passes_progressive_distance' 'passes_completed_short' 'passes_short'\n",
" 'passes_pct_short' 'passes_completed_medium' 'passes_medium'\n",
" 'passes_pct_medium' 'passes_completed_long' 'passes_long'\n",
" 'passes_pct_long' 'assisted_shots' 'passes_into_final_third'\n",
" 'passes_into_penalty_area' 'crosses_into_penalty_area'\n",
" 'progressive_passes' 'passes_live' 'passes_dead' 'passes_free_kicks'\n",
" 'through_balls' 'passes_switches' 'crosses' 'corner_kicks'\n",
" 'corner_kicks_in' 'corner_kicks_out' 'corner_kicks_straight' 'throw_ins'\n",
" 'passes_offsides' 'passes_blocked' 'sca' 'sca_per90' 'sca_passes_live'\n",
" 'sca_passes_dead' 'sca_dribbles' 'sca_shots' 'sca_fouled' 'gca'\n",
" 'gca_per90' 'gca_passes_live' 'gca_passes_dead' 'gca_dribbles'\n",
" 'gca_shots' 'gca_fouled' 'gca_defense' 'tackles' 'tackles_won'\n",
" 'tackles_def_3rd' 'tackles_mid_3rd' 'tackles_att_3rd' 'dribble_tackles'\n",
" 'dribbles_vs' 'dribble_tackles_pct' 'dribbled_past' 'blocks'\n",
" 'blocked_shots' 'blocked_passes' 'interceptions' 'clearances' 'errors'\n",
" 'touches' 'touches_def_pen_area' 'touches_def_3rd' 'touches_mid_3rd'\n",
" 'touches_att_3rd' 'touches_att_pen_area' 'touches_live_ball'\n",
" 'dribbles_completed' 'dribbles' 'dribbles_completed_pct' 'carries'\n",
" 'progressive_carries' 'carries_into_final_third'\n",
" 'carries_into_penalty_area' 'passes_received' 'miscontrols'\n",
" 'dispossessed' 'cards_yellow_red' 'fouls' 'fouled' 'offsides' 'pens_won'\n",
" 'pens_conceded' 'own_goals' 'ball_recoveries' 'aerials_won'\n",
" 'aerials_lost' 'aerials_won_pct']\n",
"Vs Team columns\n",
"['team' 'players_used' 'possession' 'games' 'games_starts' 'minutes'\n",
" 'goals' 'assists' 'pens_made' 'pens_att' 'cards_yellow' 'cards_red'\n",
" 'goals_per90' 'assists_per90' 'goals_assists_per90' 'goals_pens_per90'\n",
" 'goals_assists_pens_per90' 'xg' 'npxg' 'xg_per90' 'npxg_per90' 'gk_games'\n",
" 'gk_games_starts' 'gk_minutes' 'gk_goals_against'\n",
" 'gk_goals_against_per90' 'gk_shots_on_target_against' 'gk_saves'\n",
" 'gk_save_pct' 'gk_wins' 'gk_ties' 'gk_losses' 'gk_clean_sheets'\n",
" 'gk_clean_sheets_pct' 'gk_pens_att' 'gk_pens_allowed' 'gk_pens_saved'\n",
" 'gk_pens_missed' 'minutes_90s' 'gk_free_kick_goals_against'\n",
" 'gk_corner_kick_goals_against' 'gk_own_goals_against' 'gk_psxg'\n",
" 'gk_psnpxg_per_shot_on_target_against' 'gk_psxg_net' 'gk_psxg_net_per90'\n",
" 'gk_passes_completed_launched' 'gk_passes_launched'\n",
" 'gk_passes_pct_launched' 'gk_passes' 'gk_passes_throws'\n",
" 'gk_pct_passes_launched' 'gk_passes_length_avg' 'gk_goal_kicks'\n",
" 'gk_pct_goal_kicks_launched' 'gk_goal_kick_length_avg' 'gk_crosses'\n",
" 'gk_crosses_stopped' 'gk_crosses_stopped_pct'\n",
" 'gk_def_actions_outside_pen_area' 'gk_def_actions_outside_pen_area_per90'\n",
" 'gk_avg_distance_def_actions' 'shots_on_target' 'shots_free_kicks'\n",
" 'shots_on_target_pct' 'shots_on_target_per90' 'goals_per_shot'\n",
" 'goals_per_shot_on_target' 'npxg_per_shot' 'xg_net' 'npxg_net'\n",
" 'passes_completed' 'passes' 'passes_pct' 'passes_total_distance'\n",
" 'passes_progressive_distance' 'passes_completed_short' 'passes_short'\n",
" 'passes_pct_short' 'passes_completed_medium' 'passes_medium'\n",
" 'passes_pct_medium' 'passes_completed_long' 'passes_long'\n",
" 'passes_pct_long' 'assisted_shots' 'passes_into_final_third'\n",
" 'passes_into_penalty_area' 'crosses_into_penalty_area'\n",
" 'progressive_passes' 'passes_live' 'passes_dead' 'passes_free_kicks'\n",
" 'through_balls' 'passes_switches' 'crosses' 'corner_kicks'\n",
" 'corner_kicks_in' 'corner_kicks_out' 'corner_kicks_straight' 'throw_ins'\n",
" 'passes_offsides' 'passes_blocked' 'sca' 'sca_per90' 'sca_passes_live'\n",
" 'sca_passes_dead' 'sca_dribbles' 'sca_shots' 'sca_fouled' 'gca'\n",
" 'gca_per90' 'gca_passes_live' 'gca_passes_dead' 'gca_dribbles'\n",
" 'gca_shots' 'gca_fouled' 'gca_defense' 'tackles' 'tackles_won'\n",
" 'tackles_def_3rd' 'tackles_mid_3rd' 'tackles_att_3rd' 'dribble_tackles'\n",
" 'dribbles_vs' 'dribble_tackles_pct' 'dribbled_past' 'blocks'\n",
" 'blocked_shots' 'blocked_passes' 'interceptions' 'clearances' 'errors'\n",
" 'touches' 'touches_def_pen_area' 'touches_def_3rd' 'touches_mid_3rd'\n",
" 'touches_att_3rd' 'touches_att_pen_area' 'touches_live_ball'\n",
" 'dribbles_completed' 'dribbles' 'dribbles_completed_pct' 'carries'\n",
" 'progressive_carries' 'carries_into_final_third'\n",
" 'carries_into_penalty_area' 'passes_received' 'miscontrols'\n",
" 'dispossessed' 'cards_yellow_red' 'fouls' 'fouled' 'offsides' 'pens_won'\n",
" 'pens_conceded' 'own_goals' 'ball_recoveries' 'aerials_won'\n",
" 'aerials_lost' 'aerials_won_pct']\n"
]
}
],
"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": 8,
"id": "2e1370cd",
"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>Tammy Abraham</td>\n",
" <td>eng ENG</td>\n",
" <td>FW</td>\n",
" <td>Roma</td>\n",
" <td>23</td>\n",
" <td>1997</td>\n",
" <td>37.0</td>\n",
" <td>36.0</td>\n",
" <td>3084.0</td>\n",
" <td>17.0</td>\n",
" <td>...</td>\n",
" <td>38.0</td>\n",
" <td>49.0</td>\n",
" <td>17.0</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>68.0</td>\n",
" <td>78.0</td>\n",
" <td>80.0</td>\n",
" <td>49.4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Francesco Acerbi</td>\n",
" <td>it ITA</td>\n",
" <td>DF</td>\n",
" <td>Lazio</td>\n",
" <td>33</td>\n",
" <td>1988</td>\n",
" <td>30.0</td>\n",
" <td>29.0</td>\n",
" <td>2536.0</td>\n",
" <td>4.0</td>\n",
" <td>...</td>\n",
" <td>18.0</td>\n",
" <td>16.0</td>\n",
" <td>4.0</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>162.0</td>\n",
" <td>69.0</td>\n",
" <td>43.0</td>\n",
" <td>61.6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>Michel Aebischer</td>\n",
" <td>ch SUI</td>\n",
" <td>MF</td>\n",
" <td>Bologna</td>\n",
" <td>24</td>\n",
" <td>1997</td>\n",
" <td>12.0</td>\n",
" <td>4.0</td>\n",
" <td>443.0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>13.0</td>\n",
" <td>4.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>27.0</td>\n",
" <td>5.0</td>\n",
" <td>4.0</td>\n",
" <td>55.6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>Felix Afena-Gyan</td>\n",
" <td>gh GHA</td>\n",
" <td>FW,MF</td>\n",
" <td>Roma</td>\n",
" <td>18</td>\n",
" <td>2003</td>\n",
" <td>17.0</td>\n",
" <td>6.0</td>\n",
" <td>668.0</td>\n",
" <td>2.0</td>\n",
" <td>...</td>\n",
" <td>15.0</td>\n",
" <td>24.0</td>\n",
" <td>4.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>31.0</td>\n",
" <td>11.0</td>\n",
" <td>15.0</td>\n",
" <td>42.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Kevin Agudelo</td>\n",
" <td>co COL</td>\n",
" <td>MF,FW</td>\n",
" <td>Spezia</td>\n",
" <td>22</td>\n",
" <td>1998</td>\n",
" <td>23.0</td>\n",
" <td>12.0</td>\n",
" <td>1237.0</td>\n",
" <td>3.0</td>\n",
" <td>...</td>\n",
" <td>36.0</td>\n",
" <td>24.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>67.0</td>\n",
" <td>15.0</td>\n",
" <td>14.0</td>\n",
" <td>51.7</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>627</th>\n",
" <td>Nadir Zortea</td>\n",
" <td>it ITA</td>\n",
" <td>DF,MF</td>\n",
" <td>Salernitana</td>\n",
" <td>22</td>\n",
" <td>1999</td>\n",
" <td>29.0</td>\n",
" <td>13.0</td>\n",
" <td>1410.0</td>\n",
" <td>1.0</td>\n",
" <td>...</td>\n",
" <td>14.0</td>\n",
" <td>6.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>72.0</td>\n",
" <td>8.0</td>\n",
" <td>17.0</td>\n",
" <td>32.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>628</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>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.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>629</th>\n",
" <td>Szymon Żurkowski</td>\n",
" <td>pl POL</td>\n",
" <td>MF</td>\n",
" <td>Empoli</td>\n",
" <td>23</td>\n",
" <td>1997</td>\n",
" <td>35.0</td>\n",
" <td>29.0</td>\n",
" <td>2307.0</td>\n",
" <td>6.0</td>\n",
" <td>...</td>\n",
" <td>41.0</td>\n",
" <td>67.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>162.0</td>\n",
" <td>24.0</td>\n",
" <td>32.0</td>\n",
" <td>42.9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>630</th>\n",
" <td>Milan Đurić</td>\n",
" <td>ba BIH</td>\n",
" <td>FW</td>\n",
" <td>Salernitana</td>\n",
" <td>31</td>\n",
" <td>1990</td>\n",
" <td>33.0</td>\n",
" <td>23.0</td>\n",
" <td>2165.0</td>\n",
" <td>5.0</td>\n",
" <td>...</td>\n",
" <td>24.0</td>\n",
" <td>45.0</td>\n",
" <td>6.0</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>40.0</td>\n",
" <td>242.0</td>\n",
" <td>83.0</td>\n",
" <td>74.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>631</th>\n",
" <td>Filip Đuričić</td>\n",
" <td>rs SRB</td>\n",
" <td>MF,FW</td>\n",
" <td>Sassuolo</td>\n",
" <td>29</td>\n",
" <td>1992</td>\n",
" <td>12.0</td>\n",
" <td>9.0</td>\n",
" <td>671.0</td>\n",
" <td>2.0</td>\n",
" <td>...</td>\n",
" <td>10.0</td>\n",
" <td>14.0</td>\n",
" <td>2.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>34.0</td>\n",
" <td>3.0</td>\n",
" <td>5.0</td>\n",
" <td>37.5</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>632 rows × 124 columns</p>\n",
"</div>"
],
"text/plain": [
" player nationality position team age birth_year games \\\n",
"0 Tammy Abraham eng ENG FW Roma 23 1997 37.0 \n",
"1 Francesco Acerbi it ITA DF Lazio 33 1988 30.0 \n",
"2 Michel Aebischer ch SUI MF Bologna 24 1997 12.0 \n",
"3 Felix Afena-Gyan gh GHA FW,MF Roma 18 2003 17.0 \n",
"4 Kevin Agudelo co COL MF,FW Spezia 22 1998 23.0 \n",
".. ... ... ... ... .. ... ... \n",
"627 Nadir Zortea it ITA DF,MF Salernitana 22 1999 29.0 \n",
"628 Petar Zovko ba BIH GK Spezia 19 2002 1.0 \n",
"629 Szymon Żurkowski pl POL MF Empoli 23 1997 35.0 \n",
"630 Milan Đurić ba BIH FW Salernitana 31 1990 33.0 \n",
"631 Filip Đuričić rs SRB MF,FW Sassuolo 29 1992 12.0 \n",
"\n",
" games_starts minutes goals ... fouls fouled offsides pens_won \\\n",
"0 36.0 3084.0 17.0 ... 38.0 49.0 17.0 1.0 \n",
"1 29.0 2536.0 4.0 ... 18.0 16.0 4.0 1.0 \n",
"2 4.0 443.0 0.0 ... 13.0 4.0 0.0 0.0 \n",
"3 6.0 668.0 2.0 ... 15.0 24.0 4.0 0.0 \n",
"4 12.0 1237.0 3.0 ... 36.0 24.0 0.0 0.0 \n",
".. ... ... ... ... ... ... ... ... \n",
"627 13.0 1410.0 1.0 ... 14.0 6.0 0.0 0.0 \n",
"628 0.0 29.0 0.0 ... 0.0 1.0 0.0 0.0 \n",
"629 29.0 2307.0 6.0 ... 41.0 67.0 0.0 0.0 \n",
"630 23.0 2165.0 5.0 ... 24.0 45.0 6.0 1.0 \n",
"631 9.0 671.0 2.0 ... 10.0 14.0 2.0 0.0 \n",
"\n",
" pens_conceded own_goals ball_recoveries aerials_won aerials_lost \\\n",
"0 1.0 0.0 68.0 78.0 80.0 \n",
"1 0.0 0.0 162.0 69.0 43.0 \n",
"2 0.0 0.0 27.0 5.0 4.0 \n",
"3 0.0 0.0 31.0 11.0 15.0 \n",
"4 0.0 0.0 67.0 15.0 14.0 \n",
".. ... ... ... ... ... \n",
"627 0.0 0.0 72.0 8.0 17.0 \n",
"628 0.0 0.0 0.0 0.0 0.0 \n",
"629 1.0 0.0 162.0 24.0 32.0 \n",
"630 0.0 0.0 40.0 242.0 83.0 \n",
"631 0.0 0.0 34.0 3.0 5.0 \n",
"\n",
" aerials_won_pct \n",
"0 49.4 \n",
"1 61.6 \n",
"2 55.6 \n",
"3 42.3 \n",
"4 51.7 \n",
".. ... \n",
"627 32.0 \n",
"628 0.0 \n",
"629 42.9 \n",
"630 74.5 \n",
"631 37.5 \n",
"\n",
"[632 rows x 124 columns]"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"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 × 161 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 161 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 × 161 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 161 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
}