8f7df5dd7f
- updated code for new FBRef stats; - updated players list; - players who changed team handled slightly better
4532 lines
194 KiB
Plaintext
4532 lines
194 KiB
Plaintext
{
|
||
"cells": [
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "94545a88",
|
||
"metadata": {},
|
||
"source": [
|
||
"players__dataset_creation code for past seasons\n",
|
||
"\n",
|
||
"Select the season in season variable, and repeat the code if needed"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 23,
|
||
"id": "b72a3c5e",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"season = '2021'"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 24,
|
||
"id": "7c65df92",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"import pandas as pd"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 25,
|
||
"id": "b2d7073e",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"rcsv = pd.read_csv('fbref_data/season' + season + '/outfield_players.csv') \n",
|
||
"outfield_players = pd.DataFrame(rcsv)\n",
|
||
"\n",
|
||
"rcsv = pd.read_csv('fbref_data/season' + season + '/keepers_players.csv') \n",
|
||
"keeper_players = pd.DataFrame(rcsv)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 26,
|
||
"id": "667970f6",
|
||
"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>team</th>\n",
|
||
" </tr>\n",
|
||
" </thead>\n",
|
||
" <tbody>\n",
|
||
" <tr>\n",
|
||
" <th>0</th>\n",
|
||
" <td>Gennaro Acampora</td>\n",
|
||
" <td>Spezia</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1</th>\n",
|
||
" <td>Francesco Acerbi</td>\n",
|
||
" <td>Lazio</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>2</th>\n",
|
||
" <td>Andrea Adorante</td>\n",
|
||
" <td>Parma</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>3</th>\n",
|
||
" <td>Lucien Agoume</td>\n",
|
||
" <td>Spezia</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>4</th>\n",
|
||
" <td>Kevin Agudelo</td>\n",
|
||
" <td>Spezia</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>...</th>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>665</th>\n",
|
||
" <td>Ciprian Tătărușanu</td>\n",
|
||
" <td>Milan</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>666</th>\n",
|
||
" <td>Pietro Terracciano</td>\n",
|
||
" <td>Fiorentina</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>667</th>\n",
|
||
" <td>Samir Ujkani</td>\n",
|
||
" <td>Torino</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>668</th>\n",
|
||
" <td>Guglielmo Vicario</td>\n",
|
||
" <td>Cagliari</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>669</th>\n",
|
||
" <td>Jeroen Zoet</td>\n",
|
||
" <td>Spezia</td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"<p>670 rows × 2 columns</p>\n",
|
||
"</div>"
|
||
],
|
||
"text/plain": [
|
||
" player team\n",
|
||
"0 Gennaro Acampora Spezia\n",
|
||
"1 Francesco Acerbi Lazio\n",
|
||
"2 Andrea Adorante Parma\n",
|
||
"3 Lucien Agoume Spezia\n",
|
||
"4 Kevin Agudelo Spezia\n",
|
||
".. ... ...\n",
|
||
"665 Ciprian Tătărușanu Milan\n",
|
||
"666 Pietro Terracciano Fiorentina\n",
|
||
"667 Samir Ujkani Torino\n",
|
||
"668 Guglielmo Vicario Cagliari\n",
|
||
"669 Jeroen Zoet Spezia\n",
|
||
"\n",
|
||
"[670 rows x 2 columns]"
|
||
]
|
||
},
|
||
"execution_count": 26,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"players = pd.concat( [ outfield_players[['player', 'team']], keeper_players[['player', 'team']] ], axis = 0, ignore_index = True)\n",
|
||
"\n",
|
||
"players"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 27,
|
||
"id": "e1e64596",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"import unicodedata\n",
|
||
"\n",
|
||
"def normalize_name(input_str):\n",
|
||
" nfkd_form = unicodedata.normalize('NFKD', input_str)\n",
|
||
" only_ascii = nfkd_form.encode('ASCII', 'ignore')\n",
|
||
" return only_ascii.decode('utf-8')"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 28,
|
||
"id": "3078d6f3",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"players['surname'] = players['player']\n",
|
||
"players['initial'] = players['player']\n",
|
||
"\n",
|
||
"for i in range(players.shape[0]):\n",
|
||
" players['surname'][i] = players['surname'][i].split(' ')[-1]\n",
|
||
" players['surname'][i] = normalize_name(players['surname'][i]).replace('\\'', '')\n",
|
||
" \n",
|
||
" \n",
|
||
" players['initial'][i] = players['player'][i][0]"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 29,
|
||
"id": "ffd6091c",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
" player surname\n",
|
||
"0 Gennaro Acampora Acampora\n",
|
||
"1 Francesco Acerbi Acerbi\n",
|
||
"2 Andrea Adorante Adorante\n",
|
||
"3 Lucien Agoume Agoume\n",
|
||
"4 Kevin Agudelo Agudelo\n",
|
||
"5 Jean-Daniel Akpa-Akpro Akpa-Akpro\n",
|
||
"6 Luis Alberto Alberto\n",
|
||
"7 Bruno Alves Alves\n",
|
||
"8 Wisdom Amey Amey\n",
|
||
"9 Sofyan Amrabat Amrabat\n",
|
||
"10 Djavan Anderson Anderson\n",
|
||
"11 Nícolas Andrade Andrade\n",
|
||
"12 Davide Angelo Ghislandi Ghislandi\n",
|
||
"13 Philip Ankhrah Ankhrah\n",
|
||
"14 Cristian Ansaldi Ansaldi\n",
|
||
"15 Valentin Antov Antov\n",
|
||
"16 Nicolò Armini Armini\n",
|
||
"17 Tolgay Arslan Arslan\n",
|
||
"18 Kwadwo Asamoah Asamoah\n",
|
||
"19 Kristoffer Askildsen Askildsen\n",
|
||
"20 Emil Audero Audero\n",
|
||
"21 Tommaso Augello Augello\n",
|
||
"22 Kaan Ayhan Ayhan\n",
|
||
"23 Milan Badelj Badelj\n",
|
||
"24 Tiemoué Bakayoko Bakayoko\n",
|
||
"25 Keita Baldé Balde\n",
|
||
"26 Botond Balogh Balogh\n",
|
||
"27 Mattia Bani Bani\n",
|
||
"28 Mattia Bani Bani\n",
|
||
"29 Antonín Barák Barak\n",
|
||
"30 Federico Barba Barba\n",
|
||
"31 Nicolò Barella Barella\n",
|
||
"32 Antonio Barreca Barreca\n",
|
||
"33 Musa Barrow Barrow\n",
|
||
"34 Paolo Bartolomei Bartolomei\n",
|
||
"35 Daniele Baselli Baselli\n",
|
||
"36 Alessandro Bastoni Bastoni\n",
|
||
"37 Simone Bastoni Bastoni\n",
|
||
"38 Bastos Bastos\n",
|
||
"39 Rodrigo Becão Becao\n",
|
||
"40 Valon Behrami Behrami\n",
|
||
"41 Andrea Belotti Belotti\n",
|
||
"42 Ahmad Benali Benali\n",
|
||
"43 Ismaël Bennacer Bennacer\n",
|
||
"44 Rodrigo Bentancur Bentancur\n",
|
||
"45 Alessandro Berardi Berardi\n",
|
||
"46 Domenico Berardi Berardi\n",
|
||
"47 Álex Berenguer Berenguer\n",
|
||
"48 Bartosz Bereszyński Bereszynski\n",
|
||
"49 Federico Bernardeschi Bernardeschi\n",
|
||
"50 Marco Bertini Bertini\n",
|
||
"51 Daniel Bessa Bessa\n",
|
||
"52 Cristiano Biraghi Biraghi\n",
|
||
"53 Davide Biraschi Biraschi\n",
|
||
"54 Jeremie Boga Boga\n",
|
||
"55 Giacomo Bonaventura Bonaventura\n",
|
||
"56 Federico Bonazzoli Bonazzoli\n",
|
||
"57 Federico Bonazzoli Bonazzoli\n",
|
||
"58 Kevin Bonifazi Bonifazi\n",
|
||
"59 Leonardo Bonucci Bonucci\n",
|
||
"60 Mehdi Bourabia Bourabia\n",
|
||
"61 Edoardo Bove Bove\n",
|
||
"62 Jayden Braaf Braaf\n",
|
||
"63 Gleison Bremer Bremer\n",
|
||
"64 Marcelo Brozović Brozovic\n",
|
||
"65 Gastón Brugman Brugman\n",
|
||
"66 Juan Brunetta Brunetta\n",
|
||
"67 Gianluigi Buffon Buffon\n",
|
||
"68 Alessandro Buongiorno Buongiorno\n",
|
||
"69 Maxime Busi Busi\n",
|
||
"70 Martín Cáceres Caceres\n",
|
||
"71 Felipe Caicedo Caicedo\n",
|
||
"72 Arturo Calabresi Calabresi\n",
|
||
"73 Arturo Calabresi Calabresi\n",
|
||
"74 Davide Calabria Calabria\n",
|
||
"75 Riccardo Calafiori Calafiori\n",
|
||
"76 Mattia Caldara Caldara\n",
|
||
"77 Luca Caldirola Caldirola\n",
|
||
"78 Hakan Çalhanoğlu Calhanoglu\n",
|
||
"79 Fabrizio Caligara Caligara\n",
|
||
"80 José Callejón Callejon\n",
|
||
"81 Drissa Camara Camara\n",
|
||
"82 Antonio Candreva Candreva\n",
|
||
"83 Elio Capradossi Capradossi\n",
|
||
"84 Gianluca Caprari Caprari\n",
|
||
"85 Francesco Caputo Caputo\n",
|
||
"86 Andrea Carboni Carboni\n",
|
||
"87 Giuseppe Caso Caso\n",
|
||
"88 Francesco Cassata Cassata\n",
|
||
"89 Samu Castillejo Castillejo\n",
|
||
"90 Gaetano Castrovilli Castrovilli\n",
|
||
"91 Danilo Cataldi Cataldi\n",
|
||
"92 Federico Ceccherini Ceccherini\n",
|
||
"93 Federico Ceccherini Ceccherini\n",
|
||
"94 Luca Ceppitelli Ceppitelli\n",
|
||
"95 Alberto Cerri Cerri\n",
|
||
"96 Julian Chabot Chabot\n",
|
||
"97 Giorgio Chiellini Chiellini\n",
|
||
"98 Federico Chiesa Chiesa\n",
|
||
"99 Federico Chiesa Chiesa\n",
|
||
"100 Vlad Chiricheș Chiriches\n",
|
||
"101 Luca Cigarini Cigarini\n",
|
||
"102 Antonio Cioffi Cioffi\n",
|
||
"103 Ebrima Colley Colley\n",
|
||
"104 Omar Colley Colley\n",
|
||
"105 Simone Colombi Colombi\n",
|
||
"106 Lorenzo Colombo Colombo\n",
|
||
"107 Andrea Consigli Consigli\n",
|
||
"108 Andrea Conti Conti\n",
|
||
"109 Andrea Conti Conti\n",
|
||
"110 Alex Cordaz Cordaz\n",
|
||
"111 Andreas Cornelius Cornelius\n",
|
||
"112 Joaquín Correa Correa\n",
|
||
"113 Félix Correia Correia\n",
|
||
"114 Douglas Costa Costa\n",
|
||
"115 Angelo da Costa Júnior Junior\n",
|
||
"116 Mamadou Coulibaly Coulibaly\n",
|
||
"117 Alessio Cragno Cragno\n",
|
||
"118 Gian Crespi Crespi\n",
|
||
"119 Domenico Criscito Criscito\n",
|
||
"120 Bryan Cristante Cristante\n",
|
||
"121 Giovanni Crociata Crociata\n",
|
||
"122 Juan Cuadrado Cuadrado\n",
|
||
"123 Giuseppe Cuomo Cuomo\n",
|
||
"124 Patrick Cutrone Cutrone\n",
|
||
"125 Wylan Cyprien Cyprien\n",
|
||
"126 Lennart-Marten Czyborra Czyborra\n",
|
||
"127 Danilo D'Ambrosio DAmbrosio\n",
|
||
"128 Bryan Dabo Dabo\n",
|
||
"129 Diogo Dalot Dalot\n",
|
||
"130 Mikkel Damsgaard Damsgaard\n",
|
||
"131 Danilo Danilo\n",
|
||
"132 Andrea Danzi Danzi\n",
|
||
"133 Ebrima Darboe Darboe\n",
|
||
"134 Matteo Darmian Darmian\n",
|
||
"135 Matteo Darmian Darmian\n",
|
||
"136 Paweł Dawidowicz Dawidowicz\n",
|
||
"137 Sebastien De Maio Maio\n",
|
||
"138 Rodrigo De Paul Paul\n",
|
||
"139 Mattia De Sciglio Sciglio\n",
|
||
"140 Lorenzo De Silvestri Silvestri\n",
|
||
"141 Grégoire Defrel Defrel\n",
|
||
"142 Alessandro Deiola Deiola\n",
|
||
"143 Alessandro Deiola Deiola\n",
|
||
"144 Lorenzo Del Pinto Pinto\n",
|
||
"145 Cristian Dell'Orco DellOrco\n",
|
||
"146 Merih Demiral Demiral\n",
|
||
"147 Diego Demme Demme\n",
|
||
"148 Stefano Denswil Denswil\n",
|
||
"149 Fabio Depaoli Depaoli\n",
|
||
"150 Fabio Depaoli Depaoli\n",
|
||
"151 Fabio Depaoli Depaoli\n",
|
||
"152 Kastriot Dermaku Dermaku\n",
|
||
"153 Kiril Despodov Despodov\n",
|
||
"154 Mattia Destro Destro\n",
|
||
"155 Gerard Deulofeu Deulofeu\n",
|
||
"156 Jacopo Dezi Dezi\n",
|
||
"157 Samuel Di Carmine Carmine\n",
|
||
"158 Samuel Di Carmine Carmine\n",
|
||
"159 Giovanni Di Lorenzo Lorenzo\n",
|
||
"160 Alessandro Di Pardo Pardo\n",
|
||
"161 Giuseppe Di Serio Serio\n",
|
||
"162 Amad Diallo Diallo\n",
|
||
"163 Amadou Diambo Diambo\n",
|
||
"164 Amadou Diawara Diawara\n",
|
||
"165 Brahim Díaz Diaz\n",
|
||
"166 Daan Dierckx Dierckx\n",
|
||
"167 Mitchell Dijks Dijks\n",
|
||
"168 Federico Dimarco Dimarco\n",
|
||
"169 Koffi Djidji Djidji\n",
|
||
"170 Berat Djimsiti Djimsiti\n",
|
||
"171 Nicolás Domínguez Dominguez\n",
|
||
"172 Gianluigi Donnarumma Donnarumma\n",
|
||
"173 Bartłomiej Drągowski Dragowski\n",
|
||
"174 Denis Drăguș Dragus\n",
|
||
"175 Radu Drăgușin Dragusin\n",
|
||
"176 Léo Duarte Duarte\n",
|
||
"177 Alfred Duncan Duncan\n",
|
||
"178 Alfred Duncan Duncan\n",
|
||
"179 Paulo Dybala Dybala\n",
|
||
"180 Edin Džeko Dzeko\n",
|
||
"181 Steeve-Mike Ebongue Ebongue\n",
|
||
"182 Simone Edera Edera\n",
|
||
"183 Albin Ekdal Ekdal\n",
|
||
"184 Elif Elmas Elmas\n",
|
||
"185 Alan Empereur Empereur\n",
|
||
"186 Christian Eriksen Eriksen\n",
|
||
"187 Martin Erlic Erlic\n",
|
||
"188 Gonzalo Escalante Escalante\n",
|
||
"189 Nahuel Estévez Estevez\n",
|
||
"190 Valentin Eysseric Eysseric\n",
|
||
"191 Nicolò Fagioli Fagioli\n",
|
||
"192 Iago Falque Falque\n",
|
||
"193 Andri Fannar Baldursson Baldursson\n",
|
||
"194 Paolo Faragò Farago\n",
|
||
"195 Paolo Faragò Farago\n",
|
||
"196 Davide Faraoni Faraoni\n",
|
||
"197 Mohamed Fares Fares\n",
|
||
"198 Diego Farias Farias\n",
|
||
"199 Andrea Favilli Favilli\n",
|
||
"200 Federico Fazio Fazio\n",
|
||
"201 Luiz Felipe Felipe\n",
|
||
"202 Alex Ferrari Ferrari\n",
|
||
"203 Salvador Ferrer Ferrer\n",
|
||
"204 Marco Festa Festa\n",
|
||
"205 Fernando Forestieri Forestieri\n",
|
||
"206 Daam Foulon Foulon\n",
|
||
"207 Gianluca Frabotta Frabotta\n",
|
||
"208 Remo Freuler Freuler\n",
|
||
"209 Daniel Fuzato Fuzato\n",
|
||
"210 Matteo Gabbia Gabbia\n",
|
||
"211 Manolo Gabbiadini Gabbiadini\n",
|
||
"212 Roberto Gagliardini Gagliardini\n",
|
||
"213 Riccardo Gagliolo Gagliolo\n",
|
||
"214 Adolfo Gaich Gaich\n",
|
||
"215 Andrey Galabinov Galabinov\n",
|
||
"216 Manuel Gasparini Gasparini\n",
|
||
"217 Gervinho Gervinho\n",
|
||
"218 Paolo Ghiglione Ghiglione\n",
|
||
"219 Faouzi Ghoulam Ghoulam\n",
|
||
"220 Kamil Glik Glik\n",
|
||
"221 Diego Godín Godin\n",
|
||
"222 Amer Gojak Gojak\n",
|
||
"223 Edoardo Goldaniga Goldaniga\n",
|
||
"224 Vladimir Golemić Golemic\n",
|
||
"225 Pierluigi Gollini Gollini\n",
|
||
"226 Tomislav Gomelt Gomelt\n",
|
||
"227 Papu Gómez Gomez\n",
|
||
"228 Robin Gosens Gosens\n",
|
||
"229 Alberto Grassi Grassi\n",
|
||
"230 Koray Günter Gunter\n",
|
||
"231 Manu Gyabuaa Gyabuaa\n",
|
||
"232 Emmanuel Gyasi Gyasi\n",
|
||
"233 Achraf Hakimi Hakimi\n",
|
||
"234 Samir Handanović Handanovic\n",
|
||
"235 Lukáš Haraslín Haraslin\n",
|
||
"236 Hans Hateboer Hateboer\n",
|
||
"237 Eduardo Henrique Henrique\n",
|
||
"238 Theo Hernández Hernandez\n",
|
||
"239 Hernani Hernani\n",
|
||
"240 Përparim Hetemaj Hetemaj\n",
|
||
"241 Aaron Hickey Hickey\n",
|
||
"242 Wesley Hoedt Hoedt\n",
|
||
"243 Elseid Hysaj Hysaj\n",
|
||
"244 Simone Iacoponi Iacoponi\n",
|
||
"245 Roger Ibanez Ibanez\n",
|
||
"246 Zlatan Ibrahimović Ibrahimovic\n",
|
||
"247 Igor Igor\n",
|
||
"248 Ivan Ilić Ilic\n",
|
||
"249 Josip Iličić Ilicic\n",
|
||
"250 Ciro Immobile Immobile\n",
|
||
"251 Riccardo Improta Improta\n",
|
||
"252 Roberto Inglese Inglese\n",
|
||
"253 Lorenzo Insigne Insigne\n",
|
||
"254 Roberto Insigne Insigne\n",
|
||
"255 Artur Ioniță Ionita\n",
|
||
"256 Ardian Ismajli Ismajli\n",
|
||
"257 Armando Izzo Izzo\n",
|
||
"258 Mato Jajalo Jajalo\n",
|
||
"259 Jakub Jankto Jankto\n",
|
||
"260 Juan Jesus Jesus\n",
|
||
"261 Hamed Junior Traorè Traore\n",
|
||
"262 Musa Juwara Juwara\n",
|
||
"263 Nikola Kalinić Kalinic\n",
|
||
"264 Yayah Kallon Kallon\n",
|
||
"265 Pierre Kalulu Kalulu\n",
|
||
"266 Yann Karamoh Karamoh\n",
|
||
"267 Isaac Karamoko Karamoko\n",
|
||
"268 Augustus Kargbo Kargbo\n",
|
||
"269 Rick Karsdorp Karsdorp\n",
|
||
"270 Franck Kessié Kessie\n",
|
||
"271 Omar Khailoti Khailoti\n",
|
||
"272 Simon Kjær Kjr\n",
|
||
"273 Ragnar Klavan Klavan\n",
|
||
"274 Justin Kluivert Kluivert\n",
|
||
"275 Aleksandr Kokorin Kokorin\n",
|
||
"276 Aleksandar Kolarov Kolarov\n",
|
||
"277 Márk Kosznovszky Kosznovszky\n",
|
||
"278 Christian Kouamé Kouame\n",
|
||
"279 Kalidou Koulibaly Koulibaly\n",
|
||
"280 Viktor Kovalenko Kovalenko\n",
|
||
"281 Rade Krunić Krunic\n",
|
||
"282 Juraj Kucka Kucka\n",
|
||
"283 Dejan Kulusevski Kulusevski\n",
|
||
"284 Marash Kumbulla Kumbulla\n",
|
||
"285 Jasmin Kurtić Kurtic\n",
|
||
"286 Giorgos Kyriakopoulos Kyriakopoulos\n",
|
||
"287 Antonino La Gumina Gumina\n",
|
||
"288 Sam Lammers Lammers\n",
|
||
"289 Gianluca Lapadula Lapadula\n",
|
||
"290 Danilo Larangeira Larangeira\n",
|
||
"291 Kevin Lasagna Lasagna\n",
|
||
"292 Kevin Lasagna Lasagna\n",
|
||
"293 Vincent Laurini Laurini\n",
|
||
"294 Darko Lazović Lazovic\n",
|
||
"295 Manuel Lazzari Lazzari\n",
|
||
"296 Rafael Leão Leao\n",
|
||
"297 Lucas Leiva Leiva\n",
|
||
"298 Lukas Lerager Lerager\n",
|
||
"299 Mehdi Léris Leris\n",
|
||
"300 Karlo Letica Letica\n",
|
||
"301 Gaetano Letizia Letizia\n",
|
||
"302 Matthijs de Ligt Ligt\n",
|
||
"303 Karol Linetty Linetty\n",
|
||
"304 Pol Lirola Lirola\n",
|
||
"305 Fernando Llorente Llorente\n",
|
||
"306 Fernando Llorente Llorente\n",
|
||
"307 Stanislav Lobotka Lobotka\n",
|
||
"308 Manuel Locatelli Locatelli\n",
|
||
"309 Maxime Lopez Lopez\n",
|
||
"310 Pau López Lopez\n",
|
||
"311 Matteo Lovato Lovato\n",
|
||
"312 Hirving Lozano Lozano\n",
|
||
"313 José Luis Palomino Palomino\n",
|
||
"314 Romelu Lukaku Lukaku\n",
|
||
"315 Saša Lukić Lukic\n",
|
||
"316 Senad Lulić Lulic\n",
|
||
"317 Sebastiano Luperto Luperto\n",
|
||
"318 Lyanco Lyanco\n",
|
||
"319 Charalambos Lykogiannis Lykogiannis\n",
|
||
"320 Lisandro Magallán Magallan\n",
|
||
"321 Christian Maggio Maggio\n",
|
||
"322 Giulio Maggiore Maggiore\n",
|
||
"323 Francesco Magnanelli Magnanelli\n",
|
||
"324 Giangiacomo Magnani Magnani\n",
|
||
"325 Jean-Victor Makengo Makengo\n",
|
||
"326 Nikola Maksimović Maksimovic\n",
|
||
"327 Kévin Malcuit Malcuit\n",
|
||
"328 Kévin Malcuit Malcuit\n",
|
||
"329 Daniel Maldini Maldini\n",
|
||
"330 Ruslan Malinovskyi Malinovskyi\n",
|
||
"331 Dennis Man Man\n",
|
||
"332 Gianluca Mancini Mancini\n",
|
||
"333 Rolando Mandragora Mandragora\n",
|
||
"334 Rolando Mandragora Mandragora\n",
|
||
"335 Mario Mandžukić Mandzukic\n",
|
||
"336 Niccolò Manfredini Manfredini\n",
|
||
"337 Kostas Manolas Manolas\n",
|
||
"338 Juan Manuel Ramos Ramos\n",
|
||
"339 Federico Marchetti Marchetti\n",
|
||
"340 Riccardo Marchizza Marchizza\n",
|
||
"341 Gian Marco Ferrari Ferrari\n",
|
||
"342 Răzvan Marin Marin\n",
|
||
"343 Marlon Marlon\n",
|
||
"344 Luca Marrone Marrone\n",
|
||
"345 Lautaro Martínez Martinez\n",
|
||
"346 Lucas Martínez Quarta Quarta\n",
|
||
"347 Adam Marušić Marusic\n",
|
||
"348 Andrea Masiello Masiello\n",
|
||
"349 Giuseppe Mastinu Mastinu\n",
|
||
"350 Ryder Matos Matos\n",
|
||
"351 Federico Mattiello Mattiello\n",
|
||
"352 Borja Mayoral Mayoral\n",
|
||
"353 Antonio Mazzotta Mazzotta\n",
|
||
"354 Ibrahima Mbaye Mbaye\n",
|
||
"355 Weston McKennie McKennie\n",
|
||
"356 Gary Medel Medel\n",
|
||
"357 Soualiho Meïté Meite\n",
|
||
"358 Soualiho Meïté Meite\n",
|
||
"359 Filippo Melegoni Melegoni\n",
|
||
"360 Arthur Melo Melo\n",
|
||
"361 Alex Meret Meret\n",
|
||
"362 Yıldırım Mert Çetin Cetin\n",
|
||
"363 Dries Mertens Mertens\n",
|
||
"364 Junior Messias Messias\n",
|
||
"365 Petar Mićin Micin\n",
|
||
"366 Valentin Mihaila Mihaila\n",
|
||
"367 Nikola Milenković Milenkovic\n",
|
||
"368 Sergej Milinković-Savić Milinkovic-Savic\n",
|
||
"369 Vanja Milinković-Savić Milinkovic-Savic\n",
|
||
"370 Vincenzo Millico Millico\n",
|
||
"371 Aleksei Miranchuk Miranchuk\n",
|
||
"372 Antonio Mirante Mirante\n",
|
||
"373 Henrikh Mkhitaryan Mkhitaryan\n",
|
||
"374 Johan Mojica Mojica\n",
|
||
"375 Nahuel Molina Molina\n",
|
||
"376 Salvatore Molina Molina\n",
|
||
"377 Gabriele Moncini Moncini\n",
|
||
"378 Cristóbal Montiel Montiel\n",
|
||
"379 Lorenzo Montipò Montipo\n",
|
||
"380 Luca Mora Mora\n",
|
||
"381 Álvaro Morata Morata\n",
|
||
"382 Raúl Moro Moro\n",
|
||
"383 Mert Müldür Muldur\n",
|
||
"384 Luis Muriel Muriel\n",
|
||
"385 Vedat Muriqi Muriqi\n",
|
||
"386 Nicola Murru Murru\n",
|
||
"387 Mateo Musacchio Musacchio\n",
|
||
"388 Mateo Musacchio Musacchio\n",
|
||
"389 Juan Musso Musso\n",
|
||
"390 Joakim Mæhle Mhle\n",
|
||
"391 Radja Nainggolan Nainggolan\n",
|
||
"392 Radja Nainggolan Nainggolan\n",
|
||
"393 Nahitan Nández Nandez\n",
|
||
"394 Ilija Nestorovski Nestorovski\n",
|
||
"395 Nicolas Nkoulou Nkoulou\n",
|
||
"396 Bram Nuytinck Nuytinck\n",
|
||
"397 Simeon Nwankwo Nwankwo\n",
|
||
"398 M'Bala Nzola Nzola\n",
|
||
"399 Pedro Obiang Obiang\n",
|
||
"400 Brian Oddei Oddei\n",
|
||
"401 Stefano Okaka Okaka\n",
|
||
"402 Christian Oliva Oliva\n",
|
||
"403 Maximiliano Olivera Olivera\n",
|
||
"404 Jérôme Onguéné Onguene\n",
|
||
"405 Riccardo Orsolini Orsolini\n",
|
||
"406 Victor Osimhen Osimhen\n",
|
||
"407 Yordan Osorio Osorio\n",
|
||
"408 David Ospina Ospina\n",
|
||
"409 Adam Ounas Ounas\n",
|
||
"410 Adam Ounas Ounas\n",
|
||
"411 Thomas Ouwejan Ouwejan\n",
|
||
"412 Daniele Padelli Padelli\n",
|
||
"413 Mattia Pagliuca Pagliuca\n",
|
||
"414 Rodrigo Palacio Palacio\n",
|
||
"415 Alberto Paleari Paleari\n",
|
||
"416 Antonio Palumbo Palumbo\n",
|
||
"417 Martin Palumbo Palumbo\n",
|
||
"418 Goran Pandev Pandev\n",
|
||
"419 Ivor Pandur Pandur\n",
|
||
"420 Vittorio Parigini Parigini\n",
|
||
"421 Marco Parolo Parolo\n",
|
||
"422 Mario Pašalić Pasalic\n",
|
||
"423 Christian Pastina Pastina\n",
|
||
"424 Javier Pastore Pastore\n",
|
||
"425 Patric Patric\n",
|
||
"426 Leonardo Pavoletti Pavoletti\n",
|
||
"427 Nehuén Paz Paz\n",
|
||
"428 Pedro Pedro\n",
|
||
"429 João Pedro Pedro\n",
|
||
"430 Gianluca Pegolo Pegolo\n",
|
||
"431 Graziano Pellè Pelle\n",
|
||
"432 Lorenzo Pellegrini Pellegrini\n",
|
||
"433 Luca Pellegrini Pellegrini\n",
|
||
"434 Federico Peluso Peluso\n",
|
||
"435 Andreas Pereira Pereira\n",
|
||
"436 Pedro Pereira Pereira\n",
|
||
"437 Gastón Pereiro Pereiro\n",
|
||
"438 Bruno Peres Peres\n",
|
||
"439 Roberto Pereyra Pereyra\n",
|
||
"440 Carles Pérez Perez\n",
|
||
"441 Mattia Perin Perin\n",
|
||
"442 Ivan Perišić Perisic\n",
|
||
"443 Matteo Pessina Pessina\n",
|
||
"444 Andrea Petagna Petagna\n",
|
||
"445 Jacopo Petriccione Petriccione\n",
|
||
"446 Jens Petter Hauge Hauge\n",
|
||
"447 Germán Pezzella Pezzella\n",
|
||
"448 Giuseppe Pezzella Pezzella\n",
|
||
"449 Cristiano Piccini Piccini\n",
|
||
"450 Roberto Piccoli Piccoli\n",
|
||
"451 Andrea Pinamonti Pinamonti\n",
|
||
"452 Carlo Pinsoglio Pinsoglio\n",
|
||
"453 Fabio Pisacane Pisacane\n",
|
||
"454 Marko Pjaca Pjaca\n",
|
||
"455 Tommaso Pobega Pobega\n",
|
||
"456 Andrea Poli Poli\n",
|
||
"457 Matteo Politano Politano\n",
|
||
"458 Manolo Portanova Portanova\n",
|
||
"459 Manolo Portanova Portanova\n",
|
||
"460 Ivan Provedel Provedel\n",
|
||
"461 Erick Pulgar Pulgar\n",
|
||
"462 Ignacio Pussetto Pussetto\n",
|
||
"463 Fabio Quagliarella Quagliarella\n",
|
||
"464 Simone Rabbi Rabbi\n",
|
||
"465 Adrien Rabiot Rabiot\n",
|
||
"466 Ivan Radovanović Radovanovic\n",
|
||
"467 Ionuț Radu Radu\n",
|
||
"468 Ștefan Radu Radu\n",
|
||
"469 Rafael Rafael\n",
|
||
"470 Antonio Raimondo Raimondo\n",
|
||
"471 Gastón Ramírez Ramirez\n",
|
||
"472 Aaron Ramsey Ramsey\n",
|
||
"473 Andrea Ranocchia Ranocchia\n",
|
||
"474 Giacomo Raspadori Raspadori\n",
|
||
"475 Federico Ravaglia Ravaglia\n",
|
||
"476 Ante Rebić Rebic\n",
|
||
"477 Arkadiusz Reca Reca\n",
|
||
"478 Vasco Regini Regini\n",
|
||
"479 Pepe Reina Reina\n",
|
||
"480 Bryan Reynolds Reynolds\n",
|
||
"481 Franck Ribéry Ribery\n",
|
||
"482 Federico Ricci Ricci\n",
|
||
"483 Giacomo Ricci Ricci\n",
|
||
"484 Matteo Ricci Ricci\n",
|
||
"485 Tomás Rincón Rincon\n",
|
||
"486 Andrea Rispoli Rispoli\n",
|
||
"487 Emmanuel Rivière Riviere\n",
|
||
"488 Ricardo Rodríguez Rodriguez\n",
|
||
"489 Marko Rog Rog\n",
|
||
"490 Rogério Rogerio\n",
|
||
"491 Luis Rojas Rojas\n",
|
||
"492 Alessio Romagnoli Romagnoli\n",
|
||
"493 Cristian Romero Romero\n",
|
||
"494 Cristiano Ronaldo Ronaldo\n",
|
||
"495 Marten de Roon Roon\n",
|
||
"496 Nicolò Rovella Rovella\n",
|
||
"497 Amir Rrahmani Rrahmani\n",
|
||
"498 Kevin Rüegg Ruegg\n",
|
||
"499 Daniele Rugani Rugani\n",
|
||
"500 Matteo Ruggeri Ruggeri\n",
|
||
"501 Mário Rui Rui\n",
|
||
"502 Fabián Ruiz Peña Pena\n",
|
||
"503 Alexis Saelemaekers Saelemaekers\n",
|
||
"504 Jacopo Sala Sala\n",
|
||
"505 Eddie Salcedo Salcedo\n",
|
||
"506 Antonio Sanabria Sanabria\n",
|
||
"507 Alexis Sánchez Sanchez\n",
|
||
"508 Alex Sandro Sandro\n",
|
||
"509 Siriki Sanogo Sanogo\n",
|
||
"510 Nicola Sansone Sansone\n",
|
||
"511 Federico Santander Santander\n",
|
||
"512 Davide Santon Santon\n",
|
||
"513 Samir Santos Santos\n",
|
||
"514 Riccardo Saponara Saponara\n",
|
||
"515 Riccardo Saponara Saponara\n",
|
||
"516 Marco Sau Sau\n",
|
||
"517 Gianluca Scamacca Scamacca\n",
|
||
"518 Nicolás Schiappacasse Schiappacasse\n",
|
||
"519 Pasquale Schiattarella Schiattarella\n",
|
||
"520 Jerdy Schouten Schouten\n",
|
||
"521 Matteo Scozzarella Scozzarella\n",
|
||
"522 Simone Scuffet Scuffet\n",
|
||
"523 Jacopo Segre Segre\n",
|
||
"524 Léo Sena Sena\n",
|
||
"525 Stefano Sensi Sensi\n",
|
||
"526 Luigi Sepe Sepe\n",
|
||
"527 Stephan El Shaarawy Shaarawy\n",
|
||
"528 Eldor Shomurodov Shomurodov\n",
|
||
"529 Luca Siligardi Siligardi\n",
|
||
"530 Luca Siligardi Siligardi\n",
|
||
"531 Adrien Silva Silva\n",
|
||
"532 Marco Silvestri Silvestri\n",
|
||
"533 Giovanni Simeone Simeone\n",
|
||
"534 Wilfried Singo Singo\n",
|
||
"535 Salvatore Sirigu Sirigu\n",
|
||
"536 Łukasz Skorupski Skorupski\n",
|
||
"537 Andreas Skov Olsen Olsen\n",
|
||
"538 Milan Škriniar Skriniar\n",
|
||
"539 Chris Smalling Smalling\n",
|
||
"540 Simon Sohm Sohm\n",
|
||
"541 Roberto Soriano Soriano\n",
|
||
"542 Riccardo Sottil Sottil\n",
|
||
"543 Adama Soumaoro Soumaoro\n",
|
||
"544 Leonardo Spinazzola Spinazzola\n",
|
||
"545 Marco Sportiello Sportiello\n",
|
||
"546 Mattia Sprocati Sprocati\n",
|
||
"547 Thomas Strakosha Strakosha\n",
|
||
"548 Kevin Strootman Strootman\n",
|
||
"549 Jens Stryger Larsen Larsen\n",
|
||
"550 Stefano Sturaro Sturaro\n",
|
||
"551 Stefano Sturaro Sturaro\n",
|
||
"552 Bosko Sutalo Sutalo\n",
|
||
"553 Mattias Svanberg Svanberg\n",
|
||
"554 Wojciech Szczęsny Szczesny\n",
|
||
"555 Adrien Tameze Tameze\n",
|
||
"556 Ciprian Tătărușanu Tatarusanu\n",
|
||
"557 Andrés Tello Tello\n",
|
||
"558 Hidde ter Avest Avest\n",
|
||
"559 Pietro Terracciano Terracciano\n",
|
||
"560 Claudio Terzi Terzi\n",
|
||
"561 Morten Thorsby Thorsby\n",
|
||
"562 Jeremy Toljan Toljan\n",
|
||
"563 Rafael Tolói Toloi\n",
|
||
"564 Takehiro Tomiyasu Tomiyasu\n",
|
||
"565 Fikayo Tomori Tomori\n",
|
||
"566 Sandro Tonali Tonali\n",
|
||
"567 Lorenzo Tonelli Tonelli\n",
|
||
"568 Ernesto Torregrossa Torregrossa\n",
|
||
"569 Mattéo Tramoni Tramoni\n",
|
||
"570 Chaka Traorè Traore\n",
|
||
"571 Alessandro Tripaldelli Tripaldelli\n",
|
||
"572 Alessandro Tuia Tuia\n",
|
||
"573 Ľubomír Tupta Tupta\n",
|
||
"574 Iyenoma Udogie Udogie\n",
|
||
"575 Samir Ujkani Ujkani\n",
|
||
"576 Kacper Urbanski Urbanski\n",
|
||
"577 Lautaro Valenti Valenti\n",
|
||
"578 Borja Valero Valero\n",
|
||
"579 Denis Vavro Vavro\n",
|
||
"580 Matías Vecino Vecino\n",
|
||
"581 Miguel Veloso Veloso\n",
|
||
"582 Lorenzo Venuti Venuti\n",
|
||
"583 Daniele Verde Verde\n",
|
||
"584 Simone Verdi Verdi\n",
|
||
"585 Jordan Veretout Veretout\n",
|
||
"586 Edoardo Vergani Vergani\n",
|
||
"587 Valerio Verre Verre\n",
|
||
"588 Guglielmo Vicario Vicario\n",
|
||
"589 Arturo Vidal Vidal\n",
|
||
"590 Ronaldo Vieira Vieira\n",
|
||
"591 Luca Vignali Vignali\n",
|
||
"592 Emanuel Vignato Vignato\n",
|
||
"593 Gonzalo Villar Villar\n",
|
||
"594 Nicolas Viola Viola\n",
|
||
"595 Dušan Vlahović Vlahovic\n",
|
||
"596 Mërgim Vojvoda Vojvoda\n",
|
||
"597 Stefan de Vrij Vrij\n",
|
||
"598 Giacomo Vrioni Vrioni\n",
|
||
"599 Miloš Vulić Vulic\n",
|
||
"600 Walace Walace\n",
|
||
"601 Sebastian Walukiewicz Walukiewicz\n",
|
||
"602 Maya Yoshida Yoshida\n",
|
||
"603 Ashley Young Young\n",
|
||
"604 Mattia Zaccagni Zaccagni\n",
|
||
"605 Vasilios Zagaritis Zagaritis\n",
|
||
"606 Miha Zajc Zajc\n",
|
||
"607 Nicola Zalewski Zalewski\n",
|
||
"608 Niccolò Zanellato Zanellato\n",
|
||
"609 Cristián Zapata Zapata\n",
|
||
"610 Duván Zapata Zapata\n",
|
||
"611 Gabriele Zappa Zappa\n",
|
||
"612 Davide Zappacosta Zappacosta\n",
|
||
"613 Simone Zaza Zaza\n",
|
||
"614 Marvin Zeegelaar Zeegelaar\n",
|
||
"615 Piotr Zieliński Zielinski\n",
|
||
"616 Joshua Zirkzee Zirkzee\n",
|
||
"617 Jeroen Zoet Zoet\n",
|
||
"618 Filip Đuričić uricic\n",
|
||
"619 Nícolas Andrade Andrade\n",
|
||
"620 Emil Audero Audero\n",
|
||
"621 Alessandro Berardi Berardi\n",
|
||
"622 Gianluigi Buffon Buffon\n",
|
||
"623 Simone Colombi Colombi\n",
|
||
"624 Andrea Consigli Consigli\n",
|
||
"625 Alex Cordaz Cordaz\n",
|
||
"626 Angelo da Costa Júnior Junior\n",
|
||
"627 Alessio Cragno Cragno\n",
|
||
"628 Gian Crespi Crespi\n",
|
||
"629 Gianluigi Donnarumma Donnarumma\n",
|
||
"630 Bartłomiej Drągowski Dragowski\n",
|
||
"631 Marco Festa Festa\n",
|
||
"632 Daniel Fuzato Fuzato\n",
|
||
"633 Manuel Gasparini Gasparini\n",
|
||
"634 Pierluigi Gollini Gollini\n",
|
||
"635 Samir Handanović Handanovic\n",
|
||
"636 Karlo Letica Letica\n",
|
||
"637 Pau López Lopez\n",
|
||
"638 Niccolò Manfredini Manfredini\n",
|
||
"639 Federico Marchetti Marchetti\n",
|
||
"640 Alex Meret Meret\n",
|
||
"641 Vanja Milinković-Savić Milinkovic-Savic\n",
|
||
"642 Antonio Mirante Mirante\n",
|
||
"643 Lorenzo Montipò Montipo\n",
|
||
"644 Juan Musso Musso\n",
|
||
"645 David Ospina Ospina\n",
|
||
"646 Daniele Padelli Padelli\n",
|
||
"647 Alberto Paleari Paleari\n",
|
||
"648 Ivor Pandur Pandur\n",
|
||
"649 Gianluca Pegolo Pegolo\n",
|
||
"650 Mattia Perin Perin\n",
|
||
"651 Carlo Pinsoglio Pinsoglio\n",
|
||
"652 Ivan Provedel Provedel\n",
|
||
"653 Ionuț Radu Radu\n",
|
||
"654 Rafael Rafael\n",
|
||
"655 Federico Ravaglia Ravaglia\n",
|
||
"656 Pepe Reina Reina\n",
|
||
"657 Simone Scuffet Scuffet\n",
|
||
"658 Luigi Sepe Sepe\n",
|
||
"659 Marco Silvestri Silvestri\n",
|
||
"660 Salvatore Sirigu Sirigu\n",
|
||
"661 Łukasz Skorupski Skorupski\n",
|
||
"662 Marco Sportiello Sportiello\n",
|
||
"663 Thomas Strakosha Strakosha\n",
|
||
"664 Wojciech Szczęsny Szczesny\n",
|
||
"665 Ciprian Tătărușanu Tatarusanu\n",
|
||
"666 Pietro Terracciano Terracciano\n",
|
||
"667 Samir Ujkani Ujkani\n",
|
||
"668 Guglielmo Vicario Vicario\n",
|
||
"669 Jeroen Zoet Zoet\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"print(players[['player', 'surname']].to_string())"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 30,
|
||
"id": "3e759b1b",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Maehle\n",
|
||
"Kjaer\n"
|
||
]
|
||
},
|
||
{
|
||
"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>FROM</th>\n",
|
||
" <th>TO</th>\n",
|
||
" <th>TEAM</th>\n",
|
||
" </tr>\n",
|
||
" </thead>\n",
|
||
" <tbody>\n",
|
||
" <tr>\n",
|
||
" <th>0</th>\n",
|
||
" <td>stigard</td>\n",
|
||
" <td>Ostigard</td>\n",
|
||
" <td>Napoli</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1</th>\n",
|
||
" <td>Min-jae</td>\n",
|
||
" <td>Kim</td>\n",
|
||
" <td>Napoli</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>2</th>\n",
|
||
" <td>Hjlund</td>\n",
|
||
" <td>Hojlund</td>\n",
|
||
" <td>Atalanta</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>3</th>\n",
|
||
" <td>Gytkjr</td>\n",
|
||
" <td>Gytkjaer</td>\n",
|
||
" <td>Monza</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>4</th>\n",
|
||
" <td>Carlos</td>\n",
|
||
" <td>Augusto</td>\n",
|
||
" <td>Monza</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>5</th>\n",
|
||
" <td>Mhle</td>\n",
|
||
" <td>Maehle</td>\n",
|
||
" <td>Atalanta</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>6</th>\n",
|
||
" <td>Kjr</td>\n",
|
||
" <td>Kjaer</td>\n",
|
||
" <td>Milan</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>7</th>\n",
|
||
" <td>uricic</td>\n",
|
||
" <td>Djuricic</td>\n",
|
||
" <td>Sampdoria</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>8</th>\n",
|
||
" <td>uric</td>\n",
|
||
" <td>Djuric</td>\n",
|
||
" <td>Hellas Verona</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>9</th>\n",
|
||
" <td>Arthur</td>\n",
|
||
" <td>Cabral</td>\n",
|
||
" <td>Fiorentina</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>10</th>\n",
|
||
" <td>Martinez</td>\n",
|
||
" <td>Alvarez</td>\n",
|
||
" <td>Sassuolo</td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"</div>"
|
||
],
|
||
"text/plain": [
|
||
" FROM TO TEAM\n",
|
||
"0 stigard Ostigard Napoli\n",
|
||
"1 Min-jae Kim Napoli\n",
|
||
"2 Hjlund Hojlund Atalanta\n",
|
||
"3 Gytkjr Gytkjaer Monza\n",
|
||
"4 Carlos Augusto Monza\n",
|
||
"5 Mhle Maehle Atalanta\n",
|
||
"6 Kjr Kjaer Milan\n",
|
||
"7 uricic Djuricic Sampdoria\n",
|
||
"8 uric Djuric Hellas Verona\n",
|
||
"9 Arthur Cabral Fiorentina\n",
|
||
"10 Martinez Alvarez Sassuolo"
|
||
]
|
||
},
|
||
"execution_count": 30,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"rcsv = pd.read_csv('config/name_fix.txt') \n",
|
||
"name_fix = pd.DataFrame(rcsv)\n",
|
||
"\n",
|
||
"for i in range(name_fix.shape[0]):\n",
|
||
" for j in range(players.shape[0]):\n",
|
||
" if(players['surname'][j].lower() == name_fix['FROM'][i].lower() and players['team'][j].lower() == name_fix['TEAM'][i].lower()):\n",
|
||
" players['surname'][j] = name_fix['TO'][i]\n",
|
||
" print(name_fix['TO'][i])\n",
|
||
"\n",
|
||
"name_fix\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 31,
|
||
"id": "f96eaaa1",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"C:\\Users\\nicol\\AppData\\Local\\Temp\\ipykernel_9056\\2214747983.py:14: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" fc_players['surname'][i] = spl[-2]\n",
|
||
"C:\\Users\\nicol\\AppData\\Local\\Temp\\ipykernel_9056\\2214747983.py:15: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" fc_players['initial'][i] = spl[-1][0]\n",
|
||
"C:\\Users\\nicol\\AppData\\Local\\Temp\\ipykernel_9056\\2214747983.py:17: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" fc_players['surname'][i] = spl[-1]\n",
|
||
"C:\\Users\\nicol\\AppData\\Local\\Temp\\ipykernel_9056\\2214747983.py:18: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" fc_players['initial'][i] = ''\n"
|
||
]
|
||
},
|
||
{
|
||
"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>id</th>\n",
|
||
" <th>r</th>\n",
|
||
" <th>name</th>\n",
|
||
" <th>team</th>\n",
|
||
" <th>surname</th>\n",
|
||
" <th>initial</th>\n",
|
||
" </tr>\n",
|
||
" </thead>\n",
|
||
" <tbody>\n",
|
||
" <tr>\n",
|
||
" <th>0</th>\n",
|
||
" <td>350</td>\n",
|
||
" <td>P</td>\n",
|
||
" <td>Donnarumma G.</td>\n",
|
||
" <td>Milan</td>\n",
|
||
" <td>Donnarumma</td>\n",
|
||
" <td>G</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1</th>\n",
|
||
" <td>453</td>\n",
|
||
" <td>P</td>\n",
|
||
" <td>Szczesny</td>\n",
|
||
" <td>Juventus</td>\n",
|
||
" <td>Szczesny</td>\n",
|
||
" <td></td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>2</th>\n",
|
||
" <td>250</td>\n",
|
||
" <td>P</td>\n",
|
||
" <td>Handanovic</td>\n",
|
||
" <td>Inter</td>\n",
|
||
" <td>Handanovic</td>\n",
|
||
" <td></td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>3</th>\n",
|
||
" <td>610</td>\n",
|
||
" <td>P</td>\n",
|
||
" <td>Gollini</td>\n",
|
||
" <td>Atalanta</td>\n",
|
||
" <td>Gollini</td>\n",
|
||
" <td></td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>4</th>\n",
|
||
" <td>761</td>\n",
|
||
" <td>P</td>\n",
|
||
" <td>Audero</td>\n",
|
||
" <td>Sampdoria</td>\n",
|
||
" <td>Audero</td>\n",
|
||
" <td></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",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>559</th>\n",
|
||
" <td>5361</td>\n",
|
||
" <td>A</td>\n",
|
||
" <td>Rabbi</td>\n",
|
||
" <td>Bologna</td>\n",
|
||
" <td>Rabbi</td>\n",
|
||
" <td></td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>560</th>\n",
|
||
" <td>5378</td>\n",
|
||
" <td>A</td>\n",
|
||
" <td>Oddei</td>\n",
|
||
" <td>Sassuolo</td>\n",
|
||
" <td>Oddei</td>\n",
|
||
" <td></td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>561</th>\n",
|
||
" <td>5414</td>\n",
|
||
" <td>A</td>\n",
|
||
" <td>Karamoko Is.</td>\n",
|
||
" <td>Sassuolo</td>\n",
|
||
" <td>Karamoko</td>\n",
|
||
" <td>I</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>562</th>\n",
|
||
" <td>5419</td>\n",
|
||
" <td>A</td>\n",
|
||
" <td>Correia</td>\n",
|
||
" <td>Juventus</td>\n",
|
||
" <td>Correia</td>\n",
|
||
" <td></td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>563</th>\n",
|
||
" <td>5436</td>\n",
|
||
" <td>A</td>\n",
|
||
" <td>Raimondo</td>\n",
|
||
" <td>Bologna</td>\n",
|
||
" <td>Raimondo</td>\n",
|
||
" <td></td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"<p>564 rows × 6 columns</p>\n",
|
||
"</div>"
|
||
],
|
||
"text/plain": [
|
||
" id r name team surname initial\n",
|
||
"0 350 P Donnarumma G. Milan Donnarumma G\n",
|
||
"1 453 P Szczesny Juventus Szczesny \n",
|
||
"2 250 P Handanovic Inter Handanovic \n",
|
||
"3 610 P Gollini Atalanta Gollini \n",
|
||
"4 761 P Audero Sampdoria Audero \n",
|
||
".. ... .. ... ... ... ...\n",
|
||
"559 5361 A Rabbi Bologna Rabbi \n",
|
||
"560 5378 A Oddei Sassuolo Oddei \n",
|
||
"561 5414 A Karamoko Is. Sassuolo Karamoko I\n",
|
||
"562 5419 A Correia Juventus Correia \n",
|
||
"563 5436 A Raimondo Bologna Raimondo \n",
|
||
"\n",
|
||
"[564 rows x 6 columns]"
|
||
]
|
||
},
|
||
"execution_count": 31,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"fc_data = pd.read_excel('fantacalcio/season' + season + '/Quotazioni_Fantacalcio.xlsx', 'Tutti', header = 1)\n",
|
||
"\n",
|
||
"fc_players = fc_data [['Id', 'R', 'Nome', 'Squadra']]\n",
|
||
"\n",
|
||
"fc_players = fc_players.rename(columns = {'Id' : 'id', 'R': 'r', 'Nome' : 'name', 'Squadra' : 'team'})\n",
|
||
"\n",
|
||
"fc_players['surname'] = fc_players['name']\n",
|
||
"fc_players['initial'] = fc_players['name']\n",
|
||
"\n",
|
||
"\n",
|
||
"for i in range(fc_players.shape[0]):\n",
|
||
" spl = normalize_name( fc_players['name'][i].replace('\\'', '') ).split(' ')\n",
|
||
" if('.' in spl[-1]):\n",
|
||
" fc_players['surname'][i] = spl[-2]\n",
|
||
" fc_players['initial'][i] = spl[-1][0]\n",
|
||
" else:\n",
|
||
" fc_players['surname'][i] = spl[-1]\n",
|
||
" fc_players['initial'][i] = ''\n",
|
||
" \n",
|
||
"fc_players\n",
|
||
"\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"id": "9c50e4b5",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"C:\\Users\\nicol\\AppData\\Local\\Temp\\ipykernel_9056\\1456862974.py:4: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" fc_players['fb_ID'][i] = -1\n",
|
||
"C:\\Users\\nicol\\AppData\\Local\\Temp\\ipykernel_9056\\1456862974.py:10: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" fc_players['fb_ID'][i] = j\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"fc_players['fb_ID'] = fc_players['id']\n",
|
||
"\n",
|
||
"for i in range(fc_players.shape[0]):\n",
|
||
" fc_players['fb_ID'][i] = -1\n",
|
||
" \n",
|
||
" for j in range(players.shape[0]):\n",
|
||
" if(fc_players['team'][i].lower() in players['team'][j].lower()):\n",
|
||
" if(fc_players['surname'][i].lower() == players['surname'][j].lower()):\n",
|
||
" # if(fc_players['initial'][i] == '' or fc_players['initial'][i].lower() == players['initial'][j].lower()):\n",
|
||
" fc_players['fb_ID'][i] = j\n",
|
||
" \n",
|
||
" "
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"id": "5a3e2771",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"for i in range(fc_players.shape[0]):\n",
|
||
" if(fc_players['fb_ID'][i] == -1):\n",
|
||
" print(fc_players['name'][i])"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"id": "3b4a36af",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"fc_players"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"id": "1d73a312",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"#Data for Outfield players\n",
|
||
"columns_to_copy = outfield_players.columns[4:]\n",
|
||
"\n",
|
||
"fc_players[columns_to_copy] = 0\n",
|
||
"\n",
|
||
"for i in range(fc_players.shape[0]):\n",
|
||
" if(fc_players['fb_ID'][i] != -1 and fc_players['r'][i] != 'P'):\n",
|
||
" for j in range(columns_to_copy.shape[0]):\n",
|
||
" fc_players[columns_to_copy[j]][i] = outfield_players[columns_to_copy[j]][fc_players['fb_ID'][i]]\n",
|
||
" "
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 14,
|
||
"id": "7acb93e3",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"Index(['age', 'birth_year', 'gk_games', 'gk_games_starts', 'gk_minutes',\n",
|
||
" 'gk_goals_against', 'gk_goals_against_per90',\n",
|
||
" 'gk_shots_on_target_against', 'gk_saves', 'gk_save_pct', 'gk_wins',\n",
|
||
" 'gk_ties', 'gk_losses', 'gk_clean_sheets', 'gk_clean_sheets_pct',\n",
|
||
" 'gk_pens_att', 'gk_pens_allowed', 'gk_pens_saved', 'gk_pens_missed',\n",
|
||
" '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',\n",
|
||
" 'gk_psxg_net_per90', 'gk_passes_completed_launched',\n",
|
||
" 'gk_passes_launched', 'gk_passes_pct_launched', 'gk_passes',\n",
|
||
" 'gk_passes_throws', 'gk_pct_passes_launched', 'gk_passes_length_avg',\n",
|
||
" 'gk_goal_kicks', 'gk_pct_goal_kicks_launched',\n",
|
||
" 'gk_goal_kick_length_avg', 'gk_crosses', 'gk_crosses_stopped',\n",
|
||
" 'gk_crosses_stopped_pct', 'gk_def_actions_outside_pen_area',\n",
|
||
" 'gk_def_actions_outside_pen_area_per90', 'gk_avg_distance_def_actions'],\n",
|
||
" dtype='object')"
|
||
]
|
||
},
|
||
"execution_count": 14,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"keeper_players.columns[4:]"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 15,
|
||
"id": "eb9127a9",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"C:\\Users\\nicol\\AppData\\Local\\Temp\\ipykernel_9056\\3175819694.py:4: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`\n",
|
||
" fc_players[columns_to_copy[2:]] = 0 # add columns but do not override age and birth_year\n",
|
||
"C:\\Users\\nicol\\AppData\\Local\\Temp\\ipykernel_9056\\3175819694.py:4: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`\n",
|
||
" fc_players[columns_to_copy[2:]] = 0 # add columns but do not override age and birth_year\n",
|
||
"C:\\Users\\nicol\\AppData\\Local\\Temp\\ipykernel_9056\\3175819694.py:4: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`\n",
|
||
" fc_players[columns_to_copy[2:]] = 0 # add columns but do not override age and birth_year\n",
|
||
"C:\\Users\\nicol\\AppData\\Local\\Temp\\ipykernel_9056\\3175819694.py:4: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`\n",
|
||
" fc_players[columns_to_copy[2:]] = 0 # add columns but do not override age and birth_year\n",
|
||
"C:\\Users\\nicol\\AppData\\Local\\Temp\\ipykernel_9056\\3175819694.py:4: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`\n",
|
||
" fc_players[columns_to_copy[2:]] = 0 # add columns but do not override age and birth_year\n",
|
||
"C:\\Users\\nicol\\AppData\\Local\\Temp\\ipykernel_9056\\3175819694.py:4: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`\n",
|
||
" fc_players[columns_to_copy[2:]] = 0 # add columns but do not override age and birth_year\n",
|
||
"C:\\Users\\nicol\\AppData\\Local\\Temp\\ipykernel_9056\\3175819694.py:4: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`\n",
|
||
" fc_players[columns_to_copy[2:]] = 0 # add columns but do not override age and birth_year\n",
|
||
"C:\\Users\\nicol\\AppData\\Local\\Temp\\ipykernel_9056\\3175819694.py:4: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`\n",
|
||
" fc_players[columns_to_copy[2:]] = 0 # add columns but do not override age and birth_year\n",
|
||
"C:\\Users\\nicol\\AppData\\Local\\Temp\\ipykernel_9056\\3175819694.py:4: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`\n",
|
||
" fc_players[columns_to_copy[2:]] = 0 # add columns but do not override age and birth_year\n",
|
||
"C:\\Users\\nicol\\AppData\\Local\\Temp\\ipykernel_9056\\3175819694.py:4: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`\n",
|
||
" fc_players[columns_to_copy[2:]] = 0 # add columns but do not override age and birth_year\n",
|
||
"C:\\Users\\nicol\\AppData\\Local\\Temp\\ipykernel_9056\\3175819694.py:4: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`\n",
|
||
" fc_players[columns_to_copy[2:]] = 0 # add columns but do not override age and birth_year\n",
|
||
"C:\\Users\\nicol\\AppData\\Local\\Temp\\ipykernel_9056\\3175819694.py:4: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`\n",
|
||
" fc_players[columns_to_copy[2:]] = 0 # add columns but do not override age and birth_year\n",
|
||
"C:\\Users\\nicol\\AppData\\Local\\Temp\\ipykernel_9056\\3175819694.py:4: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`\n",
|
||
" fc_players[columns_to_copy[2:]] = 0 # add columns but do not override age and birth_year\n",
|
||
"C:\\Users\\nicol\\AppData\\Local\\Temp\\ipykernel_9056\\3175819694.py:4: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`\n",
|
||
" fc_players[columns_to_copy[2:]] = 0 # add columns but do not override age and birth_year\n",
|
||
"C:\\Users\\nicol\\AppData\\Local\\Temp\\ipykernel_9056\\3175819694.py:4: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`\n",
|
||
" fc_players[columns_to_copy[2:]] = 0 # add columns but do not override age and birth_year\n",
|
||
"C:\\Users\\nicol\\AppData\\Local\\Temp\\ipykernel_9056\\3175819694.py:4: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`\n",
|
||
" fc_players[columns_to_copy[2:]] = 0 # add columns but do not override age and birth_year\n",
|
||
"C:\\Users\\nicol\\AppData\\Local\\Temp\\ipykernel_9056\\3175819694.py:4: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`\n",
|
||
" fc_players[columns_to_copy[2:]] = 0 # add columns but do not override age and birth_year\n",
|
||
"C:\\Users\\nicol\\AppData\\Local\\Temp\\ipykernel_9056\\3175819694.py:4: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`\n",
|
||
" fc_players[columns_to_copy[2:]] = 0 # add columns but do not override age and birth_year\n",
|
||
"C:\\Users\\nicol\\AppData\\Local\\Temp\\ipykernel_9056\\3175819694.py:4: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`\n",
|
||
" fc_players[columns_to_copy[2:]] = 0 # add columns but do not override age and birth_year\n",
|
||
"C:\\Users\\nicol\\AppData\\Local\\Temp\\ipykernel_9056\\3175819694.py:4: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`\n",
|
||
" fc_players[columns_to_copy[2:]] = 0 # add columns but do not override age and birth_year\n",
|
||
"C:\\Users\\nicol\\AppData\\Local\\Temp\\ipykernel_9056\\3175819694.py:4: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`\n",
|
||
" fc_players[columns_to_copy[2:]] = 0 # add columns but do not override age and birth_year\n",
|
||
"C:\\Users\\nicol\\AppData\\Local\\Temp\\ipykernel_9056\\3175819694.py:4: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`\n",
|
||
" fc_players[columns_to_copy[2:]] = 0 # add columns but do not override age and birth_year\n",
|
||
"C:\\Users\\nicol\\AppData\\Local\\Temp\\ipykernel_9056\\3175819694.py:4: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`\n",
|
||
" fc_players[columns_to_copy[2:]] = 0 # add columns but do not override age and birth_year\n",
|
||
"C:\\Users\\nicol\\AppData\\Local\\Temp\\ipykernel_9056\\3175819694.py:4: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`\n",
|
||
" fc_players[columns_to_copy[2:]] = 0 # add columns but do not override age and birth_year\n",
|
||
"C:\\Users\\nicol\\AppData\\Local\\Temp\\ipykernel_9056\\3175819694.py:4: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`\n",
|
||
" fc_players[columns_to_copy[2:]] = 0 # add columns but do not override age and birth_year\n",
|
||
"C:\\Users\\nicol\\AppData\\Local\\Temp\\ipykernel_9056\\3175819694.py:4: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`\n",
|
||
" fc_players[columns_to_copy[2:]] = 0 # add columns but do not override age and birth_year\n",
|
||
"C:\\Users\\nicol\\AppData\\Local\\Temp\\ipykernel_9056\\3175819694.py:4: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`\n",
|
||
" fc_players[columns_to_copy[2:]] = 0 # add columns but do not override age and birth_year\n",
|
||
"C:\\Users\\nicol\\AppData\\Local\\Temp\\ipykernel_9056\\3175819694.py:4: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`\n",
|
||
" fc_players[columns_to_copy[2:]] = 0 # add columns but do not override age and birth_year\n",
|
||
"C:\\Users\\nicol\\AppData\\Local\\Temp\\ipykernel_9056\\3175819694.py:4: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`\n",
|
||
" fc_players[columns_to_copy[2:]] = 0 # add columns but do not override age and birth_year\n",
|
||
"C:\\Users\\nicol\\AppData\\Local\\Temp\\ipykernel_9056\\3175819694.py:4: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`\n",
|
||
" fc_players[columns_to_copy[2:]] = 0 # add columns but do not override age and birth_year\n",
|
||
"C:\\Users\\nicol\\AppData\\Local\\Temp\\ipykernel_9056\\3175819694.py:4: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`\n",
|
||
" fc_players[columns_to_copy[2:]] = 0 # add columns but do not override age and birth_year\n",
|
||
"C:\\Users\\nicol\\AppData\\Local\\Temp\\ipykernel_9056\\3175819694.py:4: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`\n",
|
||
" fc_players[columns_to_copy[2:]] = 0 # add columns but do not override age and birth_year\n",
|
||
"C:\\Users\\nicol\\AppData\\Local\\Temp\\ipykernel_9056\\3175819694.py:4: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`\n",
|
||
" fc_players[columns_to_copy[2:]] = 0 # add columns but do not override age and birth_year\n",
|
||
"C:\\Users\\nicol\\AppData\\Local\\Temp\\ipykernel_9056\\3175819694.py:4: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`\n",
|
||
" fc_players[columns_to_copy[2:]] = 0 # add columns but do not override age and birth_year\n",
|
||
"C:\\Users\\nicol\\AppData\\Local\\Temp\\ipykernel_9056\\3175819694.py:4: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`\n",
|
||
" fc_players[columns_to_copy[2:]] = 0 # add columns but do not override age and birth_year\n",
|
||
"C:\\Users\\nicol\\AppData\\Local\\Temp\\ipykernel_9056\\3175819694.py:4: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`\n",
|
||
" fc_players[columns_to_copy[2:]] = 0 # add columns but do not override age and birth_year\n",
|
||
"C:\\Users\\nicol\\AppData\\Local\\Temp\\ipykernel_9056\\3175819694.py:4: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`\n",
|
||
" fc_players[columns_to_copy[2:]] = 0 # add columns but do not override age and birth_year\n",
|
||
"C:\\Users\\nicol\\AppData\\Local\\Temp\\ipykernel_9056\\3175819694.py:4: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`\n",
|
||
" fc_players[columns_to_copy[2:]] = 0 # add columns but do not override age and birth_year\n",
|
||
"C:\\Users\\nicol\\AppData\\Local\\Temp\\ipykernel_9056\\3175819694.py:4: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`\n",
|
||
" fc_players[columns_to_copy[2:]] = 0 # add columns but do not override age and birth_year\n",
|
||
"C:\\Users\\nicol\\AppData\\Local\\Temp\\ipykernel_9056\\3175819694.py:4: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`\n",
|
||
" fc_players[columns_to_copy[2:]] = 0 # add columns but do not override age and birth_year\n",
|
||
"C:\\Users\\nicol\\AppData\\Local\\Temp\\ipykernel_9056\\3175819694.py:12: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" fc_players[columns_to_copy[j]][i] = keeper_players[columns_to_copy[j]][fc_players['fb_ID'][i] - delta_k]\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"#Data for Keepers\n",
|
||
"columns_to_copy = keeper_players.columns[4:]\n",
|
||
"\n",
|
||
"fc_players[columns_to_copy[2:]] = 0 # add columns but do not override age and birth_year\n",
|
||
"\n",
|
||
"delta_k = outfield_players.shape[0]\n",
|
||
"\n",
|
||
"for i in range(fc_players.shape[0]):\n",
|
||
" if(fc_players['fb_ID'][i] != -1 and fc_players['r'][i] == 'P'):\n",
|
||
" if(fc_players['fb_ID'][i] - delta_k >= 0):\n",
|
||
" for j in range(columns_to_copy.shape[0]): \n",
|
||
" fc_players[columns_to_copy[j]][i] = keeper_players[columns_to_copy[j]][fc_players['fb_ID'][i] - delta_k]"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 16,
|
||
"id": "8f2ee8b9",
|
||
"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 \\\n",
|
||
"0 Emil Audero it ITA GK Sampdoria 24 \n",
|
||
"1 Nicola Bagnolini it ITA GK Bologna 17 \n",
|
||
"2 Francesco Bardi it ITA GK Bologna 29 \n",
|
||
"3 Vid Belec si SVN GK Salernitana 31 \n",
|
||
"4 Alessandro Berardi it ITA GK Hellas Verona 30 \n",
|
||
"5 Etrit Berisha al ALB GK Torino 32 \n",
|
||
"6 Andrea Consigli it ITA GK Sassuolo 34 \n",
|
||
"7 Alessio Cragno it ITA GK Cagliari 27 \n",
|
||
"8 Bartłomiej Drągowski pl POL GK Fiorentina 23 \n",
|
||
"9 Wladimiro Falcone it ITA GK Sampdoria 26 \n",
|
||
"10 Vincenzo Fiorillo it ITA GK Salernitana 31 \n",
|
||
"11 Luca Gemello it ITA GK Torino 21 \n",
|
||
"12 Samir Handanović si SVN GK Inter 37 \n",
|
||
"13 Luca Lezzerini it ITA GK Venezia 26 \n",
|
||
"14 Niki Mäenpää fi FIN GK Venezia 36 \n",
|
||
"15 Mike Maignan fr FRA GK Milan 26 \n",
|
||
"16 Davide Marfella it ITA GK Napoli 21 \n",
|
||
"17 Alex Meret it ITA GK Napoli 24 \n",
|
||
"18 Vanja Milinković-Savić rs SRB GK Torino 24 \n",
|
||
"19 Lorenzo Montipò it ITA GK Hellas Verona 25 \n",
|
||
"20 Juan Musso ar ARG GK Atalanta 27 \n",
|
||
"21 David Ospina co COL GK Napoli 32 \n",
|
||
"22 Daniele Padelli it ITA GK Udinese 35 \n",
|
||
"23 Ivor Pandur hr CRO GK Hellas Verona 21 \n",
|
||
"24 Rui Patrício pt POR GK Roma 33 \n",
|
||
"25 Gianluca Pegolo it ITA GK Sassuolo 40 \n",
|
||
"26 Mattia Perin it ITA GK Juventus 28 \n",
|
||
"27 Carlo Pinsoglio it ITA GK Juventus 31 \n",
|
||
"28 Ivan Provedel it ITA GK Spezia 27 \n",
|
||
"29 Ionuț Radu ro ROU GK Inter 24 \n",
|
||
"30 Boris Radunović rs SRB GK Cagliari 25 \n",
|
||
"31 Nicola Ravaglia it ITA GK Sampdoria 32 \n",
|
||
"32 Pepe Reina es ESP GK Lazio 38 \n",
|
||
"33 Sergio Romero ar ARG GK Venezia 34 \n",
|
||
"34 Francesco Rossi it ITA GK Atalanta 30 \n",
|
||
"35 Giacomo Satalino it ITA GK Sassuolo 22 \n",
|
||
"36 Adrian Šemper hr CRO GK Genoa 23 \n",
|
||
"37 Luigi Sepe it ITA GK Salernitana 30 \n",
|
||
"38 Marco Silvestri it ITA GK Udinese 30 \n",
|
||
"39 Salvatore Sirigu it ITA GK Genoa 34 \n",
|
||
"40 Łukasz Skorupski pl POL GK Bologna 30 \n",
|
||
"41 Marco Sportiello it ITA GK Atalanta 29 \n",
|
||
"42 Thomas Strakosha al ALB GK Lazio 26 \n",
|
||
"43 Wojciech Szczęsny pl POL GK Juventus 31 \n",
|
||
"44 Ciprian Tătărușanu ro ROU GK Milan 35 \n",
|
||
"45 Pietro Terracciano it ITA GK Fiorentina 31 \n",
|
||
"46 Guglielmo Vicario it ITA GK Empoli 24 \n",
|
||
"47 Jeroen Zoet nl NED GK Spezia 30 \n",
|
||
"48 Petar Zovko ba BIH GK Spezia 19 \n",
|
||
"\n",
|
||
" birth_year gk_games gk_games_starts gk_minutes gk_goals_against ... \\\n",
|
||
"0 1997 29.0 29.0 2560.0 48.0 ... \n",
|
||
"1 2004 1.0 0.0 3.0 0.0 ... \n",
|
||
"2 1992 2.0 2.0 177.0 2.0 ... \n",
|
||
"3 1990 23.0 21.0 1938.0 49.0 ... \n",
|
||
"4 1991 1.0 1.0 90.0 3.0 ... \n",
|
||
"5 1989 10.0 10.0 900.0 8.0 ... \n",
|
||
"6 1987 37.0 37.0 3322.0 63.0 ... \n",
|
||
"7 1994 35.0 35.0 3150.0 63.0 ... \n",
|
||
"8 1997 7.0 7.0 556.0 8.0 ... \n",
|
||
"9 1995 10.0 9.0 855.0 14.0 ... \n",
|
||
"10 1990 1.0 1.0 90.0 5.0 ... \n",
|
||
"11 2000 1.0 1.0 90.0 0.0 ... \n",
|
||
"12 1984 37.0 37.0 3330.0 30.0 ... \n",
|
||
"13 1995 6.0 6.0 495.0 9.0 ... \n",
|
||
"14 1985 17.0 16.0 1485.0 27.0 ... \n",
|
||
"15 1995 32.0 32.0 2880.0 21.0 ... \n",
|
||
"16 1999 1.0 0.0 11.0 0.0 ... \n",
|
||
"17 1997 7.0 7.0 619.0 6.0 ... \n",
|
||
"18 1997 27.0 27.0 2430.0 33.0 ... \n",
|
||
"19 1996 34.0 34.0 3060.0 50.0 ... \n",
|
||
"20 1994 33.0 33.0 2932.0 42.0 ... \n",
|
||
"21 1988 31.0 31.0 2790.0 25.0 ... \n",
|
||
"22 1985 3.0 3.0 270.0 8.0 ... \n",
|
||
"23 2000 3.0 3.0 270.0 6.0 ... \n",
|
||
"24 1988 38.0 38.0 3420.0 43.0 ... \n",
|
||
"25 1981 1.0 1.0 90.0 3.0 ... \n",
|
||
"26 1992 5.0 5.0 405.0 7.0 ... \n",
|
||
"27 1990 1.0 0.0 45.0 1.0 ... \n",
|
||
"28 1994 31.0 31.0 2761.0 52.0 ... \n",
|
||
"29 1997 1.0 1.0 90.0 2.0 ... \n",
|
||
"30 1996 3.0 3.0 270.0 5.0 ... \n",
|
||
"31 1988 1.0 0.0 5.0 1.0 ... \n",
|
||
"32 1982 15.0 15.0 1350.0 29.0 ... \n",
|
||
"33 1987 16.0 16.0 1440.0 33.0 ... \n",
|
||
"34 1991 1.0 0.0 37.0 1.0 ... \n",
|
||
"35 1999 1.0 0.0 8.0 0.0 ... \n",
|
||
"36 1998 1.0 1.0 90.0 1.0 ... \n",
|
||
"37 1991 16.0 16.0 1392.0 24.0 ... \n",
|
||
"38 1991 35.0 35.0 3150.0 50.0 ... \n",
|
||
"39 1987 37.0 37.0 3330.0 59.0 ... \n",
|
||
"40 1991 36.0 36.0 3240.0 53.0 ... \n",
|
||
"41 1992 5.0 5.0 450.0 5.0 ... \n",
|
||
"42 1995 23.0 23.0 2070.0 29.0 ... \n",
|
||
"43 1990 33.0 33.0 2970.0 29.0 ... \n",
|
||
"44 1986 6.0 6.0 540.0 10.0 ... \n",
|
||
"45 1990 32.0 31.0 2862.0 43.0 ... \n",
|
||
"46 1996 38.0 38.0 3420.0 70.0 ... \n",
|
||
"47 1991 7.0 7.0 630.0 19.0 ... \n",
|
||
"48 2002 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": 16,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"keeper_players"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 17,
|
||
"id": "da977789",
|
||
"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>id</th>\n",
|
||
" <th>r</th>\n",
|
||
" <th>name</th>\n",
|
||
" <th>team</th>\n",
|
||
" <th>surname</th>\n",
|
||
" <th>initial</th>\n",
|
||
" <th>fb_ID</th>\n",
|
||
" <th>age</th>\n",
|
||
" <th>birth_year</th>\n",
|
||
" <th>games</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>4312</td>\n",
|
||
" <td>P</td>\n",
|
||
" <td>Maignan</td>\n",
|
||
" <td>Milan</td>\n",
|
||
" <td>Maignan</td>\n",
|
||
" <td></td>\n",
|
||
" <td>647</td>\n",
|
||
" <td>26</td>\n",
|
||
" <td>1995</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>33.0</td>\n",
|
||
" <td>149</td>\n",
|
||
" <td>38.9</td>\n",
|
||
" <td>36.5</td>\n",
|
||
" <td>347</td>\n",
|
||
" <td>25</td>\n",
|
||
" <td>7.2</td>\n",
|
||
" <td>45</td>\n",
|
||
" <td>1.41</td>\n",
|
||
" <td>16.8</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1</th>\n",
|
||
" <td>453</td>\n",
|
||
" <td>P</td>\n",
|
||
" <td>Szczesny</td>\n",
|
||
" <td>Juventus</td>\n",
|
||
" <td>Szczesny</td>\n",
|
||
" <td></td>\n",
|
||
" <td>675</td>\n",
|
||
" <td>31</td>\n",
|
||
" <td>1990</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>30.8</td>\n",
|
||
" <td>172</td>\n",
|
||
" <td>29.7</td>\n",
|
||
" <td>31.5</td>\n",
|
||
" <td>481</td>\n",
|
||
" <td>24</td>\n",
|
||
" <td>5.0</td>\n",
|
||
" <td>25</td>\n",
|
||
" <td>0.76</td>\n",
|
||
" <td>13.5</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>2</th>\n",
|
||
" <td>2468</td>\n",
|
||
" <td>P</td>\n",
|
||
" <td>Ospina</td>\n",
|
||
" <td>Napoli</td>\n",
|
||
" <td>Ospina</td>\n",
|
||
" <td></td>\n",
|
||
" <td>653</td>\n",
|
||
" <td>32</td>\n",
|
||
" <td>1988</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>28.6</td>\n",
|
||
" <td>135</td>\n",
|
||
" <td>14.1</td>\n",
|
||
" <td>22.5</td>\n",
|
||
" <td>353</td>\n",
|
||
" <td>18</td>\n",
|
||
" <td>5.1</td>\n",
|
||
" <td>31</td>\n",
|
||
" <td>1.00</td>\n",
|
||
" <td>17.0</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>3</th>\n",
|
||
" <td>250</td>\n",
|
||
" <td>P</td>\n",
|
||
" <td>Handanovic</td>\n",
|
||
" <td>Inter</td>\n",
|
||
" <td>Handanovic</td>\n",
|
||
" <td></td>\n",
|
||
" <td>644</td>\n",
|
||
" <td>37</td>\n",
|
||
" <td>1984</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>28.1</td>\n",
|
||
" <td>142</td>\n",
|
||
" <td>20.4</td>\n",
|
||
" <td>26.5</td>\n",
|
||
" <td>393</td>\n",
|
||
" <td>15</td>\n",
|
||
" <td>3.8</td>\n",
|
||
" <td>10</td>\n",
|
||
" <td>0.27</td>\n",
|
||
" <td>11.2</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>4</th>\n",
|
||
" <td>316</td>\n",
|
||
" <td>P</td>\n",
|
||
" <td>Berisha</td>\n",
|
||
" <td>Torino</td>\n",
|
||
" <td>Berisha</td>\n",
|
||
" <td></td>\n",
|
||
" <td>637</td>\n",
|
||
" <td>32</td>\n",
|
||
" <td>1989</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>39.4</td>\n",
|
||
" <td>78</td>\n",
|
||
" <td>87.2</td>\n",
|
||
" <td>58.6</td>\n",
|
||
" <td>148</td>\n",
|
||
" <td>7</td>\n",
|
||
" <td>4.7</td>\n",
|
||
" <td>10</td>\n",
|
||
" <td>1.00</td>\n",
|
||
" <td>14.6</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>545</th>\n",
|
||
" <td>5391</td>\n",
|
||
" <td>A</td>\n",
|
||
" <td>Kokorin</td>\n",
|
||
" <td>Fiorentina</td>\n",
|
||
" <td>Kokorin</td>\n",
|
||
" <td></td>\n",
|
||
" <td>281</td>\n",
|
||
" <td>30</td>\n",
|
||
" <td>1991</td>\n",
|
||
" <td>6</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0.00</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>546</th>\n",
|
||
" <td>5458</td>\n",
|
||
" <td>A</td>\n",
|
||
" <td>Munteanu</td>\n",
|
||
" <td>Fiorentina</td>\n",
|
||
" <td>Munteanu</td>\n",
|
||
" <td></td>\n",
|
||
" <td>-1</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0.00</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>547</th>\n",
|
||
" <td>5459</td>\n",
|
||
" <td>A</td>\n",
|
||
" <td>Buksa</td>\n",
|
||
" <td>Genoa</td>\n",
|
||
" <td>Buksa</td>\n",
|
||
" <td></td>\n",
|
||
" <td>83</td>\n",
|
||
" <td>18</td>\n",
|
||
" <td>2003</td>\n",
|
||
" <td>4</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0.00</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>548</th>\n",
|
||
" <td>5505</td>\n",
|
||
" <td>A</td>\n",
|
||
" <td>Kaio Jorge</td>\n",
|
||
" <td>Juventus</td>\n",
|
||
" <td>Jorge</td>\n",
|
||
" <td></td>\n",
|
||
" <td>264</td>\n",
|
||
" <td>19</td>\n",
|
||
" <td>2002</td>\n",
|
||
" <td>9</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0.00</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>549</th>\n",
|
||
" <td>5785</td>\n",
|
||
" <td>A</td>\n",
|
||
" <td>Lazetic</td>\n",
|
||
" <td>Milan</td>\n",
|
||
" <td>Lazetic</td>\n",
|
||
" <td></td>\n",
|
||
" <td>-1</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0.00</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"<p>550 rows × 167 columns</p>\n",
|
||
"</div>"
|
||
],
|
||
"text/plain": [
|
||
" id r name team surname initial fb_ID age \\\n",
|
||
"0 4312 P Maignan Milan Maignan 647 26 \n",
|
||
"1 453 P Szczesny Juventus Szczesny 675 31 \n",
|
||
"2 2468 P Ospina Napoli Ospina 653 32 \n",
|
||
"3 250 P Handanovic Inter Handanovic 644 37 \n",
|
||
"4 316 P Berisha Torino Berisha 637 32 \n",
|
||
".. ... .. ... ... ... ... ... ... \n",
|
||
"545 5391 A Kokorin Fiorentina Kokorin 281 30 \n",
|
||
"546 5458 A Munteanu Fiorentina Munteanu -1 0 \n",
|
||
"547 5459 A Buksa Genoa Buksa 83 18 \n",
|
||
"548 5505 A Kaio Jorge Juventus Jorge 264 19 \n",
|
||
"549 5785 A Lazetic Milan Lazetic -1 0 \n",
|
||
"\n",
|
||
" birth_year games ... gk_passes_length_avg gk_goal_kicks \\\n",
|
||
"0 1995 0 ... 33.0 149 \n",
|
||
"1 1990 0 ... 30.8 172 \n",
|
||
"2 1988 0 ... 28.6 135 \n",
|
||
"3 1984 0 ... 28.1 142 \n",
|
||
"4 1989 0 ... 39.4 78 \n",
|
||
".. ... ... ... ... ... \n",
|
||
"545 1991 6 ... 0.0 0 \n",
|
||
"546 0 0 ... 0.0 0 \n",
|
||
"547 2003 4 ... 0.0 0 \n",
|
||
"548 2002 9 ... 0.0 0 \n",
|
||
"549 0 0 ... 0.0 0 \n",
|
||
"\n",
|
||
" gk_pct_goal_kicks_launched gk_goal_kick_length_avg gk_crosses \\\n",
|
||
"0 38.9 36.5 347 \n",
|
||
"1 29.7 31.5 481 \n",
|
||
"2 14.1 22.5 353 \n",
|
||
"3 20.4 26.5 393 \n",
|
||
"4 87.2 58.6 148 \n",
|
||
".. ... ... ... \n",
|
||
"545 0.0 0.0 0 \n",
|
||
"546 0.0 0.0 0 \n",
|
||
"547 0.0 0.0 0 \n",
|
||
"548 0.0 0.0 0 \n",
|
||
"549 0.0 0.0 0 \n",
|
||
"\n",
|
||
" gk_crosses_stopped gk_crosses_stopped_pct \\\n",
|
||
"0 25 7.2 \n",
|
||
"1 24 5.0 \n",
|
||
"2 18 5.1 \n",
|
||
"3 15 3.8 \n",
|
||
"4 7 4.7 \n",
|
||
".. ... ... \n",
|
||
"545 0 0.0 \n",
|
||
"546 0 0.0 \n",
|
||
"547 0 0.0 \n",
|
||
"548 0 0.0 \n",
|
||
"549 0 0.0 \n",
|
||
"\n",
|
||
" gk_def_actions_outside_pen_area gk_def_actions_outside_pen_area_per90 \\\n",
|
||
"0 45 1.41 \n",
|
||
"1 25 0.76 \n",
|
||
"2 31 1.00 \n",
|
||
"3 10 0.27 \n",
|
||
"4 10 1.00 \n",
|
||
".. ... ... \n",
|
||
"545 0 0.00 \n",
|
||
"546 0 0.00 \n",
|
||
"547 0 0.00 \n",
|
||
"548 0 0.00 \n",
|
||
"549 0 0.00 \n",
|
||
"\n",
|
||
" gk_avg_distance_def_actions \n",
|
||
"0 16.8 \n",
|
||
"1 13.5 \n",
|
||
"2 17.0 \n",
|
||
"3 11.2 \n",
|
||
"4 14.6 \n",
|
||
".. ... \n",
|
||
"545 0.0 \n",
|
||
"546 0.0 \n",
|
||
"547 0.0 \n",
|
||
"548 0.0 \n",
|
||
"549 0.0 \n",
|
||
"\n",
|
||
"[550 rows x 167 columns]"
|
||
]
|
||
},
|
||
"execution_count": 17,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"fc_players"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 18,
|
||
"id": "5c502f5e",
|
||
"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>vote_avg</th>\n",
|
||
" <th>vote_std</th>\n",
|
||
" </tr>\n",
|
||
" </thead>\n",
|
||
" <tbody>\n",
|
||
" <tr>\n",
|
||
" <th>0</th>\n",
|
||
" <td>6.265625</td>\n",
|
||
" <td>0.483871</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1</th>\n",
|
||
" <td>6.121212</td>\n",
|
||
" <td>0.628012</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>2</th>\n",
|
||
" <td>6.258065</td>\n",
|
||
" <td>0.332899</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>3</th>\n",
|
||
" <td>6.162162</td>\n",
|
||
" <td>0.533399</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>4</th>\n",
|
||
" <td>6.100000</td>\n",
|
||
" <td>0.700000</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>...</th>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>545</th>\n",
|
||
" <td>6.106778</td>\n",
|
||
" <td>0.250641</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>546</th>\n",
|
||
" <td>6.284484</td>\n",
|
||
" <td>0.401907</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>547</th>\n",
|
||
" <td>5.942560</td>\n",
|
||
" <td>0.627453</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>548</th>\n",
|
||
" <td>5.946936</td>\n",
|
||
" <td>0.380747</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>549</th>\n",
|
||
" <td>6.158530</td>\n",
|
||
" <td>0.318287</td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"<p>550 rows × 2 columns</p>\n",
|
||
"</div>"
|
||
],
|
||
"text/plain": [
|
||
" vote_avg vote_std\n",
|
||
"0 6.265625 0.483871\n",
|
||
"1 6.121212 0.628012\n",
|
||
"2 6.258065 0.332899\n",
|
||
"3 6.162162 0.533399\n",
|
||
"4 6.100000 0.700000\n",
|
||
".. ... ...\n",
|
||
"545 6.106778 0.250641\n",
|
||
"546 6.284484 0.401907\n",
|
||
"547 5.942560 0.627453\n",
|
||
"548 5.946936 0.380747\n",
|
||
"549 6.158530 0.318287\n",
|
||
"\n",
|
||
"[550 rows x 2 columns]"
|
||
]
|
||
},
|
||
"execution_count": 18,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"import numpy as np\n",
|
||
"\n",
|
||
"votes = pd.read_excel('mid_outputs/season' + season + '/players_votes.xlsx', index_col = 0)\n",
|
||
"\n",
|
||
"mean_def = 6\n",
|
||
"std_def = 0.58\n",
|
||
"\n",
|
||
"mean_def_P = 6.22\n",
|
||
"std_def_P = 0.43\n",
|
||
"\n",
|
||
"\n",
|
||
"min_votes = 6\n",
|
||
"\n",
|
||
"\n",
|
||
"perf_df = pd.DataFrame(columns = ['vote_avg', 'vote_std'])\n",
|
||
"\n",
|
||
"for i in range(fc_players.shape[0]):\n",
|
||
" v = np.array([])\n",
|
||
" for j in range(votes.shape[0]):\n",
|
||
" if(fc_players['name'][i] == votes['player'][j]):\n",
|
||
" v = np.append(v, votes['vote'][j])\n",
|
||
" \n",
|
||
" if(fc_players['r'][i] == 'P'):\n",
|
||
" mean_def_i = mean_def_P\n",
|
||
" std_def_i = std_def_P\n",
|
||
" \n",
|
||
" if(v.shape[0] < min_votes):\n",
|
||
" for k in range(min_votes - v.shape[0]):\n",
|
||
" v = np.append( v, np.random.normal(mean_def_i, std_def_i) )\n",
|
||
" \n",
|
||
" row_df = pd.DataFrame(data = [[np.mean(v), np.std(v)]], columns = perf_df.columns)\n",
|
||
" perf_df = pd.concat([perf_df, row_df], ignore_index = True)\n",
|
||
" \n",
|
||
"perf_df\n",
|
||
" "
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 19,
|
||
"id": "9e1bc63b",
|
||
"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>id</th>\n",
|
||
" <th>r</th>\n",
|
||
" <th>name</th>\n",
|
||
" <th>team</th>\n",
|
||
" <th>surname</th>\n",
|
||
" <th>initial</th>\n",
|
||
" <th>fb_ID</th>\n",
|
||
" <th>age</th>\n",
|
||
" <th>birth_year</th>\n",
|
||
" <th>games</th>\n",
|
||
" <th>...</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",
|
||
" <th>vote_avg</th>\n",
|
||
" <th>vote_std</th>\n",
|
||
" </tr>\n",
|
||
" </thead>\n",
|
||
" <tbody>\n",
|
||
" <tr>\n",
|
||
" <th>0</th>\n",
|
||
" <td>4312</td>\n",
|
||
" <td>P</td>\n",
|
||
" <td>Maignan</td>\n",
|
||
" <td>Milan</td>\n",
|
||
" <td>Maignan</td>\n",
|
||
" <td></td>\n",
|
||
" <td>647</td>\n",
|
||
" <td>26</td>\n",
|
||
" <td>1995</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>38.9</td>\n",
|
||
" <td>36.5</td>\n",
|
||
" <td>347</td>\n",
|
||
" <td>25</td>\n",
|
||
" <td>7.2</td>\n",
|
||
" <td>45</td>\n",
|
||
" <td>1.41</td>\n",
|
||
" <td>16.8</td>\n",
|
||
" <td>6.265625</td>\n",
|
||
" <td>0.483871</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1</th>\n",
|
||
" <td>453</td>\n",
|
||
" <td>P</td>\n",
|
||
" <td>Szczesny</td>\n",
|
||
" <td>Juventus</td>\n",
|
||
" <td>Szczesny</td>\n",
|
||
" <td></td>\n",
|
||
" <td>675</td>\n",
|
||
" <td>31</td>\n",
|
||
" <td>1990</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>29.7</td>\n",
|
||
" <td>31.5</td>\n",
|
||
" <td>481</td>\n",
|
||
" <td>24</td>\n",
|
||
" <td>5.0</td>\n",
|
||
" <td>25</td>\n",
|
||
" <td>0.76</td>\n",
|
||
" <td>13.5</td>\n",
|
||
" <td>6.121212</td>\n",
|
||
" <td>0.628012</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>2</th>\n",
|
||
" <td>2468</td>\n",
|
||
" <td>P</td>\n",
|
||
" <td>Ospina</td>\n",
|
||
" <td>Napoli</td>\n",
|
||
" <td>Ospina</td>\n",
|
||
" <td></td>\n",
|
||
" <td>653</td>\n",
|
||
" <td>32</td>\n",
|
||
" <td>1988</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>14.1</td>\n",
|
||
" <td>22.5</td>\n",
|
||
" <td>353</td>\n",
|
||
" <td>18</td>\n",
|
||
" <td>5.1</td>\n",
|
||
" <td>31</td>\n",
|
||
" <td>1.00</td>\n",
|
||
" <td>17.0</td>\n",
|
||
" <td>6.258065</td>\n",
|
||
" <td>0.332899</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>3</th>\n",
|
||
" <td>250</td>\n",
|
||
" <td>P</td>\n",
|
||
" <td>Handanovic</td>\n",
|
||
" <td>Inter</td>\n",
|
||
" <td>Handanovic</td>\n",
|
||
" <td></td>\n",
|
||
" <td>644</td>\n",
|
||
" <td>37</td>\n",
|
||
" <td>1984</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>20.4</td>\n",
|
||
" <td>26.5</td>\n",
|
||
" <td>393</td>\n",
|
||
" <td>15</td>\n",
|
||
" <td>3.8</td>\n",
|
||
" <td>10</td>\n",
|
||
" <td>0.27</td>\n",
|
||
" <td>11.2</td>\n",
|
||
" <td>6.162162</td>\n",
|
||
" <td>0.533399</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>4</th>\n",
|
||
" <td>316</td>\n",
|
||
" <td>P</td>\n",
|
||
" <td>Berisha</td>\n",
|
||
" <td>Torino</td>\n",
|
||
" <td>Berisha</td>\n",
|
||
" <td></td>\n",
|
||
" <td>637</td>\n",
|
||
" <td>32</td>\n",
|
||
" <td>1989</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>87.2</td>\n",
|
||
" <td>58.6</td>\n",
|
||
" <td>148</td>\n",
|
||
" <td>7</td>\n",
|
||
" <td>4.7</td>\n",
|
||
" <td>10</td>\n",
|
||
" <td>1.00</td>\n",
|
||
" <td>14.6</td>\n",
|
||
" <td>6.100000</td>\n",
|
||
" <td>0.700000</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>545</th>\n",
|
||
" <td>5391</td>\n",
|
||
" <td>A</td>\n",
|
||
" <td>Kokorin</td>\n",
|
||
" <td>Fiorentina</td>\n",
|
||
" <td>Kokorin</td>\n",
|
||
" <td></td>\n",
|
||
" <td>281</td>\n",
|
||
" <td>30</td>\n",
|
||
" <td>1991</td>\n",
|
||
" <td>6</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0.00</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>6.106778</td>\n",
|
||
" <td>0.250641</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>546</th>\n",
|
||
" <td>5458</td>\n",
|
||
" <td>A</td>\n",
|
||
" <td>Munteanu</td>\n",
|
||
" <td>Fiorentina</td>\n",
|
||
" <td>Munteanu</td>\n",
|
||
" <td></td>\n",
|
||
" <td>-1</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0.00</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>6.284484</td>\n",
|
||
" <td>0.401907</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>547</th>\n",
|
||
" <td>5459</td>\n",
|
||
" <td>A</td>\n",
|
||
" <td>Buksa</td>\n",
|
||
" <td>Genoa</td>\n",
|
||
" <td>Buksa</td>\n",
|
||
" <td></td>\n",
|
||
" <td>83</td>\n",
|
||
" <td>18</td>\n",
|
||
" <td>2003</td>\n",
|
||
" <td>4</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0.00</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>5.942560</td>\n",
|
||
" <td>0.627453</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>548</th>\n",
|
||
" <td>5505</td>\n",
|
||
" <td>A</td>\n",
|
||
" <td>Kaio Jorge</td>\n",
|
||
" <td>Juventus</td>\n",
|
||
" <td>Jorge</td>\n",
|
||
" <td></td>\n",
|
||
" <td>264</td>\n",
|
||
" <td>19</td>\n",
|
||
" <td>2002</td>\n",
|
||
" <td>9</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0.00</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>5.946936</td>\n",
|
||
" <td>0.380747</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>549</th>\n",
|
||
" <td>5785</td>\n",
|
||
" <td>A</td>\n",
|
||
" <td>Lazetic</td>\n",
|
||
" <td>Milan</td>\n",
|
||
" <td>Lazetic</td>\n",
|
||
" <td></td>\n",
|
||
" <td>-1</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0.00</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>6.158530</td>\n",
|
||
" <td>0.318287</td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"<p>550 rows × 169 columns</p>\n",
|
||
"</div>"
|
||
],
|
||
"text/plain": [
|
||
" id r name team surname initial fb_ID age \\\n",
|
||
"0 4312 P Maignan Milan Maignan 647 26 \n",
|
||
"1 453 P Szczesny Juventus Szczesny 675 31 \n",
|
||
"2 2468 P Ospina Napoli Ospina 653 32 \n",
|
||
"3 250 P Handanovic Inter Handanovic 644 37 \n",
|
||
"4 316 P Berisha Torino Berisha 637 32 \n",
|
||
".. ... .. ... ... ... ... ... ... \n",
|
||
"545 5391 A Kokorin Fiorentina Kokorin 281 30 \n",
|
||
"546 5458 A Munteanu Fiorentina Munteanu -1 0 \n",
|
||
"547 5459 A Buksa Genoa Buksa 83 18 \n",
|
||
"548 5505 A Kaio Jorge Juventus Jorge 264 19 \n",
|
||
"549 5785 A Lazetic Milan Lazetic -1 0 \n",
|
||
"\n",
|
||
" birth_year games ... gk_pct_goal_kicks_launched \\\n",
|
||
"0 1995 0 ... 38.9 \n",
|
||
"1 1990 0 ... 29.7 \n",
|
||
"2 1988 0 ... 14.1 \n",
|
||
"3 1984 0 ... 20.4 \n",
|
||
"4 1989 0 ... 87.2 \n",
|
||
".. ... ... ... ... \n",
|
||
"545 1991 6 ... 0.0 \n",
|
||
"546 0 0 ... 0.0 \n",
|
||
"547 2003 4 ... 0.0 \n",
|
||
"548 2002 9 ... 0.0 \n",
|
||
"549 0 0 ... 0.0 \n",
|
||
"\n",
|
||
" gk_goal_kick_length_avg gk_crosses gk_crosses_stopped \\\n",
|
||
"0 36.5 347 25 \n",
|
||
"1 31.5 481 24 \n",
|
||
"2 22.5 353 18 \n",
|
||
"3 26.5 393 15 \n",
|
||
"4 58.6 148 7 \n",
|
||
".. ... ... ... \n",
|
||
"545 0.0 0 0 \n",
|
||
"546 0.0 0 0 \n",
|
||
"547 0.0 0 0 \n",
|
||
"548 0.0 0 0 \n",
|
||
"549 0.0 0 0 \n",
|
||
"\n",
|
||
" gk_crosses_stopped_pct gk_def_actions_outside_pen_area \\\n",
|
||
"0 7.2 45 \n",
|
||
"1 5.0 25 \n",
|
||
"2 5.1 31 \n",
|
||
"3 3.8 10 \n",
|
||
"4 4.7 10 \n",
|
||
".. ... ... \n",
|
||
"545 0.0 0 \n",
|
||
"546 0.0 0 \n",
|
||
"547 0.0 0 \n",
|
||
"548 0.0 0 \n",
|
||
"549 0.0 0 \n",
|
||
"\n",
|
||
" gk_def_actions_outside_pen_area_per90 gk_avg_distance_def_actions \\\n",
|
||
"0 1.41 16.8 \n",
|
||
"1 0.76 13.5 \n",
|
||
"2 1.00 17.0 \n",
|
||
"3 0.27 11.2 \n",
|
||
"4 1.00 14.6 \n",
|
||
".. ... ... \n",
|
||
"545 0.00 0.0 \n",
|
||
"546 0.00 0.0 \n",
|
||
"547 0.00 0.0 \n",
|
||
"548 0.00 0.0 \n",
|
||
"549 0.00 0.0 \n",
|
||
"\n",
|
||
" vote_avg vote_std \n",
|
||
"0 6.265625 0.483871 \n",
|
||
"1 6.121212 0.628012 \n",
|
||
"2 6.258065 0.332899 \n",
|
||
"3 6.162162 0.533399 \n",
|
||
"4 6.100000 0.700000 \n",
|
||
".. ... ... \n",
|
||
"545 6.106778 0.250641 \n",
|
||
"546 6.284484 0.401907 \n",
|
||
"547 5.942560 0.627453 \n",
|
||
"548 5.946936 0.380747 \n",
|
||
"549 6.158530 0.318287 \n",
|
||
"\n",
|
||
"[550 rows x 169 columns]"
|
||
]
|
||
},
|
||
"execution_count": 19,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"fc_players = pd.concat([fc_players, perf_df], axis = 1)\n",
|
||
"\n",
|
||
"fc_players"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 20,
|
||
"id": "494db0f4",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Sportiello, 0.8333333333333334\n",
|
||
"Bardi, 0.33333333333333337\n",
|
||
"Padelli, 0.5\n",
|
||
"Pinsoglio, 0.16666666666666663\n",
|
||
"Semper, 0.16666666666666663\n",
|
||
"Zovko, 0.16666666666666663\n",
|
||
"Radunovic, 0.5\n",
|
||
"Perin, 0.8333333333333334\n",
|
||
"Mirante, 0.0\n",
|
||
"Ujkani, 0.0\n",
|
||
"Marchetti, 0.0\n",
|
||
"Pegolo, 0.16666666666666663\n",
|
||
"Radu I., 0.16666666666666663\n",
|
||
"Cordaz, 0.0\n",
|
||
"Aresti, 0.0\n",
|
||
"Fiorillo, 0.16666666666666663\n",
|
||
"Satalino, 0.16666666666666663\n",
|
||
"Santurro, 0.0\n",
|
||
"Rossi F., 0.16666666666666663\n",
|
||
"Fuzato, 0.0\n",
|
||
"Rosati, 0.0\n",
|
||
"Berardi A., 0.16666666666666663\n",
|
||
"Gemello, 0.16666666666666663\n",
|
||
"Ravaglia, 0.16666666666666663\n",
|
||
"Pandur, 0.5\n",
|
||
"Boer, 0.0\n",
|
||
"Gasparini, 0.0\n",
|
||
"Furlan, 0.0\n",
|
||
"Adamonis, 0.0\n",
|
||
"Marfella, 0.16666666666666663\n",
|
||
"Bertinato, 0.0\n",
|
||
"Molla, 0.0\n",
|
||
"Russo, 0.0\n",
|
||
"Piana, 0.0\n",
|
||
"Neri, 0.0\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"min_gk_games = 6\n",
|
||
"\n",
|
||
"fc_players_newgk = fc_players.copy()\n",
|
||
"\n",
|
||
"columns_to_avg = fc_players.columns[123:] # from gk_games to end\n",
|
||
"\n",
|
||
"for i in range(fc_players.shape[0]):\n",
|
||
" if(fc_players['r'][i] == 'P'):\n",
|
||
" if(fc_players['gk_games'][i] < min_gk_games):\n",
|
||
" for j in range(fc_players.shape[0]):\n",
|
||
" if(fc_players['team'][i] == fc_players['team'][j] and fc_players['gk_games'][j] >= min_gk_games):\n",
|
||
" break\n",
|
||
" \n",
|
||
" weight = 1 - (min_gk_games - fc_players['gk_games'][i]) / min_gk_games\n",
|
||
" \n",
|
||
" fc_players_newgk.at[i, columns_to_avg] = fc_players.loc[i][columns_to_avg] * weight + (1 - weight) * fc_players.loc[j][columns_to_avg]\n",
|
||
" \n",
|
||
" print(fc_players['name'][i] + ', ' + str(weight))\n",
|
||
" \n",
|
||
" "
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 21,
|
||
"id": "3d4eec07",
|
||
"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>id</th>\n",
|
||
" <th>r</th>\n",
|
||
" <th>name</th>\n",
|
||
" <th>team</th>\n",
|
||
" <th>surname</th>\n",
|
||
" <th>initial</th>\n",
|
||
" <th>fb_ID</th>\n",
|
||
" <th>age</th>\n",
|
||
" <th>birth_year</th>\n",
|
||
" <th>games</th>\n",
|
||
" <th>...</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",
|
||
" <th>vote_avg</th>\n",
|
||
" <th>vote_std</th>\n",
|
||
" </tr>\n",
|
||
" </thead>\n",
|
||
" <tbody>\n",
|
||
" <tr>\n",
|
||
" <th>0</th>\n",
|
||
" <td>4312</td>\n",
|
||
" <td>P</td>\n",
|
||
" <td>Maignan</td>\n",
|
||
" <td>Milan</td>\n",
|
||
" <td>Maignan</td>\n",
|
||
" <td></td>\n",
|
||
" <td>647</td>\n",
|
||
" <td>26</td>\n",
|
||
" <td>1995</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>...</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",
|
||
" <td>6.265625</td>\n",
|
||
" <td>0.483871</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1</th>\n",
|
||
" <td>453</td>\n",
|
||
" <td>P</td>\n",
|
||
" <td>Szczesny</td>\n",
|
||
" <td>Juventus</td>\n",
|
||
" <td>Szczesny</td>\n",
|
||
" <td></td>\n",
|
||
" <td>675</td>\n",
|
||
" <td>31</td>\n",
|
||
" <td>1990</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>...</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",
|
||
" <td>6.121212</td>\n",
|
||
" <td>0.628012</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>2</th>\n",
|
||
" <td>2468</td>\n",
|
||
" <td>P</td>\n",
|
||
" <td>Ospina</td>\n",
|
||
" <td>Napoli</td>\n",
|
||
" <td>Ospina</td>\n",
|
||
" <td></td>\n",
|
||
" <td>653</td>\n",
|
||
" <td>32</td>\n",
|
||
" <td>1988</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>...</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",
|
||
" <td>6.258065</td>\n",
|
||
" <td>0.332899</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>3</th>\n",
|
||
" <td>250</td>\n",
|
||
" <td>P</td>\n",
|
||
" <td>Handanovic</td>\n",
|
||
" <td>Inter</td>\n",
|
||
" <td>Handanovic</td>\n",
|
||
" <td></td>\n",
|
||
" <td>644</td>\n",
|
||
" <td>37</td>\n",
|
||
" <td>1984</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>...</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",
|
||
" <td>6.162162</td>\n",
|
||
" <td>0.533399</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>4</th>\n",
|
||
" <td>316</td>\n",
|
||
" <td>P</td>\n",
|
||
" <td>Berisha</td>\n",
|
||
" <td>Torino</td>\n",
|
||
" <td>Berisha</td>\n",
|
||
" <td></td>\n",
|
||
" <td>637</td>\n",
|
||
" <td>32</td>\n",
|
||
" <td>1989</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>...</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",
|
||
" <td>6.100000</td>\n",
|
||
" <td>0.700000</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>545</th>\n",
|
||
" <td>5391</td>\n",
|
||
" <td>A</td>\n",
|
||
" <td>Kokorin</td>\n",
|
||
" <td>Fiorentina</td>\n",
|
||
" <td>Kokorin</td>\n",
|
||
" <td></td>\n",
|
||
" <td>281</td>\n",
|
||
" <td>30</td>\n",
|
||
" <td>1991</td>\n",
|
||
" <td>6</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.00</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>6.106778</td>\n",
|
||
" <td>0.250641</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>546</th>\n",
|
||
" <td>5458</td>\n",
|
||
" <td>A</td>\n",
|
||
" <td>Munteanu</td>\n",
|
||
" <td>Fiorentina</td>\n",
|
||
" <td>Munteanu</td>\n",
|
||
" <td></td>\n",
|
||
" <td>-1</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>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.00</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>6.284484</td>\n",
|
||
" <td>0.401907</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>547</th>\n",
|
||
" <td>5459</td>\n",
|
||
" <td>A</td>\n",
|
||
" <td>Buksa</td>\n",
|
||
" <td>Genoa</td>\n",
|
||
" <td>Buksa</td>\n",
|
||
" <td></td>\n",
|
||
" <td>83</td>\n",
|
||
" <td>18</td>\n",
|
||
" <td>2003</td>\n",
|
||
" <td>4</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.00</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>5.942560</td>\n",
|
||
" <td>0.627453</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>548</th>\n",
|
||
" <td>5505</td>\n",
|
||
" <td>A</td>\n",
|
||
" <td>Kaio Jorge</td>\n",
|
||
" <td>Juventus</td>\n",
|
||
" <td>Jorge</td>\n",
|
||
" <td></td>\n",
|
||
" <td>264</td>\n",
|
||
" <td>19</td>\n",
|
||
" <td>2002</td>\n",
|
||
" <td>9</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.00</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>5.946936</td>\n",
|
||
" <td>0.380747</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>549</th>\n",
|
||
" <td>5785</td>\n",
|
||
" <td>A</td>\n",
|
||
" <td>Lazetic</td>\n",
|
||
" <td>Milan</td>\n",
|
||
" <td>Lazetic</td>\n",
|
||
" <td></td>\n",
|
||
" <td>-1</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>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.00</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>6.158530</td>\n",
|
||
" <td>0.318287</td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"<p>550 rows × 169 columns</p>\n",
|
||
"</div>"
|
||
],
|
||
"text/plain": [
|
||
" id r name team surname initial fb_ID age \\\n",
|
||
"0 4312 P Maignan Milan Maignan 647 26 \n",
|
||
"1 453 P Szczesny Juventus Szczesny 675 31 \n",
|
||
"2 2468 P Ospina Napoli Ospina 653 32 \n",
|
||
"3 250 P Handanovic Inter Handanovic 644 37 \n",
|
||
"4 316 P Berisha Torino Berisha 637 32 \n",
|
||
".. ... .. ... ... ... ... ... ... \n",
|
||
"545 5391 A Kokorin Fiorentina Kokorin 281 30 \n",
|
||
"546 5458 A Munteanu Fiorentina Munteanu -1 0 \n",
|
||
"547 5459 A Buksa Genoa Buksa 83 18 \n",
|
||
"548 5505 A Kaio Jorge Juventus Jorge 264 19 \n",
|
||
"549 5785 A Lazetic Milan Lazetic -1 0 \n",
|
||
"\n",
|
||
" birth_year games ... gk_pct_goal_kicks_launched \\\n",
|
||
"0 1995 0 ... 38.9 \n",
|
||
"1 1990 0 ... 29.7 \n",
|
||
"2 1988 0 ... 14.1 \n",
|
||
"3 1984 0 ... 20.4 \n",
|
||
"4 1989 0 ... 87.2 \n",
|
||
".. ... ... ... ... \n",
|
||
"545 1991 6 ... 0.0 \n",
|
||
"546 0 0 ... 0.0 \n",
|
||
"547 2003 4 ... 0.0 \n",
|
||
"548 2002 9 ... 0.0 \n",
|
||
"549 0 0 ... 0.0 \n",
|
||
"\n",
|
||
" gk_goal_kick_length_avg gk_crosses gk_crosses_stopped \\\n",
|
||
"0 36.5 347.0 25.0 \n",
|
||
"1 31.5 481.0 24.0 \n",
|
||
"2 22.5 353.0 18.0 \n",
|
||
"3 26.5 393.0 15.0 \n",
|
||
"4 58.6 148.0 7.0 \n",
|
||
".. ... ... ... \n",
|
||
"545 0.0 0.0 0.0 \n",
|
||
"546 0.0 0.0 0.0 \n",
|
||
"547 0.0 0.0 0.0 \n",
|
||
"548 0.0 0.0 0.0 \n",
|
||
"549 0.0 0.0 0.0 \n",
|
||
"\n",
|
||
" gk_crosses_stopped_pct gk_def_actions_outside_pen_area \\\n",
|
||
"0 7.2 45.0 \n",
|
||
"1 5.0 25.0 \n",
|
||
"2 5.1 31.0 \n",
|
||
"3 3.8 10.0 \n",
|
||
"4 4.7 10.0 \n",
|
||
".. ... ... \n",
|
||
"545 0.0 0.0 \n",
|
||
"546 0.0 0.0 \n",
|
||
"547 0.0 0.0 \n",
|
||
"548 0.0 0.0 \n",
|
||
"549 0.0 0.0 \n",
|
||
"\n",
|
||
" gk_def_actions_outside_pen_area_per90 gk_avg_distance_def_actions \\\n",
|
||
"0 1.41 16.8 \n",
|
||
"1 0.76 13.5 \n",
|
||
"2 1.00 17.0 \n",
|
||
"3 0.27 11.2 \n",
|
||
"4 1.00 14.6 \n",
|
||
".. ... ... \n",
|
||
"545 0.00 0.0 \n",
|
||
"546 0.00 0.0 \n",
|
||
"547 0.00 0.0 \n",
|
||
"548 0.00 0.0 \n",
|
||
"549 0.00 0.0 \n",
|
||
"\n",
|
||
" vote_avg vote_std \n",
|
||
"0 6.265625 0.483871 \n",
|
||
"1 6.121212 0.628012 \n",
|
||
"2 6.258065 0.332899 \n",
|
||
"3 6.162162 0.533399 \n",
|
||
"4 6.100000 0.700000 \n",
|
||
".. ... ... \n",
|
||
"545 6.106778 0.250641 \n",
|
||
"546 6.284484 0.401907 \n",
|
||
"547 5.942560 0.627453 \n",
|
||
"548 5.946936 0.380747 \n",
|
||
"549 6.158530 0.318287 \n",
|
||
"\n",
|
||
"[550 rows x 169 columns]"
|
||
]
|
||
},
|
||
"execution_count": 21,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"fc_players = fc_players_newgk\n",
|
||
"\n",
|
||
"fc_players"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 22,
|
||
"id": "8336c025",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"fc_players.to_excel('mid_outputs/season' + season + '/players_stats.xlsx')"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"id": "b7a7c972",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": []
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"id": "f3fc9b1b",
|
||
"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
|
||
}
|