From c473a7ac9c89eafc8f26e09a50ce63cce0928ca9 Mon Sep 17 00:00:00 2001 From: je-lv Date: Mon, 4 Nov 2019 21:23:26 -0600 Subject: [PATCH] PR-PT-MX-JoseL --- .../Untitled-checkpoint.ipynb | 6 + .../Untitled1-checkpoint.ipynb | 6 + .../liga_mx_data-checkpoint.ipynb | 219 ++ .../ligamx_equipos_valor-checkpoint.ipynb | 2787 +++++++++++++ .../ligamx_euipos_valor-checkpoint.ipynb | 137 + .../news_test-checkpoint.ipynb | 548 +++ your-code/Estadisticos_LigaMX.xlsx | Bin 0 -> 47245 bytes your-code/Valores_Equipos_LigaMX.xlsx | Bin 0 -> 15217 bytes your-code/data_ligaMX_script.py | 124 + your-code/liga_mx_data.ipynb | 3500 +++++++++++++++++ your-code/ligamx_equipos_valor.ipynb | 2759 +++++++++++++ your-code/valor_de_equipos_script.py | 85 + 12 files changed, 10171 insertions(+) create mode 100644 your-code/.ipynb_checkpoints/Untitled-checkpoint.ipynb create mode 100644 your-code/.ipynb_checkpoints/Untitled1-checkpoint.ipynb create mode 100644 your-code/.ipynb_checkpoints/liga_mx_data-checkpoint.ipynb create mode 100644 your-code/.ipynb_checkpoints/ligamx_equipos_valor-checkpoint.ipynb create mode 100644 your-code/.ipynb_checkpoints/ligamx_euipos_valor-checkpoint.ipynb create mode 100644 your-code/.ipynb_checkpoints/news_test-checkpoint.ipynb create mode 100644 your-code/Estadisticos_LigaMX.xlsx create mode 100644 your-code/Valores_Equipos_LigaMX.xlsx create mode 100644 your-code/data_ligaMX_script.py create mode 100644 your-code/liga_mx_data.ipynb create mode 100644 your-code/ligamx_equipos_valor.ipynb create mode 100644 your-code/valor_de_equipos_script.py diff --git a/your-code/.ipynb_checkpoints/Untitled-checkpoint.ipynb b/your-code/.ipynb_checkpoints/Untitled-checkpoint.ipynb new file mode 100644 index 0000000..2fd6442 --- /dev/null +++ b/your-code/.ipynb_checkpoints/Untitled-checkpoint.ipynb @@ -0,0 +1,6 @@ +{ + "cells": [], + "metadata": {}, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/your-code/.ipynb_checkpoints/Untitled1-checkpoint.ipynb b/your-code/.ipynb_checkpoints/Untitled1-checkpoint.ipynb new file mode 100644 index 0000000..2fd6442 --- /dev/null +++ b/your-code/.ipynb_checkpoints/Untitled1-checkpoint.ipynb @@ -0,0 +1,6 @@ +{ + "cells": [], + "metadata": {}, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/your-code/.ipynb_checkpoints/liga_mx_data-checkpoint.ipynb b/your-code/.ipynb_checkpoints/liga_mx_data-checkpoint.ipynb new file mode 100644 index 0000000..9498706 --- /dev/null +++ b/your-code/.ipynb_checkpoints/liga_mx_data-checkpoint.ipynb @@ -0,0 +1,219 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 79, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " _ _ ___ _____ __ ______ _ \n", + "| | (_) | \\/ |\\ \\ / / | _ \\ | | \n", + "| | _ __ _ __ _| . . | \\ V / | | | |__ _| |_ __ _ \n", + "| | | |/ _` |/ _` | |\\/| | / \\ | | | / _` | __/ _` |\n", + "| |___| | (_| | (_| | | | |/ /^\\ \\ | |/ / (_| | || (_| |\n", + "\\_____/_|\\__, |\\__,_\\_| |_/\\/ \\/ |___/ \\__,_|\\__\\__,_|\n", + " __/ | \n", + " |___/ \n", + " \n" + ] + } + ], + "source": [ + "import base64\n", + "import pandas as pd\n", + "import requests as r\n", + "import ast\n", + "\n", + "print(\"\"\"\n", + " _ _ ___ _____ __ ______ _ \n", + "| | (_) | \\/ |\\ \\ / / | _ \\ | | \n", + "| | _ __ _ __ _| . . | \\ V / | | | |__ _| |_ __ _ \n", + "| | | |/ _` |/ _` | |\\/| | / \\ | | | / _` | __/ _` |\n", + "| |___| | (_| | (_| | | | |/ /^\\ \\ | |/ / (_| | || (_| |\n", + "\\_____/_|\\__, |\\__,_\\_| |_/\\/ \\/ |___/ \\__,_|\\__\\__,_|\n", + " __/ | \n", + " |___/ \n", + " \"\"\")\n", + "\n", + "\n", + "url = \"https://ligamx.net/cancha/estadisticahistorica/1/\"\n", + "base64_string = b'eyJpZERpdmlzaW9uIjoiMSIsImlkVGVtcG9yYWRhIjoiNzAiLCAiaWRUb3JuZW8iOiIxIn0='\n" + ] + }, + { + "cell_type": "code", + "execution_count": 80, + "metadata": {}, + "outputs": [], + "source": [ + "header = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36'} \n", + "\n", + "decoded = base64.decodebytes(base64_string)\n", + "dec = decoded.decode('UTF-8').replace(\"'\", '\"')\n", + "\n", + "d = ast.literal_eval(dec)\n", + "\n", + "n = int(d['idTemporada']) - 1\n", + "\n", + "l = []" + ] + }, + { + "cell_type": "code", + "execution_count": 81, + "metadata": {}, + "outputs": [], + "source": [ + "for i in range(11):\n", + " for x in range(2,0,-1):\n", + " l.append(str({'idDivision': '1', 'idTemporada': str(n), 'idTorneo': str(x)}).replace(' ', '').replace(\"idTorneo\", \" idTorneo\").replace(\"'\", '\"').replace('\",\" ', '\", \"'))\n", + " n-=1\n", + " \n", + "encodedStrings = [str(base64.b64encode(bytes(i, 'utf-8')),'utf-8') for i in l]\n", + "urls = [(url + i) for i in encodedStrings]\n", + "\n", + "dfs_list = []" + ] + }, + { + "cell_type": "code", + "execution_count": 82, + "metadata": {}, + "outputs": [], + "source": [ + "def create_dfs(url):\n", + " cont = r.get(url, headers = header).content\n", + " t = pd.read_html(cont, attrs = {'class': 'default tbl_grals'})\n", + " t[0].columns = t[0].columns.droplevel(level=0)\n", + " df = t[0]\n", + " columns=[('General','POS'),('General','Club'),('TOTAL','JJ'),('TOTAL','JG'), ('TOTAL','JE'),('TOTAL','JP'),('TOTAL','GF'),('TOTAL','GC'),('TOTAL','Dif'),('TOTAL','PTS'),\n", + " ('LOCAL','JJ'),('LOCAL','JG'),('LOCAL','JE'),('LOCAL','JP'),('LOCAL','GF'),('LOCAL','GC'),('LOCAL','Dif'),('LOCAL','PTS'),\n", + " ('VISITANTE','JJ'),('VISITANTE','JG'),('VISITANTE','JE'),('VISITANTE','JP'),('VISITANTE','GF'),('VISITANTE','GC'),('VISITANTE','Dif'),('VISITANTE','PTS')]\n", + " df.columns=pd.MultiIndex.from_tuples(columns)\n", + " dfs_list.append(df)\n", + "\n", + "temporada = 2018\n", + "torneo = 2\n", + "\n", + "#URL inicial insertada en input, generar DF inicial\n", + "create_dfs(url + str(base64_string))" + ] + }, + { + "cell_type": "code", + "execution_count": 83, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[+] Temporada:2018, Torneo:2 --> Appended: ok!\n", + "[+] Temporada:2018, Torneo:1 --> Appended: ok!\n", + "[+] Temporada:2017, Torneo:2 --> Appended: ok!\n", + "[+] Temporada:2017, Torneo:1 --> Appended: ok!\n", + "[+] Temporada:2016, Torneo:2 --> Appended: ok!\n", + "[+] Temporada:2016, Torneo:1 --> Appended: ok!\n", + "[+] Temporada:2015, Torneo:2 --> Appended: ok!\n", + "[+] Temporada:2015, Torneo:1 --> Appended: ok!\n", + "[+] Temporada:2014, Torneo:2 --> Appended: ok!\n", + "[+] Temporada:2014, Torneo:1 --> Appended: ok!\n", + "[+] Temporada:2013, Torneo:2 --> Appended: ok!\n", + "[+] Temporada:2013, Torneo:1 --> Appended: ok!\n", + "[+] Temporada:2012, Torneo:2 --> Appended: ok!\n", + "[+] Temporada:2012, Torneo:1 --> Appended: ok!\n", + "No tables found\n" + ] + } + ], + "source": [ + "try:\n", + " for url in urls:\n", + " create_dfs(url)\n", + " print(f'[+] Temporada:{temporada}, Torneo:{torneo} --> Appended: ok!')\n", + " torneo-=1\n", + " if torneo == 0: \n", + " torneo = 2\n", + " temporada -= 1\n", + "except ValueError as e:\n", + " print(e)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 84, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[+] Excel Generado!\n" + ] + } + ], + "source": [ + "with pd.ExcelWriter('Estadisticos_LigaMX.xlsx') as writer:\n", + " dfs_list[0].to_excel(writer, sheet_name=f'Temp 2019, Torneo 1')\n", + " for df in dfs_list:\n", + " df.to_excel(writer, sheet_name=f'Temp {temporada}, Torneo {torneo}')\n", + " torneo-=1\n", + " if torneo == 0: \n", + " torneo = 2\n", + " temporada -= 1\n", + "print(\"[+] Excel Generado!\")" + ] + }, + { + "cell_type": "code", + "execution_count": 86, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['news_test.ipynb',\n", + " 'Estadisticos_LigaMX.xlsx',\n", + " 'Untitled.ipynb',\n", + " '.ipynb_checkpoints',\n", + " 'Untitled1.ipynb']" + ] + }, + "execution_count": 86, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import os\n", + "\n", + "os.listdir()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "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.7.3" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/your-code/.ipynb_checkpoints/ligamx_equipos_valor-checkpoint.ipynb b/your-code/.ipynb_checkpoints/ligamx_equipos_valor-checkpoint.ipynb new file mode 100644 index 0000000..18c1e3f --- /dev/null +++ b/your-code/.ipynb_checkpoints/ligamx_equipos_valor-checkpoint.ipynb @@ -0,0 +1,2787 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import requests as r\n", + "import json\n", + "import pandas as pd\n", + "import numpy as np\n", + "from bs4 import BeautifulSoup as bs4\n", + "\n", + "url = \"https://www.transfermarkt.com/liga-mx-apertura/startseite/wettbewerb/MEXA/plus/?saison_id=2010\"\n", + "\n", + "header = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36'}\n", + "\n", + "response = r.get(url, headers=header)" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "cont = r.get(url, headers = header).text\n", + "t = pd.read_html(cont, attrs = {'class': 'items'})[0]" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "t.drop(columns=['Club', 'Club.1', 'Players playing abroad', 'name.1', 'Total MV', 'ø MV'], inplace= True)\n", + "t.rename({'name':'Club', 'Squad':'Edad Promedio Jugador', 'ø age':'Jugadores Extranjeros', 'Total market value':'Valor Promedio de Jugador(€)', 'ø market value':'Valor Equipo(€)'}, axis = 1, inplace = True)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "t.index = np.arange(1,len(t)+1)\n", + "df_list = []" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Temporada 2012 Done!\n", + "Temporada 2013 Done!\n", + "Temporada 2014 Done!\n", + "Temporada 2015 Done!\n", + "Temporada 2016 Done!\n", + "Temporada 2017 Done!\n", + "Temporada 2018 Done!\n", + "Temporada 2019 Done!\n" + ] + } + ], + "source": [ + "for i in range(12, 20):\n", + " cont = r.get(f\"https://www.transfermarkt.com/liga-mx-apertura/startseite/wettbewerb/MEXA/plus/?saison_id=20{i}\", headers = header).content\n", + " t = pd.read_html(cont, attrs = {'class': 'items'})[0]\n", + " t.drop(columns=['Club', 'Club.1', 'Players playing abroad', 'name.1', 'Total MV', 'ø MV'], inplace= True)\n", + " t.rename({'name':'Club', 'Squad':'Edad Promedio Jugador', 'ø age':'Jugadores Extranjeros', 'Total market value':'Valor Promedio de Jugador(€)', 'ø market value':'Valor Equipo(€)'}, axis = 1, inplace = True)\n", + " t.index = np.arange(1,len(t)+1)\n", + " df_list.append(t)\n", + " print(f'Temporada 20{i} Done!')" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[+] Excel Generado!\n" + ] + } + ], + "source": [ + "with pd.ExcelWriter('Valores_Equipos_LigaMX.xlsx') as writer:\n", + " temp = 2012\n", + " for df in df_list:\n", + " df.to_excel(writer, sheet_name=f'Temp {temp}')\n", + " temp += 1\n", + " \n", + "print(\"[+] Excel Generado!\")" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[ Club Edad Promedio Jugador Jugadores Extranjeros \\\n", + " 1 Tigres UANL 249 9 \n", + " 2 CF Pachuca 240 12 \n", + " 3 Monterrey 244 6 \n", + " 4 América 234 8 \n", + " 5 CD Cruz Azul 241 5 \n", + " 6 Chivas 225 0 \n", + " 7 Morelia 247 7 \n", + " 8 Santos Laguna 246 9 \n", + " 9 San Luis 254 10 \n", + " 10 UNAM Pumas 232 7 \n", + " 11 Toluca 256 5 \n", + " 12 Jaguares 232 7 \n", + " 13 Atlas 241 8 \n", + " 14 Querétaro FC 249 11 \n", + " 15 Puebla FC 260 9 \n", + " 16 Atlante 246 9 \n", + " 17 Club Tijuana 255 11 \n", + " 18 León 244 7 \n", + " 19 NaN 0 0 \n", + " \n", + " Valor Promedio de Jugador(€) Valor Equipo(€) \n", + " 1 1,31 mil. € 44,40 mil. € \n", + " 2 969 K € 43,63 mil. € \n", + " 3 1,31 mil. € 40,75 mil. € \n", + " 4 957 K € 39,25 mil. € \n", + " 5 951 K € 37,10 mil. € \n", + " 6 888 K € 34,65 mil. € \n", + " 7 856 K € 34,25 mil. € \n", + " 8 1,09 mil. € 33,65 mil. € \n", + " 9 606 K € 30,30 mil. € \n", + " 10 684 K € 30,10 mil. € \n", + " 11 993 K € 29,80 mil. € \n", + " 12 658 K € 28,30 mil. € \n", + " 13 548 K € 26,30 mil. € \n", + " 14 435 K € 25,25 mil. € \n", + " 15 583 K € 24,50 mil. € \n", + " 16 510 K € 23,95 mil. € \n", + " 17 614 K € 22,70 mil. € \n", + " 18 575 K € 21,85 mil. € \n", + " 19 - - ,\n", + " Club Edad Promedio Jugador Jugadores Extranjeros \\\n", + " 1 Tigres UANL 266 9 \n", + " 2 América 246 10 \n", + " 3 Monterrey 244 11 \n", + " 4 Morelia 267 11 \n", + " 5 CD Cruz Azul 260 9 \n", + " 6 Chivas 239 1 \n", + " 7 CF Pachuca 242 11 \n", + " 8 UNAM Pumas 255 10 \n", + " 9 Santos Laguna 236 8 \n", + " 10 Atlas 246 8 \n", + " 11 Querétaro FC 262 13 \n", + " 12 Atlante 264 11 \n", + " 13 Puebla FC 259 9 \n", + " 14 Toluca 263 6 \n", + " 15 Club Tijuana 258 17 \n", + " 16 Chiapas FC 258 8 \n", + " 17 León 248 8 \n", + " 18 Tiburones Rojos 259 8 \n", + " 19 NaN 0 0 \n", + " \n", + " Valor Promedio de Jugador(€) Valor Equipo(€) \n", + " 1 1,29 mil. € 54,05 mil. € \n", + " 2 879 K € 49,20 mil. € \n", + " 3 1,04 mil. € 48,90 mil. € \n", + " 4 870 K € 48,70 mil. € \n", + " 5 1,06 mil. € 46,65 mil. € \n", + " 6 834 K € 45,05 mil. € \n", + " 7 712 K € 37,73 mil. € \n", + " 8 931 K € 36,30 mil. € \n", + " 9 839 K € 33,55 mil. € \n", + " 10 608 K € 33,45 mil. € \n", + " 11 574 K € 32,70 mil. € \n", + " 12 661 K € 31,72 mil. € \n", + " 13 596 K € 31,00 mil. € \n", + " 14 909 K € 30,90 mil. € \n", + " 15 693 K € 29,80 mil. € \n", + " 16 634 K € 27,25 mil. € \n", + " 17 685 K € 26,70 mil. € \n", + " 18 485 K € 17,45 mil. € \n", + " 19 - - ,\n", + " Club Edad Promedio Jugador Jugadores Extranjeros \\\n", + " 1 América 241 13 \n", + " 2 Tigres UANL 244 12 \n", + " 3 Chivas 250 0 \n", + " 4 Monterrey 239 12 \n", + " 5 CD Cruz Azul 273 9 \n", + " 6 Santos Laguna 237 9 \n", + " 7 Toluca 243 6 \n", + " 8 Atlas 259 11 \n", + " 9 Chiapas FC 256 12 \n", + " 10 Puebla FC 268 11 \n", + " 11 León 251 10 \n", + " 12 CF Pachuca 241 11 \n", + " 13 Tiburones Rojos 257 11 \n", + " 14 UNAM Pumas 240 11 \n", + " 15 Querétaro FC 258 12 \n", + " 16 Morelia 240 10 \n", + " 17 Club Tijuana 233 18 \n", + " 18 Leones Negros 252 9 \n", + " 19 NaN 0 0 \n", + " \n", + " Valor Promedio de Jugador(€) Valor Equipo(€) \n", + " 1 1,08 mil. € 45,15 mil. € \n", + " 2 938 K € 45,00 mil. € \n", + " 3 995 K € 38,80 mil. € \n", + " 4 1,07 mil. € 38,60 mil. € \n", + " 5 1,19 mil. € 38,08 mil. € \n", + " 6 968 K € 35,80 mil. € \n", + " 7 786 K € 31,45 mil. € \n", + " 8 746 K € 31,35 mil. € \n", + " 9 680 K € 31,30 mil. € \n", + " 10 736 K € 30,90 mil. € \n", + " 11 859 K € 30,08 mil. € \n", + " 12 822 K € 29,60 mil. € \n", + " 13 626 K € 28,15 mil. € \n", + " 14 552 K € 25,93 mil. € \n", + " 15 610 K € 25,60 mil. € \n", + " 16 543 K € 24,98 mil. € \n", + " 17 568 K € 22,70 mil. € \n", + " 18 465 K € 21,40 mil. € \n", + " 19 - - ,\n", + " Club Edad Promedio Jugador Jugadores Extranjeros \\\n", + " 1 Tigres UANL 257 13 \n", + " 2 Monterrey 245 11 \n", + " 3 CD Cruz Azul 261 13 \n", + " 4 León 244 11 \n", + " 5 CF Pachuca 229 16 \n", + " 6 Atlas 241 14 \n", + " 7 América 251 12 \n", + " 8 Morelia 250 13 \n", + " 9 Santos Laguna 233 8 \n", + " 10 Chivas 245 0 \n", + " 11 Dorados de Sin. 259 16 \n", + " 12 Puebla FC 262 11 \n", + " 13 Chiapas FC 237 12 \n", + " 14 Tiburones Rojos 250 11 \n", + " 15 Querétaro FC 254 13 \n", + " 16 Club Tijuana 239 24 \n", + " 17 UNAM Pumas 238 11 \n", + " 18 Toluca 251 7 \n", + " 19 NaN 0 0 \n", + " \n", + " Valor Promedio de Jugador(€) Valor Equipo(€) \n", + " 1 1,29 mil. € 52,75 mil. € \n", + " 2 1,18 mil. € 47,35 mil. € \n", + " 3 1,09 mil. € 44,65 mil. € \n", + " 4 910 K € 38,20 mil. € \n", + " 5 719 K € 36,65 mil. € \n", + " 6 600 K € 35,98 mil. € \n", + " 7 1,02 mil. € 35,53 mil. € \n", + " 8 679 K € 33,95 mil. € \n", + " 9 1,02 mil. € 32,70 mil. € \n", + " 10 1,05 mil. € 32,60 mil. € \n", + " 11 622 K € 32,33 mil. € \n", + " 12 655 K € 30,15 mil. € \n", + " 13 577 K € 29,45 mil. € \n", + " 14 669 K € 29,43 mil. € \n", + " 15 816 K € 28,55 mil. € \n", + " 16 614 K € 28,25 mil. € \n", + " 17 605 K € 26,00 mil. € \n", + " 18 671 K € 25,50 mil. € \n", + " 19 - - ,\n", + " Club Edad Promedio Jugador Jugadores Extranjeros \\\n", + " 1 Tigres UANL 257 19 \n", + " 2 Monterrey 253 17 \n", + " 3 Santos Laguna 247 16 \n", + " 4 Tiburones Rojos 267 25 \n", + " 5 América 253 16 \n", + " 6 CD Cruz Azul 273 19 \n", + " 7 León 257 15 \n", + " 8 Club Tijuana 259 24 \n", + " 9 Chiapas FC 278 27 \n", + " 10 Toluca 272 13 \n", + " 11 CF Pachuca 230 15 \n", + " 12 Morelia 270 15 \n", + " 13 Chivas 246 0 \n", + " 14 UNAM Pumas 252 11 \n", + " 15 Querétaro FC 261 13 \n", + " 16 Atlas 245 10 \n", + " 17 Puebla FC 281 18 \n", + " 18 Necaxa 280 15 \n", + " 19 NaN 0 0 \n", + " \n", + " Valor Promedio de Jugador(€) Valor Equipo(€) \n", + " 1 1,58 mil. € 69,58 mil. € \n", + " 2 1,38 mil. € 66,00 mil. € \n", + " 3 1,23 mil. € 51,83 mil. € \n", + " 4 866 K € 49,35 mil. € \n", + " 5 1,18 mil. € 48,18 mil. € \n", + " 6 1,16 mil. € 46,20 mil. € \n", + " 7 1,15 mil. € 45,85 mil. € \n", + " 8 1,09 mil. € 44,55 mil. € \n", + " 9 872 K € 44,48 mil. € \n", + " 10 1,05 mil. € 43,13 mil. € \n", + " 11 786 K € 40,85 mil. € \n", + " 12 873 K € 38,40 mil. € \n", + " 13 1,35 mil. € 37,92 mil. € \n", + " 14 907 K € 37,18 mil. € \n", + " 15 905 K € 33,50 mil. € \n", + " 16 682 K € 28,65 mil. € \n", + " 17 753 K € 27,85 mil. € \n", + " 18 709 K € 21,98 mil. € \n", + " 19 - - ,\n", + " Club Edad Promedio Jugador Jugadores Extranjeros \\\n", + " 1 Tigres UANL 255 13 \n", + " 2 Monterrey 246 16 \n", + " 3 Club Tijuana 257 23 \n", + " 4 Santos Laguna 244 14 \n", + " 5 América 243 16 \n", + " 6 CF Pachuca 232 16 \n", + " 7 CD Cruz Azul 259 12 \n", + " 8 Chivas 230 0 \n", + " 9 León 252 19 \n", + " 10 Necaxa 250 18 \n", + " 11 UNAM Pumas 238 10 \n", + " 12 Toluca 253 16 \n", + " 13 Tiburones Rojos 261 21 \n", + " 14 Querétaro FC 259 14 \n", + " 15 Puebla FC 267 19 \n", + " 16 Atlas 234 15 \n", + " 17 Morelia 254 13 \n", + " 18 Lobos 260 13 \n", + " 19 NaN 0 0 \n", + " \n", + " Valor Promedio de Jugador(€) Valor Equipo(€) \n", + " 1 1,98 mil. € 75,10 mil. € \n", + " 2 1,37 mil. € 60,40 mil. € \n", + " 3 1,21 mil. € 50,90 mil. € \n", + " 4 1,14 mil. € 42,25 mil. € \n", + " 5 1,17 mil. € 42,08 mil. € \n", + " 6 909 K € 40,93 mil. € \n", + " 7 1,13 mil. € 36,15 mil. € \n", + " 8 950 K € 36,10 mil. € \n", + " 9 868 K € 35,60 mil. € \n", + " 10 698 K € 34,23 mil. € \n", + " 11 782 K € 32,83 mil. € \n", + " 12 780 K € 32,78 mil. € \n", + " 13 622 K € 31,10 mil. € \n", + " 14 772 K € 30,10 mil. € \n", + " 15 632 K € 29,05 mil. € \n", + " 16 588 K € 27,65 mil. € \n", + " 17 618 K € 23,50 mil. € \n", + " 18 414 K € 18,23 mil. € \n", + " 19 - - ,\n", + " Club Edad Promedio Jugador Jugadores Extranjeros \\\n", + " 1 Tigres UANL 252 20 \n", + " 2 Monterrey 237 14 \n", + " 3 CF Pachuca 248 18 \n", + " 4 CD Cruz Azul 264 13 \n", + " 5 América 231 14 \n", + " 6 Santos Laguna 241 14 \n", + " 7 Chivas 235 0 \n", + " 8 Toluca 260 16 \n", + " 9 León 248 20 \n", + " 10 Club Tijuana 243 22 \n", + " 11 Atlas 237 18 \n", + " 12 UNAM Pumas 236 10 \n", + " 13 Querétaro FC 244 16 \n", + " 14 Necaxa 236 16 \n", + " 15 Puebla FC 252 16 \n", + " 16 Morelia 247 12 \n", + " 17 Tiburones Rojos 252 18 \n", + " 18 Lobos 249 14 \n", + " 19 NaN 0 0 \n", + " \n", + " Valor Promedio de Jugador(€) Valor Equipo(€) \n", + " 1 1,86 mil. € 83,60 mil. € \n", + " 2 1,71 mil. € 70,30 mil. € \n", + " 3 1,32 mil. € 59,50 mil. € \n", + " 4 1,51 mil. € 59,00 mil. € \n", + " 5 1,15 mil. € 50,65 mil. € \n", + " 6 1,20 mil. € 46,85 mil. € \n", + " 7 847 K € 45,73 mil. € \n", + " 8 1,01 mil. € 42,35 mil. € \n", + " 9 895 K € 42,08 mil. € \n", + " 10 839 K € 38,58 mil. € \n", + " 11 638 K € 33,18 mil. € \n", + " 12 826 K € 32,20 mil. € \n", + " 13 728 K € 32,05 mil. € \n", + " 14 552 K € 30,93 mil. € \n", + " 15 521 K € 26,55 mil. € \n", + " 16 656 K € 23,60 mil. € \n", + " 17 443 K € 23,50 mil. € \n", + " 18 475 K € 17,58 mil. € \n", + " 19 - - ,\n", + " Club Edad Promedio Jugador Jugadores Extranjeros \\\n", + " 1 Monterrey 274 12 \n", + " 2 Tigres UANL 272 10 \n", + " 3 CD Cruz Azul 266 11 \n", + " 4 América 259 11 \n", + " 5 CF Pachuca 268 10 \n", + " 6 Santos Laguna 258 9 \n", + " 7 León 270 12 \n", + " 8 Chivas 261 0 \n", + " 9 UNAM Pumas 258 7 \n", + " 10 Club Tijuana 258 12 \n", + " 11 Querétaro FC 264 10 \n", + " 12 Atlas 261 12 \n", + " 13 Morelia 263 13 \n", + " 14 Toluca 282 11 \n", + " 15 Necaxa 256 12 \n", + " 16 Puebla FC 287 11 \n", + " 17 San Luis 267 12 \n", + " 18 FC Juárez 279 12 \n", + " 19 Tiburones Rojos 296 12 \n", + " 20 NaN 510 26,8 Years \n", + " \n", + " Valor Promedio de Jugador(€) Valor Equipo(€) \n", + " 1 3,36 mil. € 84,10 mil. € \n", + " 2 2,77 mil. € 74,90 mil. € \n", + " 3 2,31 mil. € 64,70 mil. € \n", + " 4 2,72 mil. € 62,55 mil. € \n", + " 5 1,98 mil. € 47,40 mil. € \n", + " 6 1,86 mil. € 46,50 mil. € \n", + " 7 1,61 mil. € 43,50 mil. € \n", + " 8 1,55 mil. € 41,80 mil. € \n", + " 9 1,43 mil. € 35,80 mil. € \n", + " 10 1,11 mil. € 34,30 mil. € \n", + " 11 1,12 mil. € 32,60 mil. € \n", + " 12 1,22 mil. € 31,70 mil. € \n", + " 13 1,00 mil. € 29,00 mil. € \n", + " 14 1,22 mil. € 28,00 mil. € \n", + " 15 1,02 mil. € 27,60 mil. € \n", + " 16 854 K € 23,90 mil. € \n", + " 17 830 K € 23,25 mil. € \n", + " 18 697 K € 20,20 mil. € \n", + " 19 600 K € 17,40 mil. € \n", + " 20 769,20 mil. € 1,51 mil. € ]" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_list" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "def sum_dfs(df_list):\n", + " tables = []\n", + " for table in df_list:\n", + " table.sort_values('Club', inplace = True)\n", + " tables.append(table)\n", + " result = pd.concat(tables).groupby(['Club']).sum() \n", + " return tables" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[ Club Edad Promedio Jugador Jugadores Extranjeros \\\n", + " 4 América 234 8 \n", + " 16 Atlante 246 9 \n", + " 13 Atlas 241 8 \n", + " 5 CD Cruz Azul 241 5 \n", + " 2 CF Pachuca 240 12 \n", + " 6 Chivas 225 0 \n", + " 17 Club Tijuana 255 11 \n", + " 12 Jaguares 232 7 \n", + " 18 León 244 7 \n", + " 3 Monterrey 244 6 \n", + " 7 Morelia 247 7 \n", + " 15 Puebla FC 260 9 \n", + " 14 Querétaro FC 249 11 \n", + " 9 San Luis 254 10 \n", + " 8 Santos Laguna 246 9 \n", + " 1 Tigres UANL 249 9 \n", + " 11 Toluca 256 5 \n", + " 10 UNAM Pumas 232 7 \n", + " 19 NaN 0 0 \n", + " \n", + " Valor Promedio de Jugador(€) Valor Equipo(€) \n", + " 4 957 K € 39,25 mil. € \n", + " 16 510 K € 23,95 mil. € \n", + " 13 548 K € 26,30 mil. € \n", + " 5 951 K € 37,10 mil. € \n", + " 2 969 K € 43,63 mil. € \n", + " 6 888 K € 34,65 mil. € \n", + " 17 614 K € 22,70 mil. € \n", + " 12 658 K € 28,30 mil. € \n", + " 18 575 K € 21,85 mil. € \n", + " 3 1,31 mil. € 40,75 mil. € \n", + " 7 856 K € 34,25 mil. € \n", + " 15 583 K € 24,50 mil. € \n", + " 14 435 K € 25,25 mil. € \n", + " 9 606 K € 30,30 mil. € \n", + " 8 1,09 mil. € 33,65 mil. € \n", + " 1 1,31 mil. € 44,40 mil. € \n", + " 11 993 K € 29,80 mil. € \n", + " 10 684 K € 30,10 mil. € \n", + " 19 - - ,\n", + " Club Edad Promedio Jugador Jugadores Extranjeros \\\n", + " 2 América 246 10 \n", + " 12 Atlante 264 11 \n", + " 10 Atlas 246 8 \n", + " 5 CD Cruz Azul 260 9 \n", + " 7 CF Pachuca 242 11 \n", + " 16 Chiapas FC 258 8 \n", + " 6 Chivas 239 1 \n", + " 15 Club Tijuana 258 17 \n", + " 17 León 248 8 \n", + " 3 Monterrey 244 11 \n", + " 4 Morelia 267 11 \n", + " 13 Puebla FC 259 9 \n", + " 11 Querétaro FC 262 13 \n", + " 9 Santos Laguna 236 8 \n", + " 18 Tiburones Rojos 259 8 \n", + " 1 Tigres UANL 266 9 \n", + " 14 Toluca 263 6 \n", + " 8 UNAM Pumas 255 10 \n", + " 19 NaN 0 0 \n", + " \n", + " Valor Promedio de Jugador(€) Valor Equipo(€) \n", + " 2 879 K € 49,20 mil. € \n", + " 12 661 K € 31,72 mil. € \n", + " 10 608 K € 33,45 mil. € \n", + " 5 1,06 mil. € 46,65 mil. € \n", + " 7 712 K € 37,73 mil. € \n", + " 16 634 K € 27,25 mil. € \n", + " 6 834 K € 45,05 mil. € \n", + " 15 693 K € 29,80 mil. € \n", + " 17 685 K € 26,70 mil. € \n", + " 3 1,04 mil. € 48,90 mil. € \n", + " 4 870 K € 48,70 mil. € \n", + " 13 596 K € 31,00 mil. € \n", + " 11 574 K € 32,70 mil. € \n", + " 9 839 K € 33,55 mil. € \n", + " 18 485 K € 17,45 mil. € \n", + " 1 1,29 mil. € 54,05 mil. € \n", + " 14 909 K € 30,90 mil. € \n", + " 8 931 K € 36,30 mil. € \n", + " 19 - - ,\n", + " Club Edad Promedio Jugador Jugadores Extranjeros \\\n", + " 1 América 241 13 \n", + " 8 Atlas 259 11 \n", + " 5 CD Cruz Azul 273 9 \n", + " 12 CF Pachuca 241 11 \n", + " 9 Chiapas FC 256 12 \n", + " 3 Chivas 250 0 \n", + " 17 Club Tijuana 233 18 \n", + " 18 Leones Negros 252 9 \n", + " 11 León 251 10 \n", + " 4 Monterrey 239 12 \n", + " 16 Morelia 240 10 \n", + " 10 Puebla FC 268 11 \n", + " 15 Querétaro FC 258 12 \n", + " 6 Santos Laguna 237 9 \n", + " 13 Tiburones Rojos 257 11 \n", + " 2 Tigres UANL 244 12 \n", + " 7 Toluca 243 6 \n", + " 14 UNAM Pumas 240 11 \n", + " 19 NaN 0 0 \n", + " \n", + " Valor Promedio de Jugador(€) Valor Equipo(€) \n", + " 1 1,08 mil. € 45,15 mil. € \n", + " 8 746 K € 31,35 mil. € \n", + " 5 1,19 mil. € 38,08 mil. € \n", + " 12 822 K € 29,60 mil. € \n", + " 9 680 K € 31,30 mil. € \n", + " 3 995 K € 38,80 mil. € \n", + " 17 568 K € 22,70 mil. € \n", + " 18 465 K € 21,40 mil. € \n", + " 11 859 K € 30,08 mil. € \n", + " 4 1,07 mil. € 38,60 mil. € \n", + " 16 543 K € 24,98 mil. € \n", + " 10 736 K € 30,90 mil. € \n", + " 15 610 K € 25,60 mil. € \n", + " 6 968 K € 35,80 mil. € \n", + " 13 626 K € 28,15 mil. € \n", + " 2 938 K € 45,00 mil. € \n", + " 7 786 K € 31,45 mil. € \n", + " 14 552 K € 25,93 mil. € \n", + " 19 - - ,\n", + " Club Edad Promedio Jugador Jugadores Extranjeros \\\n", + " 7 América 251 12 \n", + " 6 Atlas 241 14 \n", + " 3 CD Cruz Azul 261 13 \n", + " 5 CF Pachuca 229 16 \n", + " 13 Chiapas FC 237 12 \n", + " 10 Chivas 245 0 \n", + " 16 Club Tijuana 239 24 \n", + " 11 Dorados de Sin. 259 16 \n", + " 4 León 244 11 \n", + " 2 Monterrey 245 11 \n", + " 8 Morelia 250 13 \n", + " 12 Puebla FC 262 11 \n", + " 15 Querétaro FC 254 13 \n", + " 9 Santos Laguna 233 8 \n", + " 14 Tiburones Rojos 250 11 \n", + " 1 Tigres UANL 257 13 \n", + " 18 Toluca 251 7 \n", + " 17 UNAM Pumas 238 11 \n", + " 19 NaN 0 0 \n", + " \n", + " Valor Promedio de Jugador(€) Valor Equipo(€) \n", + " 7 1,02 mil. € 35,53 mil. € \n", + " 6 600 K € 35,98 mil. € \n", + " 3 1,09 mil. € 44,65 mil. € \n", + " 5 719 K € 36,65 mil. € \n", + " 13 577 K € 29,45 mil. € \n", + " 10 1,05 mil. € 32,60 mil. € \n", + " 16 614 K € 28,25 mil. € \n", + " 11 622 K € 32,33 mil. € \n", + " 4 910 K € 38,20 mil. € \n", + " 2 1,18 mil. € 47,35 mil. € \n", + " 8 679 K € 33,95 mil. € \n", + " 12 655 K € 30,15 mil. € \n", + " 15 816 K € 28,55 mil. € \n", + " 9 1,02 mil. € 32,70 mil. € \n", + " 14 669 K € 29,43 mil. € \n", + " 1 1,29 mil. € 52,75 mil. € \n", + " 18 671 K € 25,50 mil. € \n", + " 17 605 K € 26,00 mil. € \n", + " 19 - - ,\n", + " Club Edad Promedio Jugador Jugadores Extranjeros \\\n", + " 5 América 253 16 \n", + " 16 Atlas 245 10 \n", + " 6 CD Cruz Azul 273 19 \n", + " 11 CF Pachuca 230 15 \n", + " 9 Chiapas FC 278 27 \n", + " 13 Chivas 246 0 \n", + " 8 Club Tijuana 259 24 \n", + " 7 León 257 15 \n", + " 2 Monterrey 253 17 \n", + " 12 Morelia 270 15 \n", + " 18 Necaxa 280 15 \n", + " 17 Puebla FC 281 18 \n", + " 15 Querétaro FC 261 13 \n", + " 3 Santos Laguna 247 16 \n", + " 4 Tiburones Rojos 267 25 \n", + " 1 Tigres UANL 257 19 \n", + " 10 Toluca 272 13 \n", + " 14 UNAM Pumas 252 11 \n", + " 19 NaN 0 0 \n", + " \n", + " Valor Promedio de Jugador(€) Valor Equipo(€) \n", + " 5 1,18 mil. € 48,18 mil. € \n", + " 16 682 K € 28,65 mil. € \n", + " 6 1,16 mil. € 46,20 mil. € \n", + " 11 786 K € 40,85 mil. € \n", + " 9 872 K € 44,48 mil. € \n", + " 13 1,35 mil. € 37,92 mil. € \n", + " 8 1,09 mil. € 44,55 mil. € \n", + " 7 1,15 mil. € 45,85 mil. € \n", + " 2 1,38 mil. € 66,00 mil. € \n", + " 12 873 K € 38,40 mil. € \n", + " 18 709 K € 21,98 mil. € \n", + " 17 753 K € 27,85 mil. € \n", + " 15 905 K € 33,50 mil. € \n", + " 3 1,23 mil. € 51,83 mil. € \n", + " 4 866 K € 49,35 mil. € \n", + " 1 1,58 mil. € 69,58 mil. € \n", + " 10 1,05 mil. € 43,13 mil. € \n", + " 14 907 K € 37,18 mil. € \n", + " 19 - - ,\n", + " Club Edad Promedio Jugador Jugadores Extranjeros \\\n", + " 5 América 243 16 \n", + " 16 Atlas 234 15 \n", + " 7 CD Cruz Azul 259 12 \n", + " 6 CF Pachuca 232 16 \n", + " 8 Chivas 230 0 \n", + " 3 Club Tijuana 257 23 \n", + " 9 León 252 19 \n", + " 18 Lobos 260 13 \n", + " 2 Monterrey 246 16 \n", + " 17 Morelia 254 13 \n", + " 10 Necaxa 250 18 \n", + " 15 Puebla FC 267 19 \n", + " 14 Querétaro FC 259 14 \n", + " 4 Santos Laguna 244 14 \n", + " 13 Tiburones Rojos 261 21 \n", + " 1 Tigres UANL 255 13 \n", + " 12 Toluca 253 16 \n", + " 11 UNAM Pumas 238 10 \n", + " 19 NaN 0 0 \n", + " \n", + " Valor Promedio de Jugador(€) Valor Equipo(€) \n", + " 5 1,17 mil. € 42,08 mil. € \n", + " 16 588 K € 27,65 mil. € \n", + " 7 1,13 mil. € 36,15 mil. € \n", + " 6 909 K € 40,93 mil. € \n", + " 8 950 K € 36,10 mil. € \n", + " 3 1,21 mil. € 50,90 mil. € \n", + " 9 868 K € 35,60 mil. € \n", + " 18 414 K € 18,23 mil. € \n", + " 2 1,37 mil. € 60,40 mil. € \n", + " 17 618 K € 23,50 mil. € \n", + " 10 698 K € 34,23 mil. € \n", + " 15 632 K € 29,05 mil. € \n", + " 14 772 K € 30,10 mil. € \n", + " 4 1,14 mil. € 42,25 mil. € \n", + " 13 622 K € 31,10 mil. € \n", + " 1 1,98 mil. € 75,10 mil. € \n", + " 12 780 K € 32,78 mil. € \n", + " 11 782 K € 32,83 mil. € \n", + " 19 - - ,\n", + " Club Edad Promedio Jugador Jugadores Extranjeros \\\n", + " 5 América 231 14 \n", + " 11 Atlas 237 18 \n", + " 4 CD Cruz Azul 264 13 \n", + " 3 CF Pachuca 248 18 \n", + " 7 Chivas 235 0 \n", + " 10 Club Tijuana 243 22 \n", + " 9 León 248 20 \n", + " 18 Lobos 249 14 \n", + " 2 Monterrey 237 14 \n", + " 16 Morelia 247 12 \n", + " 14 Necaxa 236 16 \n", + " 15 Puebla FC 252 16 \n", + " 13 Querétaro FC 244 16 \n", + " 6 Santos Laguna 241 14 \n", + " 17 Tiburones Rojos 252 18 \n", + " 1 Tigres UANL 252 20 \n", + " 8 Toluca 260 16 \n", + " 12 UNAM Pumas 236 10 \n", + " 19 NaN 0 0 \n", + " \n", + " Valor Promedio de Jugador(€) Valor Equipo(€) \n", + " 5 1,15 mil. € 50,65 mil. € \n", + " 11 638 K € 33,18 mil. € \n", + " 4 1,51 mil. € 59,00 mil. € \n", + " 3 1,32 mil. € 59,50 mil. € \n", + " 7 847 K € 45,73 mil. € \n", + " 10 839 K € 38,58 mil. € \n", + " 9 895 K € 42,08 mil. € \n", + " 18 475 K € 17,58 mil. € \n", + " 2 1,71 mil. € 70,30 mil. € \n", + " 16 656 K € 23,60 mil. € \n", + " 14 552 K € 30,93 mil. € \n", + " 15 521 K € 26,55 mil. € \n", + " 13 728 K € 32,05 mil. € \n", + " 6 1,20 mil. € 46,85 mil. € \n", + " 17 443 K € 23,50 mil. € \n", + " 1 1,86 mil. € 83,60 mil. € \n", + " 8 1,01 mil. € 42,35 mil. € \n", + " 12 826 K € 32,20 mil. € \n", + " 19 - - ,\n", + " Club Edad Promedio Jugador Jugadores Extranjeros \\\n", + " 4 América 259 11 \n", + " 12 Atlas 261 12 \n", + " 3 CD Cruz Azul 266 11 \n", + " 5 CF Pachuca 268 10 \n", + " 8 Chivas 261 0 \n", + " 10 Club Tijuana 258 12 \n", + " 18 FC Juárez 279 12 \n", + " 7 León 270 12 \n", + " 1 Monterrey 274 12 \n", + " 13 Morelia 263 13 \n", + " 15 Necaxa 256 12 \n", + " 16 Puebla FC 287 11 \n", + " 11 Querétaro FC 264 10 \n", + " 17 San Luis 267 12 \n", + " 6 Santos Laguna 258 9 \n", + " 19 Tiburones Rojos 296 12 \n", + " 2 Tigres UANL 272 10 \n", + " 14 Toluca 282 11 \n", + " 9 UNAM Pumas 258 7 \n", + " 20 NaN 510 26,8 Years \n", + " \n", + " Valor Promedio de Jugador(€) Valor Equipo(€) \n", + " 4 2,72 mil. € 62,55 mil. € \n", + " 12 1,22 mil. € 31,70 mil. € \n", + " 3 2,31 mil. € 64,70 mil. € \n", + " 5 1,98 mil. € 47,40 mil. € \n", + " 8 1,55 mil. € 41,80 mil. € \n", + " 10 1,11 mil. € 34,30 mil. € \n", + " 18 697 K € 20,20 mil. € \n", + " 7 1,61 mil. € 43,50 mil. € \n", + " 1 3,36 mil. € 84,10 mil. € \n", + " 13 1,00 mil. € 29,00 mil. € \n", + " 15 1,02 mil. € 27,60 mil. € \n", + " 16 854 K € 23,90 mil. € \n", + " 11 1,12 mil. € 32,60 mil. € \n", + " 17 830 K € 23,25 mil. € \n", + " 6 1,86 mil. € 46,50 mil. € \n", + " 19 600 K € 17,40 mil. € \n", + " 2 2,77 mil. € 74,90 mil. € \n", + " 14 1,22 mil. € 28,00 mil. € \n", + " 9 1,43 mil. € 35,80 mil. € \n", + " 20 769,20 mil. € 1,51 mil. € ]" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sum_dfs(df_list)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "result = pd.concat(df_list)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ClubEdad Promedio JugadorJugadores ExtranjerosValor Promedio de Jugador(€)Valor Equipo(€)
4América2348957 K €39,25 mil. €
16Atlante2469510 K €23,95 mil. €
13Atlas2418548 K €26,30 mil. €
5CD Cruz Azul2415951 K €37,10 mil. €
2CF Pachuca24012969 K €43,63 mil. €
\n", + "
" + ], + "text/plain": [ + " Club Edad Promedio Jugador Jugadores Extranjeros \\\n", + "4 América 234 8 \n", + "16 Atlante 246 9 \n", + "13 Atlas 241 8 \n", + "5 CD Cruz Azul 241 5 \n", + "2 CF Pachuca 240 12 \n", + "\n", + " Valor Promedio de Jugador(€) Valor Equipo(€) \n", + "4 957 K € 39,25 mil. € \n", + "16 510 K € 23,95 mil. € \n", + "13 548 K € 26,30 mil. € \n", + "5 951 K € 37,10 mil. € \n", + "2 969 K € 43,63 mil. € " + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_list[0].head()" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Club object\n", + "Edad Promedio Jugador int64\n", + "Jugadores Extranjeros int64\n", + "Valor Promedio de Jugador(€) object\n", + "Valor Equipo(€) object\n", + "dtype: object" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_list[0].dtypes\n" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "import re" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "def clean_euros(x):\n", + " if \"mil. €\" in x: return int(re.sub(\" mil. €\",'000000', x).replace(',',''))\n", + " if \"K €\" in x: return int(re.sub(' K €','000', x))\n" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "df_list[-1] = df_list[-1].dropna()" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/jelv/anaconda3/lib/python3.7/site-packages/ipykernel_launcher.py:2: SettingWithCopyWarning: \n", + "A value is trying to be set on a copy of a slice from a DataFrame.\n", + "Try using .loc[row_indexer,col_indexer] = value instead\n", + "\n", + "See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n", + " \n", + "/home/jelv/anaconda3/lib/python3.7/site-packages/ipykernel_launcher.py:3: SettingWithCopyWarning: \n", + "A value is trying to be set on a copy of a slice from a DataFrame.\n", + "Try using .loc[row_indexer,col_indexer] = value instead\n", + "\n", + "See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n", + " This is separate from the ipykernel package so we can avoid doing imports until\n", + "/home/jelv/anaconda3/lib/python3.7/site-packages/ipykernel_launcher.py:4: SettingWithCopyWarning: \n", + "A value is trying to be set on a copy of a slice from a DataFrame.\n", + "Try using .loc[row_indexer,col_indexer] = value instead\n", + "\n", + "See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n", + " after removing the cwd from sys.path.\n", + "/home/jelv/anaconda3/lib/python3.7/site-packages/ipykernel_launcher.py:5: SettingWithCopyWarning: \n", + "A value is trying to be set on a copy of a slice from a DataFrame.\n", + "Try using .loc[row_indexer,col_indexer] = value instead\n", + "\n", + "See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n", + " \"\"\"\n" + ] + } + ], + "source": [ + "for df in df_list:\n", + " df['Jugadores Extranjeros'] = df['Jugadores Extranjeros'].apply(lambda x: int(x))\n", + " df['Valor Promedio de Jugador(€)'] = df['Valor Promedio de Jugador(€)'].apply(clean_euros)\n", + " df['Valor Equipo(€)'] = df['Valor Equipo(€)'].apply(clean_euros)\n", + " df['Edad Promedio Jugador'] = df['Edad Promedio Jugador'].apply(lambda x: x/80)\n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[ Club Edad Promedio Jugador Jugadores Extranjeros \\\n", + " 4 América 2.9250 8 \n", + " 16 Atlante 3.0750 9 \n", + " 13 Atlas 3.0125 8 \n", + " 5 CD Cruz Azul 3.0125 5 \n", + " 2 CF Pachuca 3.0000 12 \n", + " 6 Chivas 2.8125 0 \n", + " 17 Club Tijuana 3.1875 11 \n", + " 12 Jaguares 2.9000 7 \n", + " 18 León 3.0500 7 \n", + " 3 Monterrey 3.0500 6 \n", + " 7 Morelia 3.0875 7 \n", + " 15 Puebla FC 3.2500 9 \n", + " 14 Querétaro FC 3.1125 11 \n", + " 9 San Luis 3.1750 10 \n", + " 8 Santos Laguna 3.0750 9 \n", + " 1 Tigres UANL 3.1125 9 \n", + " 11 Toluca 3.2000 5 \n", + " 10 UNAM Pumas 2.9000 7 \n", + " 19 NaN 0.0000 0 \n", + " \n", + " Valor Promedio de Jugador(€) Valor Equipo(€) \n", + " 4 957000.0 3.925000e+09 \n", + " 16 510000.0 2.395000e+09 \n", + " 13 548000.0 2.630000e+09 \n", + " 5 951000.0 3.710000e+09 \n", + " 2 969000.0 4.363000e+09 \n", + " 6 888000.0 3.465000e+09 \n", + " 17 614000.0 2.270000e+09 \n", + " 12 658000.0 2.830000e+09 \n", + " 18 575000.0 2.185000e+09 \n", + " 3 131000000.0 4.075000e+09 \n", + " 7 856000.0 3.425000e+09 \n", + " 15 583000.0 2.450000e+09 \n", + " 14 435000.0 2.525000e+09 \n", + " 9 606000.0 3.030000e+09 \n", + " 8 109000000.0 3.365000e+09 \n", + " 1 131000000.0 4.440000e+09 \n", + " 11 993000.0 2.980000e+09 \n", + " 10 684000.0 3.010000e+09 \n", + " 19 NaN NaN ,\n", + " Club Edad Promedio Jugador Jugadores Extranjeros \\\n", + " 2 América 3.0750 10 \n", + " 12 Atlante 3.3000 11 \n", + " 10 Atlas 3.0750 8 \n", + " 5 CD Cruz Azul 3.2500 9 \n", + " 7 CF Pachuca 3.0250 11 \n", + " 16 Chiapas FC 3.2250 8 \n", + " 6 Chivas 2.9875 1 \n", + " 15 Club Tijuana 3.2250 17 \n", + " 17 León 3.1000 8 \n", + " 3 Monterrey 3.0500 11 \n", + " 4 Morelia 3.3375 11 \n", + " 13 Puebla FC 3.2375 9 \n", + " 11 Querétaro FC 3.2750 13 \n", + " 9 Santos Laguna 2.9500 8 \n", + " 18 Tiburones Rojos 3.2375 8 \n", + " 1 Tigres UANL 3.3250 9 \n", + " 14 Toluca 3.2875 6 \n", + " 8 UNAM Pumas 3.1875 10 \n", + " 19 NaN 0.0000 0 \n", + " \n", + " Valor Promedio de Jugador(€) Valor Equipo(€) \n", + " 2 879000.0 4.920000e+09 \n", + " 12 661000.0 3.172000e+09 \n", + " 10 608000.0 3.345000e+09 \n", + " 5 106000000.0 4.665000e+09 \n", + " 7 712000.0 3.773000e+09 \n", + " 16 634000.0 2.725000e+09 \n", + " 6 834000.0 4.505000e+09 \n", + " 15 693000.0 2.980000e+09 \n", + " 17 685000.0 2.670000e+09 \n", + " 3 104000000.0 4.890000e+09 \n", + " 4 870000.0 4.870000e+09 \n", + " 13 596000.0 3.100000e+09 \n", + " 11 574000.0 3.270000e+09 \n", + " 9 839000.0 3.355000e+09 \n", + " 18 485000.0 1.745000e+09 \n", + " 1 129000000.0 5.405000e+09 \n", + " 14 909000.0 3.090000e+09 \n", + " 8 931000.0 3.630000e+09 \n", + " 19 NaN NaN ,\n", + " Club Edad Promedio Jugador Jugadores Extranjeros \\\n", + " 1 América 3.0125 13 \n", + " 8 Atlas 3.2375 11 \n", + " 5 CD Cruz Azul 3.4125 9 \n", + " 12 CF Pachuca 3.0125 11 \n", + " 9 Chiapas FC 3.2000 12 \n", + " 3 Chivas 3.1250 0 \n", + " 17 Club Tijuana 2.9125 18 \n", + " 18 Leones Negros 3.1500 9 \n", + " 11 León 3.1375 10 \n", + " 4 Monterrey 2.9875 12 \n", + " 16 Morelia 3.0000 10 \n", + " 10 Puebla FC 3.3500 11 \n", + " 15 Querétaro FC 3.2250 12 \n", + " 6 Santos Laguna 2.9625 9 \n", + " 13 Tiburones Rojos 3.2125 11 \n", + " 2 Tigres UANL 3.0500 12 \n", + " 7 Toluca 3.0375 6 \n", + " 14 UNAM Pumas 3.0000 11 \n", + " 19 NaN 0.0000 0 \n", + " \n", + " Valor Promedio de Jugador(€) Valor Equipo(€) \n", + " 1 108000000.0 4.515000e+09 \n", + " 8 746000.0 3.135000e+09 \n", + " 5 119000000.0 3.808000e+09 \n", + " 12 822000.0 2.960000e+09 \n", + " 9 680000.0 3.130000e+09 \n", + " 3 995000.0 3.880000e+09 \n", + " 17 568000.0 2.270000e+09 \n", + " 18 465000.0 2.140000e+09 \n", + " 11 859000.0 3.008000e+09 \n", + " 4 107000000.0 3.860000e+09 \n", + " 16 543000.0 2.498000e+09 \n", + " 10 736000.0 3.090000e+09 \n", + " 15 610000.0 2.560000e+09 \n", + " 6 968000.0 3.580000e+09 \n", + " 13 626000.0 2.815000e+09 \n", + " 2 938000.0 4.500000e+09 \n", + " 7 786000.0 3.145000e+09 \n", + " 14 552000.0 2.593000e+09 \n", + " 19 NaN NaN ,\n", + " Club Edad Promedio Jugador Jugadores Extranjeros \\\n", + " 7 América 3.1375 12 \n", + " 6 Atlas 3.0125 14 \n", + " 3 CD Cruz Azul 3.2625 13 \n", + " 5 CF Pachuca 2.8625 16 \n", + " 13 Chiapas FC 2.9625 12 \n", + " 10 Chivas 3.0625 0 \n", + " 16 Club Tijuana 2.9875 24 \n", + " 11 Dorados de Sin. 3.2375 16 \n", + " 4 León 3.0500 11 \n", + " 2 Monterrey 3.0625 11 \n", + " 8 Morelia 3.1250 13 \n", + " 12 Puebla FC 3.2750 11 \n", + " 15 Querétaro FC 3.1750 13 \n", + " 9 Santos Laguna 2.9125 8 \n", + " 14 Tiburones Rojos 3.1250 11 \n", + " 1 Tigres UANL 3.2125 13 \n", + " 18 Toluca 3.1375 7 \n", + " 17 UNAM Pumas 2.9750 11 \n", + " 19 NaN 0.0000 0 \n", + " \n", + " Valor Promedio de Jugador(€) Valor Equipo(€) \n", + " 7 102000000.0 3.553000e+09 \n", + " 6 600000.0 3.598000e+09 \n", + " 3 109000000.0 4.465000e+09 \n", + " 5 719000.0 3.665000e+09 \n", + " 13 577000.0 2.945000e+09 \n", + " 10 105000000.0 3.260000e+09 \n", + " 16 614000.0 2.825000e+09 \n", + " 11 622000.0 3.233000e+09 \n", + " 4 910000.0 3.820000e+09 \n", + " 2 118000000.0 4.735000e+09 \n", + " 8 679000.0 3.395000e+09 \n", + " 12 655000.0 3.015000e+09 \n", + " 15 816000.0 2.855000e+09 \n", + " 9 102000000.0 3.270000e+09 \n", + " 14 669000.0 2.943000e+09 \n", + " 1 129000000.0 5.275000e+09 \n", + " 18 671000.0 2.550000e+09 \n", + " 17 605000.0 2.600000e+09 \n", + " 19 NaN NaN ,\n", + " Club Edad Promedio Jugador Jugadores Extranjeros \\\n", + " 5 América 3.1625 16 \n", + " 16 Atlas 3.0625 10 \n", + " 6 CD Cruz Azul 3.4125 19 \n", + " 11 CF Pachuca 2.8750 15 \n", + " 9 Chiapas FC 3.4750 27 \n", + " 13 Chivas 3.0750 0 \n", + " 8 Club Tijuana 3.2375 24 \n", + " 7 León 3.2125 15 \n", + " 2 Monterrey 3.1625 17 \n", + " 12 Morelia 3.3750 15 \n", + " 18 Necaxa 3.5000 15 \n", + " 17 Puebla FC 3.5125 18 \n", + " 15 Querétaro FC 3.2625 13 \n", + " 3 Santos Laguna 3.0875 16 \n", + " 4 Tiburones Rojos 3.3375 25 \n", + " 1 Tigres UANL 3.2125 19 \n", + " 10 Toluca 3.4000 13 \n", + " 14 UNAM Pumas 3.1500 11 \n", + " 19 NaN 0.0000 0 \n", + " \n", + " Valor Promedio de Jugador(€) Valor Equipo(€) \n", + " 5 118000000.0 4.818000e+09 \n", + " 16 682000.0 2.865000e+09 \n", + " 6 116000000.0 4.620000e+09 \n", + " 11 786000.0 4.085000e+09 \n", + " 9 872000.0 4.448000e+09 \n", + " 13 135000000.0 3.792000e+09 \n", + " 8 109000000.0 4.455000e+09 \n", + " 7 115000000.0 4.585000e+09 \n", + " 2 138000000.0 6.600000e+09 \n", + " 12 873000.0 3.840000e+09 \n", + " 18 709000.0 2.198000e+09 \n", + " 17 753000.0 2.785000e+09 \n", + " 15 905000.0 3.350000e+09 \n", + " 3 123000000.0 5.183000e+09 \n", + " 4 866000.0 4.935000e+09 \n", + " 1 158000000.0 6.958000e+09 \n", + " 10 105000000.0 4.313000e+09 \n", + " 14 907000.0 3.718000e+09 \n", + " 19 NaN NaN ,\n", + " Club Edad Promedio Jugador Jugadores Extranjeros \\\n", + " 5 América 3.0375 16 \n", + " 16 Atlas 2.9250 15 \n", + " 7 CD Cruz Azul 3.2375 12 \n", + " 6 CF Pachuca 2.9000 16 \n", + " 8 Chivas 2.8750 0 \n", + " 3 Club Tijuana 3.2125 23 \n", + " 9 León 3.1500 19 \n", + " 18 Lobos 3.2500 13 \n", + " 2 Monterrey 3.0750 16 \n", + " 17 Morelia 3.1750 13 \n", + " 10 Necaxa 3.1250 18 \n", + " 15 Puebla FC 3.3375 19 \n", + " 14 Querétaro FC 3.2375 14 \n", + " 4 Santos Laguna 3.0500 14 \n", + " 13 Tiburones Rojos 3.2625 21 \n", + " 1 Tigres UANL 3.1875 13 \n", + " 12 Toluca 3.1625 16 \n", + " 11 UNAM Pumas 2.9750 10 \n", + " 19 NaN 0.0000 0 \n", + " \n", + " Valor Promedio de Jugador(€) Valor Equipo(€) \n", + " 5 117000000.0 4.208000e+09 \n", + " 16 588000.0 2.765000e+09 \n", + " 7 113000000.0 3.615000e+09 \n", + " 6 909000.0 4.093000e+09 \n", + " 8 950000.0 3.610000e+09 \n", + " 3 121000000.0 5.090000e+09 \n", + " 9 868000.0 3.560000e+09 \n", + " 18 414000.0 1.823000e+09 \n", + " 2 137000000.0 6.040000e+09 \n", + " 17 618000.0 2.350000e+09 \n", + " 10 698000.0 3.423000e+09 \n", + " 15 632000.0 2.905000e+09 \n", + " 14 772000.0 3.010000e+09 \n", + " 4 114000000.0 4.225000e+09 \n", + " 13 622000.0 3.110000e+09 \n", + " 1 198000000.0 7.510000e+09 \n", + " 12 780000.0 3.278000e+09 \n", + " 11 782000.0 3.283000e+09 \n", + " 19 NaN NaN ,\n", + " Club Edad Promedio Jugador Jugadores Extranjeros \\\n", + " 5 América 2.8875 14 \n", + " 11 Atlas 2.9625 18 \n", + " 4 CD Cruz Azul 3.3000 13 \n", + " 3 CF Pachuca 3.1000 18 \n", + " 7 Chivas 2.9375 0 \n", + " 10 Club Tijuana 3.0375 22 \n", + " 9 León 3.1000 20 \n", + " 18 Lobos 3.1125 14 \n", + " 2 Monterrey 2.9625 14 \n", + " 16 Morelia 3.0875 12 \n", + " 14 Necaxa 2.9500 16 \n", + " 15 Puebla FC 3.1500 16 \n", + " 13 Querétaro FC 3.0500 16 \n", + " 6 Santos Laguna 3.0125 14 \n", + " 17 Tiburones Rojos 3.1500 18 \n", + " 1 Tigres UANL 3.1500 20 \n", + " 8 Toluca 3.2500 16 \n", + " 12 UNAM Pumas 2.9500 10 \n", + " 19 NaN 0.0000 0 \n", + " \n", + " Valor Promedio de Jugador(€) Valor Equipo(€) \n", + " 5 115000000.0 5.065000e+09 \n", + " 11 638000.0 3.318000e+09 \n", + " 4 151000000.0 5.900000e+09 \n", + " 3 132000000.0 5.950000e+09 \n", + " 7 847000.0 4.573000e+09 \n", + " 10 839000.0 3.858000e+09 \n", + " 9 895000.0 4.208000e+09 \n", + " 18 475000.0 1.758000e+09 \n", + " 2 171000000.0 7.030000e+09 \n", + " 16 656000.0 2.360000e+09 \n", + " 14 552000.0 3.093000e+09 \n", + " 15 521000.0 2.655000e+09 \n", + " 13 728000.0 3.205000e+09 \n", + " 6 120000000.0 4.685000e+09 \n", + " 17 443000.0 2.350000e+09 \n", + " 1 186000000.0 8.360000e+09 \n", + " 8 101000000.0 4.235000e+09 \n", + " 12 826000.0 3.220000e+09 \n", + " 19 NaN NaN ,\n", + " Club Edad Promedio Jugador Jugadores Extranjeros \\\n", + " 4 América 3.2375 11 \n", + " 12 Atlas 3.2625 12 \n", + " 3 CD Cruz Azul 3.3250 11 \n", + " 5 CF Pachuca 3.3500 10 \n", + " 8 Chivas 3.2625 0 \n", + " 10 Club Tijuana 3.2250 12 \n", + " 18 FC Juárez 3.4875 12 \n", + " 7 León 3.3750 12 \n", + " 1 Monterrey 3.4250 12 \n", + " 13 Morelia 3.2875 13 \n", + " 15 Necaxa 3.2000 12 \n", + " 16 Puebla FC 3.5875 11 \n", + " 11 Querétaro FC 3.3000 10 \n", + " 17 San Luis 3.3375 12 \n", + " 6 Santos Laguna 3.2250 9 \n", + " 19 Tiburones Rojos 3.7000 12 \n", + " 2 Tigres UANL 3.4000 10 \n", + " 14 Toluca 3.5250 11 \n", + " 9 UNAM Pumas 3.2250 7 \n", + " \n", + " Valor Promedio de Jugador(€) Valor Equipo(€) \n", + " 4 272000000 6255000000 \n", + " 12 122000000 3170000000 \n", + " 3 231000000 6470000000 \n", + " 5 198000000 4740000000 \n", + " 8 155000000 4180000000 \n", + " 10 111000000 3430000000 \n", + " 18 697000 2020000000 \n", + " 7 161000000 4350000000 \n", + " 1 336000000 8410000000 \n", + " 13 100000000 2900000000 \n", + " 15 102000000 2760000000 \n", + " 16 854000 2390000000 \n", + " 11 112000000 3260000000 \n", + " 17 830000 2325000000 \n", + " 6 186000000 4650000000 \n", + " 19 600000 1740000000 \n", + " 2 277000000 7490000000 \n", + " 14 122000000 2800000000 \n", + " 9 143000000 3580000000 ]" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_list" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "result = pd.concat(df_list)" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "final_table = result.groupby(['Club']).sum()" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Edad Promedio JugadorJugadores ExtranjerosValor Promedio de Jugador(€)Valor Equipo(€)
Club
América24.47501008.338360e+083.725900e+10
Atlante6.3750201.171000e+065.567000e+09
Atlas24.5500961.264100e+082.482600e+10
CD Cruz Azul26.2125919.459510e+083.725300e+10
CF Pachuca24.12501093.349170e+083.362900e+10
Chiapas FC12.8625592.763000e+061.324800e+10
Chivas24.137513.995140e+083.126500e+10
Club Tijuana25.02501513.443280e+082.717800e+10
Dorados de Sin.3.2375166.220000e+053.233000e+09
FC Juárez3.4875126.970000e+052.020000e+09
Jaguares2.900076.580000e+052.830000e+09
Leones Negros3.150094.650000e+052.140000e+09
León25.17501022.807920e+082.838600e+10
Lobos6.3625278.890000e+053.581000e+09
Monterrey24.7750991.242000e+094.564000e+10
Morelia25.4750941.050950e+082.563800e+10
Necaxa12.7750611.039590e+081.147400e+10
Puebla FC26.70001045.330000e+062.239000e+10
Querétaro FC25.63751021.168400e+082.403500e+10
San Luis6.5125221.436000e+065.355000e+09
Santos Laguna24.2750877.558070e+083.231300e+10
Tiburones Rojos23.02501064.311000e+061.963800e+10
Tigres UANL25.65001051.208938e+094.993800e+10
Toluca26.0000803.321390e+082.639100e+10
UNAM Pumas24.3625771.482870e+082.563400e+10
\n", + "
" + ], + "text/plain": [ + " Edad Promedio Jugador Jugadores Extranjeros \\\n", + "Club \n", + "América 24.4750 100 \n", + "Atlante 6.3750 20 \n", + "Atlas 24.5500 96 \n", + "CD Cruz Azul 26.2125 91 \n", + "CF Pachuca 24.1250 109 \n", + "Chiapas FC 12.8625 59 \n", + "Chivas 24.1375 1 \n", + "Club Tijuana 25.0250 151 \n", + "Dorados de Sin. 3.2375 16 \n", + "FC Juárez 3.4875 12 \n", + "Jaguares 2.9000 7 \n", + "Leones Negros 3.1500 9 \n", + "León 25.1750 102 \n", + "Lobos 6.3625 27 \n", + "Monterrey 24.7750 99 \n", + "Morelia 25.4750 94 \n", + "Necaxa 12.7750 61 \n", + "Puebla FC 26.7000 104 \n", + "Querétaro FC 25.6375 102 \n", + "San Luis 6.5125 22 \n", + "Santos Laguna 24.2750 87 \n", + "Tiburones Rojos 23.0250 106 \n", + "Tigres UANL 25.6500 105 \n", + "Toluca 26.0000 80 \n", + "UNAM Pumas 24.3625 77 \n", + "\n", + " Valor Promedio de Jugador(€) Valor Equipo(€) \n", + "Club \n", + "América 8.338360e+08 3.725900e+10 \n", + "Atlante 1.171000e+06 5.567000e+09 \n", + "Atlas 1.264100e+08 2.482600e+10 \n", + "CD Cruz Azul 9.459510e+08 3.725300e+10 \n", + "CF Pachuca 3.349170e+08 3.362900e+10 \n", + "Chiapas FC 2.763000e+06 1.324800e+10 \n", + "Chivas 3.995140e+08 3.126500e+10 \n", + "Club Tijuana 3.443280e+08 2.717800e+10 \n", + "Dorados de Sin. 6.220000e+05 3.233000e+09 \n", + "FC Juárez 6.970000e+05 2.020000e+09 \n", + "Jaguares 6.580000e+05 2.830000e+09 \n", + "Leones Negros 4.650000e+05 2.140000e+09 \n", + "León 2.807920e+08 2.838600e+10 \n", + "Lobos 8.890000e+05 3.581000e+09 \n", + "Monterrey 1.242000e+09 4.564000e+10 \n", + "Morelia 1.050950e+08 2.563800e+10 \n", + "Necaxa 1.039590e+08 1.147400e+10 \n", + "Puebla FC 5.330000e+06 2.239000e+10 \n", + "Querétaro FC 1.168400e+08 2.403500e+10 \n", + "San Luis 1.436000e+06 5.355000e+09 \n", + "Santos Laguna 7.558070e+08 3.231300e+10 \n", + "Tiburones Rojos 4.311000e+06 1.963800e+10 \n", + "Tigres UANL 1.208938e+09 4.993800e+10 \n", + "Toluca 3.321390e+08 2.639100e+10 \n", + "UNAM Pumas 1.482870e+08 2.563400e+10 " + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "final_table" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Vemos que del 2012 a la fecha los equipos con mas valor en el mercado son los de MTY\n", + "## Seguido de los de la CDMX dejando aun lado PUMAS" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Edad Promedio JugadorJugadores ExtranjerosValor Promedio de Jugador(€)Valor Equipo(€)
Club
Tigres UANL25.65001051.208938e+094.993800e+10
Monterrey24.7750991.242000e+094.564000e+10
América24.47501008.338360e+083.725900e+10
CD Cruz Azul26.2125919.459510e+083.725300e+10
CF Pachuca24.12501093.349170e+083.362900e+10
Santos Laguna24.2750877.558070e+083.231300e+10
Chivas24.137513.995140e+083.126500e+10
León25.17501022.807920e+082.838600e+10
Club Tijuana25.02501513.443280e+082.717800e+10
Toluca26.0000803.321390e+082.639100e+10
\n", + "
" + ], + "text/plain": [ + " Edad Promedio Jugador Jugadores Extranjeros \\\n", + "Club \n", + "Tigres UANL 25.6500 105 \n", + "Monterrey 24.7750 99 \n", + "América 24.4750 100 \n", + "CD Cruz Azul 26.2125 91 \n", + "CF Pachuca 24.1250 109 \n", + "Santos Laguna 24.2750 87 \n", + "Chivas 24.1375 1 \n", + "León 25.1750 102 \n", + "Club Tijuana 25.0250 151 \n", + "Toluca 26.0000 80 \n", + "\n", + " Valor Promedio de Jugador(€) Valor Equipo(€) \n", + "Club \n", + "Tigres UANL 1.208938e+09 4.993800e+10 \n", + "Monterrey 1.242000e+09 4.564000e+10 \n", + "América 8.338360e+08 3.725900e+10 \n", + "CD Cruz Azul 9.459510e+08 3.725300e+10 \n", + "CF Pachuca 3.349170e+08 3.362900e+10 \n", + "Santos Laguna 7.558070e+08 3.231300e+10 \n", + "Chivas 3.995140e+08 3.126500e+10 \n", + "León 2.807920e+08 2.838600e+10 \n", + "Club Tijuana 3.443280e+08 2.717800e+10 \n", + "Toluca 3.321390e+08 2.639100e+10 " + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "top_valuable_teams = final_table.sort_values('Valor Equipo(€)', ascending=False)\n", + "top_valuable_teams[:10]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Equipo con mas extranjeros desde 2012\n", + "#### Vemos que Tijuana es quien mas jugadores extranjeros ha tenido desde 2012 siendo el 8 mejor de la liga\n", + "#### Es necesario analizar este outlier (Jugadores doble nacionalidad?)" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Edad Promedio JugadorJugadores ExtranjerosValor Promedio de Jugador(€)Valor Equipo(€)
Club
Club Tijuana25.02501513.443280e+082.717800e+10
CF Pachuca24.12501093.349170e+083.362900e+10
Tiburones Rojos23.02501064.311000e+061.963800e+10
Tigres UANL25.65001051.208938e+094.993800e+10
Puebla FC26.70001045.330000e+062.239000e+10
León25.17501022.807920e+082.838600e+10
Querétaro FC25.63751021.168400e+082.403500e+10
América24.47501008.338360e+083.725900e+10
Monterrey24.7750991.242000e+094.564000e+10
Atlas24.5500961.264100e+082.482600e+10
Morelia25.4750941.050950e+082.563800e+10
CD Cruz Azul26.2125919.459510e+083.725300e+10
Santos Laguna24.2750877.558070e+083.231300e+10
Toluca26.0000803.321390e+082.639100e+10
UNAM Pumas24.3625771.482870e+082.563400e+10
Necaxa12.7750611.039590e+081.147400e+10
Chiapas FC12.8625592.763000e+061.324800e+10
Lobos6.3625278.890000e+053.581000e+09
San Luis6.5125221.436000e+065.355000e+09
Atlante6.3750201.171000e+065.567000e+09
Dorados de Sin.3.2375166.220000e+053.233000e+09
FC Juárez3.4875126.970000e+052.020000e+09
Leones Negros3.150094.650000e+052.140000e+09
Jaguares2.900076.580000e+052.830000e+09
Chivas24.137513.995140e+083.126500e+10
\n", + "
" + ], + "text/plain": [ + " Edad Promedio Jugador Jugadores Extranjeros \\\n", + "Club \n", + "Club Tijuana 25.0250 151 \n", + "CF Pachuca 24.1250 109 \n", + "Tiburones Rojos 23.0250 106 \n", + "Tigres UANL 25.6500 105 \n", + "Puebla FC 26.7000 104 \n", + "León 25.1750 102 \n", + "Querétaro FC 25.6375 102 \n", + "América 24.4750 100 \n", + "Monterrey 24.7750 99 \n", + "Atlas 24.5500 96 \n", + "Morelia 25.4750 94 \n", + "CD Cruz Azul 26.2125 91 \n", + "Santos Laguna 24.2750 87 \n", + "Toluca 26.0000 80 \n", + "UNAM Pumas 24.3625 77 \n", + "Necaxa 12.7750 61 \n", + "Chiapas FC 12.8625 59 \n", + "Lobos 6.3625 27 \n", + "San Luis 6.5125 22 \n", + "Atlante 6.3750 20 \n", + "Dorados de Sin. 3.2375 16 \n", + "FC Juárez 3.4875 12 \n", + "Leones Negros 3.1500 9 \n", + "Jaguares 2.9000 7 \n", + "Chivas 24.1375 1 \n", + "\n", + " Valor Promedio de Jugador(€) Valor Equipo(€) \n", + "Club \n", + "Club Tijuana 3.443280e+08 2.717800e+10 \n", + "CF Pachuca 3.349170e+08 3.362900e+10 \n", + "Tiburones Rojos 4.311000e+06 1.963800e+10 \n", + "Tigres UANL 1.208938e+09 4.993800e+10 \n", + "Puebla FC 5.330000e+06 2.239000e+10 \n", + "León 2.807920e+08 2.838600e+10 \n", + "Querétaro FC 1.168400e+08 2.403500e+10 \n", + "América 8.338360e+08 3.725900e+10 \n", + "Monterrey 1.242000e+09 4.564000e+10 \n", + "Atlas 1.264100e+08 2.482600e+10 \n", + "Morelia 1.050950e+08 2.563800e+10 \n", + "CD Cruz Azul 9.459510e+08 3.725300e+10 \n", + "Santos Laguna 7.558070e+08 3.231300e+10 \n", + "Toluca 3.321390e+08 2.639100e+10 \n", + "UNAM Pumas 1.482870e+08 2.563400e+10 \n", + "Necaxa 1.039590e+08 1.147400e+10 \n", + "Chiapas FC 2.763000e+06 1.324800e+10 \n", + "Lobos 8.890000e+05 3.581000e+09 \n", + "San Luis 1.436000e+06 5.355000e+09 \n", + "Atlante 1.171000e+06 5.567000e+09 \n", + "Dorados de Sin. 6.220000e+05 3.233000e+09 \n", + "FC Juárez 6.970000e+05 2.020000e+09 \n", + "Leones Negros 4.650000e+05 2.140000e+09 \n", + "Jaguares 6.580000e+05 2.830000e+09 \n", + "Chivas 3.995140e+08 3.126500e+10 " + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "top_jug_extr = final_table.sort_values('Jugadores Extranjeros', ascending=False)\n", + "top_jug_extr" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Puebla es quien tiene jugadores mas viejos en promedio desde 2012\n", + "#### El rango de edad promedio es de los 24 a 26 \n", + "#### PENDIENTE: Es importante realizar un promedio con los equipos quienes no han estados todos los torneos desde 2012 para tener mejor analisis" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Edad Promedio JugadorJugadores ExtranjerosValor Promedio de Jugador(€)Valor Equipo(€)
Club
Puebla FC26.70001045.330000e+062.239000e+10
CD Cruz Azul26.2125919.459510e+083.725300e+10
Toluca26.0000803.321390e+082.639100e+10
Tigres UANL25.65001051.208938e+094.993800e+10
Querétaro FC25.63751021.168400e+082.403500e+10
Morelia25.4750941.050950e+082.563800e+10
León25.17501022.807920e+082.838600e+10
Club Tijuana25.02501513.443280e+082.717800e+10
Monterrey24.7750991.242000e+094.564000e+10
Atlas24.5500961.264100e+082.482600e+10
América24.47501008.338360e+083.725900e+10
UNAM Pumas24.3625771.482870e+082.563400e+10
Santos Laguna24.2750877.558070e+083.231300e+10
Chivas24.137513.995140e+083.126500e+10
CF Pachuca24.12501093.349170e+083.362900e+10
Tiburones Rojos23.02501064.311000e+061.963800e+10
Chiapas FC12.8625592.763000e+061.324800e+10
Necaxa12.7750611.039590e+081.147400e+10
San Luis6.5125221.436000e+065.355000e+09
Atlante6.3750201.171000e+065.567000e+09
Lobos6.3625278.890000e+053.581000e+09
FC Juárez3.4875126.970000e+052.020000e+09
Dorados de Sin.3.2375166.220000e+053.233000e+09
Leones Negros3.150094.650000e+052.140000e+09
Jaguares2.900076.580000e+052.830000e+09
\n", + "
" + ], + "text/plain": [ + " Edad Promedio Jugador Jugadores Extranjeros \\\n", + "Club \n", + "Puebla FC 26.7000 104 \n", + "CD Cruz Azul 26.2125 91 \n", + "Toluca 26.0000 80 \n", + "Tigres UANL 25.6500 105 \n", + "Querétaro FC 25.6375 102 \n", + "Morelia 25.4750 94 \n", + "León 25.1750 102 \n", + "Club Tijuana 25.0250 151 \n", + "Monterrey 24.7750 99 \n", + "Atlas 24.5500 96 \n", + "América 24.4750 100 \n", + "UNAM Pumas 24.3625 77 \n", + "Santos Laguna 24.2750 87 \n", + "Chivas 24.1375 1 \n", + "CF Pachuca 24.1250 109 \n", + "Tiburones Rojos 23.0250 106 \n", + "Chiapas FC 12.8625 59 \n", + "Necaxa 12.7750 61 \n", + "San Luis 6.5125 22 \n", + "Atlante 6.3750 20 \n", + "Lobos 6.3625 27 \n", + "FC Juárez 3.4875 12 \n", + "Dorados de Sin. 3.2375 16 \n", + "Leones Negros 3.1500 9 \n", + "Jaguares 2.9000 7 \n", + "\n", + " Valor Promedio de Jugador(€) Valor Equipo(€) \n", + "Club \n", + "Puebla FC 5.330000e+06 2.239000e+10 \n", + "CD Cruz Azul 9.459510e+08 3.725300e+10 \n", + "Toluca 3.321390e+08 2.639100e+10 \n", + "Tigres UANL 1.208938e+09 4.993800e+10 \n", + "Querétaro FC 1.168400e+08 2.403500e+10 \n", + "Morelia 1.050950e+08 2.563800e+10 \n", + "León 2.807920e+08 2.838600e+10 \n", + "Club Tijuana 3.443280e+08 2.717800e+10 \n", + "Monterrey 1.242000e+09 4.564000e+10 \n", + "Atlas 1.264100e+08 2.482600e+10 \n", + "América 8.338360e+08 3.725900e+10 \n", + "UNAM Pumas 1.482870e+08 2.563400e+10 \n", + "Santos Laguna 7.558070e+08 3.231300e+10 \n", + "Chivas 3.995140e+08 3.126500e+10 \n", + "CF Pachuca 3.349170e+08 3.362900e+10 \n", + "Tiburones Rojos 4.311000e+06 1.963800e+10 \n", + "Chiapas FC 2.763000e+06 1.324800e+10 \n", + "Necaxa 1.039590e+08 1.147400e+10 \n", + "San Luis 1.436000e+06 5.355000e+09 \n", + "Atlante 1.171000e+06 5.567000e+09 \n", + "Lobos 8.890000e+05 3.581000e+09 \n", + "FC Juárez 6.970000e+05 2.020000e+09 \n", + "Dorados de Sin. 6.220000e+05 3.233000e+09 \n", + "Leones Negros 4.650000e+05 2.140000e+09 \n", + "Jaguares 6.580000e+05 2.830000e+09 " + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "top_edad = final_table.sort_values('Edad Promedio Jugador', ascending=False)\n", + "top_edad" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Tomando los top 10 equipos, quien tiene jugadores mas jovenes aparentemente es el Veracruz pero en realidad es Pachuca\n", + "\n", + "### Pendiente por ajustar el caso de Veracruz y demas equipos con menor cantidad de juegos, pues esto solo es una sumatoria\n" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [], + "source": [ + "top_edad_joven = final_table.sort_values('Edad Promedio Jugador', ascending=True)\n", + "top_edad_joven = top_edad_joven[top_edad_joven['Edad Promedio Jugador'] > 19]" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Edad Promedio JugadorJugadores ExtranjerosValor Promedio de Jugador(€)Valor Equipo(€)
Club
Tiburones Rojos23.02501064.311000e+061.963800e+10
CF Pachuca24.12501093.349170e+083.362900e+10
Chivas24.137513.995140e+083.126500e+10
Santos Laguna24.2750877.558070e+083.231300e+10
UNAM Pumas24.3625771.482870e+082.563400e+10
América24.47501008.338360e+083.725900e+10
Atlas24.5500961.264100e+082.482600e+10
Monterrey24.7750991.242000e+094.564000e+10
Club Tijuana25.02501513.443280e+082.717800e+10
León25.17501022.807920e+082.838600e+10
\n", + "
" + ], + "text/plain": [ + " Edad Promedio Jugador Jugadores Extranjeros \\\n", + "Club \n", + "Tiburones Rojos 23.0250 106 \n", + "CF Pachuca 24.1250 109 \n", + "Chivas 24.1375 1 \n", + "Santos Laguna 24.2750 87 \n", + "UNAM Pumas 24.3625 77 \n", + "América 24.4750 100 \n", + "Atlas 24.5500 96 \n", + "Monterrey 24.7750 99 \n", + "Club Tijuana 25.0250 151 \n", + "León 25.1750 102 \n", + "\n", + " Valor Promedio de Jugador(€) Valor Equipo(€) \n", + "Club \n", + "Tiburones Rojos 4.311000e+06 1.963800e+10 \n", + "CF Pachuca 3.349170e+08 3.362900e+10 \n", + "Chivas 3.995140e+08 3.126500e+10 \n", + "Santos Laguna 7.558070e+08 3.231300e+10 \n", + "UNAM Pumas 1.482870e+08 2.563400e+10 \n", + "América 8.338360e+08 3.725900e+10 \n", + "Atlas 1.264100e+08 2.482600e+10 \n", + "Monterrey 1.242000e+09 4.564000e+10 \n", + "Club Tijuana 3.443280e+08 2.717800e+10 \n", + "León 2.807920e+08 2.838600e+10 " + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "top_edad_joven[:10]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Vemos que Rayados es quien tiene los jugadores mas caros en promedio, pero la plantila mas cara es de Tigres\n", + "#### Lo que nos hace suponer que existe uno o dos jugadores en Tigres outliers de valor a comparacion del resto del equipo\n", + "#### por lo que este unico (o dos) jugador eleva el valor de la plantilla entera\n", + "#### Pendiente: Hipotesis a comprobar --> Es Gignac es el outlier de Tigres y quien aumenta el valor economico de la plantilla" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Edad Promedio JugadorJugadores ExtranjerosValor Promedio de Jugador(€)Valor Equipo(€)
Club
Monterrey24.7750991.242000e+094.564000e+10
Tigres UANL25.65001051.208938e+094.993800e+10
CD Cruz Azul26.2125919.459510e+083.725300e+10
América24.47501008.338360e+083.725900e+10
Santos Laguna24.2750877.558070e+083.231300e+10
Chivas24.137513.995140e+083.126500e+10
Club Tijuana25.02501513.443280e+082.717800e+10
CF Pachuca24.12501093.349170e+083.362900e+10
Toluca26.0000803.321390e+082.639100e+10
León25.17501022.807920e+082.838600e+10
\n", + "
" + ], + "text/plain": [ + " Edad Promedio Jugador Jugadores Extranjeros \\\n", + "Club \n", + "Monterrey 24.7750 99 \n", + "Tigres UANL 25.6500 105 \n", + "CD Cruz Azul 26.2125 91 \n", + "América 24.4750 100 \n", + "Santos Laguna 24.2750 87 \n", + "Chivas 24.1375 1 \n", + "Club Tijuana 25.0250 151 \n", + "CF Pachuca 24.1250 109 \n", + "Toluca 26.0000 80 \n", + "León 25.1750 102 \n", + "\n", + " Valor Promedio de Jugador(€) Valor Equipo(€) \n", + "Club \n", + "Monterrey 1.242000e+09 4.564000e+10 \n", + "Tigres UANL 1.208938e+09 4.993800e+10 \n", + "CD Cruz Azul 9.459510e+08 3.725300e+10 \n", + "América 8.338360e+08 3.725900e+10 \n", + "Santos Laguna 7.558070e+08 3.231300e+10 \n", + "Chivas 3.995140e+08 3.126500e+10 \n", + "Club Tijuana 3.443280e+08 2.717800e+10 \n", + "CF Pachuca 3.349170e+08 3.362900e+10 \n", + "Toluca 3.321390e+08 2.639100e+10 \n", + "León 2.807920e+08 2.838600e+10 " + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "top_valor_jug_prom = final_table.sort_values('Valor Promedio de Jugador(€)', ascending=False)\n", + "top_valor_jug_prom[:10]" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "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.7.3" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/your-code/.ipynb_checkpoints/ligamx_euipos_valor-checkpoint.ipynb b/your-code/.ipynb_checkpoints/ligamx_euipos_valor-checkpoint.ipynb new file mode 100644 index 0000000..cbcb547 --- /dev/null +++ b/your-code/.ipynb_checkpoints/ligamx_euipos_valor-checkpoint.ipynb @@ -0,0 +1,137 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import requests as r\n", + "import json\n", + "import pandas as pd\n", + "import numpy as np\n", + "from bs4 import BeautifulSoup as bs4\n", + "\n", + "url = \"https://www.transfermarkt.com/liga-mx-apertura/startseite/wettbewerb/MEXA/plus/?saison_id=2010\"\n", + "\n", + "header = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36'}\n", + "\n", + "response = r.get(url, headers=header)" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "cont = r.get(url, headers = header).text\n", + "t = pd.read_html(cont, attrs = {'class': 'items'})[0]" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "t.drop(columns=['Club', 'Club.1', 'Players playing abroad', 'name.1', 'Total MV', 'ø MV'], inplace= True)\n", + "t.rename({'name':'Club', 'Squad':'Edad Promedio Jugador', 'ø age':'Jugadores Extranjeros', 'Total market value':'Valor Promedio de Jugador(€)', 'ø market value':'Valor Equipo(€)'}, axis = 1, inplace = True)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "t.index = np.arange(1,len(t)+1)\n", + "df_list = []" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Temporada 2010 Done!\n", + "Temporada 2011 Done!\n", + "Temporada 2012 Done!\n", + "Temporada 2013 Done!\n", + "Temporada 2014 Done!\n", + "Temporada 2015 Done!\n", + "Temporada 2016 Done!\n", + "Temporada 2017 Done!\n", + "Temporada 2018 Done!\n", + "Temporada 2019 Done!\n" + ] + } + ], + "source": [ + "for i in range(10, 20):\n", + " cont = r.get(f\"https://www.transfermarkt.com/liga-mx-apertura/startseite/wettbewerb/MEXA/plus/?saison_id=20{i}\", headers = header).content\n", + " t = pd.read_html(cont, attrs = {'class': 'items'})[0]\n", + " t.drop(columns=['Club', 'Club.1', 'Players playing abroad', 'name.1', 'Total MV', 'ø MV'], inplace= True)\n", + " t.rename({'name':'Club', 'Squad':'Edad Promedio Jugador', 'ø age':'Jugadores Extranjeros', 'Total market value':'Valor Promedio de Jugador(€)', 'ø market value':'Valor Equipo(€)'}, axis = 1, inplace = True)\n", + " t.index = np.arange(1,len(t)+1)\n", + " df_list.append(t)\n", + " print(f'Temporada 20{i} Done!')" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[+] Excel Generado!\n" + ] + } + ], + "source": [ + "with pd.ExcelWriter('Valores_Equipos_LigaMX.xlsx') as writer:\n", + " temp = 2010\n", + " for df in df_list:\n", + " df.to_excel(writer, sheet_name=f'Temp {temp}')\n", + " temp += 1\n", + " \n", + "print(\"[+] Excel Generado!\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "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.7.3" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/your-code/.ipynb_checkpoints/news_test-checkpoint.ipynb b/your-code/.ipynb_checkpoints/news_test-checkpoint.ipynb new file mode 100644 index 0000000..6d9c906 --- /dev/null +++ b/your-code/.ipynb_checkpoints/news_test-checkpoint.ipynb @@ -0,0 +1,548 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "def search_news(searchTerm,lang):\n", + " from requests_xml import XMLSession\n", + " session = XMLSession()\n", + " url = f\"https://news.google.com/rss/search?q={searchTerm}&hl={lang}\"\n", + " global respuesta\n", + " respuesta = session.get(url)\n", + " return respuesta" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "search_news('mezcal', 'es')" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "def getNoticias():\n", + " titulos = respuesta.xml.xpath('//title')\n", + " titulos = titulos[1:]\n", + " \n", + " titulosList = [titulo.text for titulo in titulos]\n", + " \n", + " links = respuesta.xml.xpath('//link')\n", + " links = links[1:] \n", + " \n", + " global linkList\n", + " linkList = [link.text for link in links]\n", + " \n", + " global diccionarioDeNotas\n", + " \n", + " diccionarioDeNotas = dict(zip(titulosList,linkList))\n", + " \n", + " for k, v in diccionarioDeNotas.items():\n", + " print(\"Titulo de Articulo: {0} \\nEnlace: {1} \\n\".format(k,v))" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Titulo de Articulo: El mezcal estaría en peligro ante sobreexplotación - ElEconomista \n", + "Enlace: https://www.eleconomista.com.mx/arteseideas/El-mezcal-estaria-en-peligro-ante-sobreexplotacion-20191031-0118.html \n", + "\n", + "Titulo de Articulo: Mezcal, la sangre del Altiplano potosino - Plano informativo \n", + "Enlace: https://planoinformativo.com/694661/mezcal-la-sangre-del-altiplano-potosino \n", + "\n", + "Titulo de Articulo: Cocteles de mezcal inspirados en la ofrenda de muertos | El Universal - El Universal \n", + "Enlace: https://www.eluniversal.com.mx/menu/cocteles-de-mezcal-inspirados-en-la-ofrenda-de-muertos \n", + "\n", + "Titulo de Articulo: Presentan 3a. edición del Festival del Mezcal de Charcas - El Sol de San Luis \n", + "Enlace: https://www.elsoldesanluis.com.mx/cultura/presentan-3a.-edicion-del-festival-del-mezcal-de-charcas-4387852.html \n", + "\n", + "Titulo de Articulo: Asegura Gobernación mezcal de dudosa procedencia en la Huasteca - Pulso de San Luis \n", + "Enlace: https://pulsoslp.com.mx/slp/asegura-gobernacion-mezcal-de-dudosa-procedencia-en-la-huasteca/1017056 \n", + "\n", + "Titulo de Articulo: “Guacamelee! 2”, el videojuego mexicano con mezcal y lucha libre - El Diario de Yucatán \n", + "Enlace: https://www.yucatan.com.mx/tecnologia/guacamelee-2-el-videojuego-mexicano-con-mezcal-y-lucha-libre \n", + "\n", + "Titulo de Articulo: Recetas de mezcal fáciles de preparar | El Universal - El Universal \n", + "Enlace: https://www.eluniversal.com.mx/menu/recetas-de-mezcal-faciles-de-preparar \n", + "\n", + "Titulo de Articulo: ¿Qué NO hacer cuando tomas mezcal? - Robb Report Mexico \n", + "Enlace: https://robbreport.mx/food/que-no-hacer-cuando-tomas-mezcal/ \n", + "\n", + "Titulo de Articulo: El mezcal que se hace pan, galletas y pasta - Excélsior \n", + "Enlace: https://www.excelsior.com.mx/nacional/el-mezcal-que-se-hace-pan-galletas-y-pasta/1340269 \n", + "\n", + "Titulo de Articulo: Hacer mezcal es una forma de resistir: Toolan - Milenio \n", + "Enlace: https://www.milenio.com/cultura/hacer-mezcal-es-una-forma-de-resistir-toolan \n", + "\n", + "Titulo de Articulo: 20 de octubre Día Nacional del Mezcal - LOS40 México \n", + "Enlace: https://los40.com.mx/los40/2019/10/16/actualidad/1571259826_179071.html \n", + "\n", + "Titulo de Articulo: Presumen mezcal michoacano a Embajador de EU - Primera Plana Noticias \n", + "Enlace: https://primeraplananoticias.mx/portal/archivos/689222 \n", + "\n", + "Titulo de Articulo: Festival del Mezcal Guanajuato 2019: Lo que debes saber - Unión Guanajuato \n", + "Enlace: https://www.unionguanajuato.mx/articulo/2019/10/29/recreo/festival-del-mezcal-guanajuato-2019-lo-que-debes-saber \n", + "\n", + "Titulo de Articulo: Piden impulsar apoyos a pequeños productores de mezcal en Oaxaca - Diario Marca de Oaxaca \n", + "Enlace: http://www.diariomarca.com.mx/2019/10/piden-impulsar-apoyos-a-pequenos-productores-de-mezcal/ \n", + "\n", + "Titulo de Articulo: Litigio de mezcal frena la actividad - El Sol del Centro \n", + "Enlace: https://www.elsoldelcentro.com.mx/finanzas/mercados/litigio-de-mezcal-frena-la-actividad-4300541.html \n", + "\n", + "Titulo de Articulo: Youtubers: BERTH OH! \"Un día siendo mezcalero\" de su propia marca 'Alerón' - La Verdad Noticias \n", + "Enlace: https://laverdadnoticias.com/espectaculos/Youtubers-BERTH-OH--Un-dia-siendo-mezcalero-de-su-propia-marca-Aleron-20191023-0201.html \n", + "\n", + "Titulo de Articulo: Mezcales y Sotoles elíxir de Castaños - La Prensa De Monclova \n", + "Enlace: http://laprensademonclova.com/2019/10/21/mezcales-y-sotoles-elixir-de-castanos/ \n", + "\n", + "Titulo de Articulo: Lila Downs, Lala Noguera y Mayahuel, las diosas del mezcal - www.nssoaxaca.com \n", + "Enlace: https://www.nssoaxaca.com/2019/10/15/lila-downs-lala-noguera-y-mayahuel-las-diosas-del-mezcal/ \n", + "\n", + "Titulo de Articulo: Excluidos, productores de mezcal michoacano: Raúl Cortés - Quadratín Michoacán \n", + "Enlace: https://www.quadratin.com.mx/sucesos/excluidos-productores-de-mezcal-michoacano-raul-cortes/ \n", + "\n", + "Titulo de Articulo: Los mejores drinks mexicanos que no son tequila ni mezcal - Robb Report Mexico \n", + "Enlace: https://robbreport.mx/food/los-mejores-drinks-mexicanos-que-no-son-tequila-ni-mezcal/ \n", + "\n", + "Titulo de Articulo: Mezcal “Júrame” y el tinto “Laberinto” ganan oro internacional - Código San Luis \n", + "Enlace: https://www.codigosanluis.com/mezcal-jurame-y-el-tinto-laberinto-ganan-oro-internacional/ \n", + "\n", + "Titulo de Articulo: Mezcal San Cosme lleva los sabores de México a Alemania - Robb Report Mexico \n", + "Enlace: https://robbreport.mx/food/mezcal-san-cosme-lleva-los-sabores-de-mexico-a-alemania/ \n", + "\n", + "Titulo de Articulo: Aseguran más de 750 litros de mezcal apócrifo en Coaxcatlán - El Exprés \n", + "Enlace: http://www.elexpres.com/2015/nota.php?story_id=213406 \n", + "\n", + "Titulo de Articulo: DIF invita a la Cata de Mezcal en beneficio de Centros Asistenciales - El Exprés \n", + "Enlace: http://www.elexpres.com/2015/nota.php?story_id=212303 \n", + "\n", + "Titulo de Articulo: En una campaña le agarré gusto al mezcal: Citlalli Hernández - Milenio \n", + "Enlace: https://www.milenio.com/politica/campana-agarre-gusto-mezcal-tomaba-vasos-citlalli-hernandez \n", + "\n", + "Titulo de Articulo: Piden apoyos para el mezcal en La Mixteca - El Popular \n", + "Enlace: https://www.elpopular.mx/2019/10/16/municipios/piden-apoyos-para-el-mezcal-en-la-mixteca \n", + "\n", + "Titulo de Articulo: Mezcal y tequila adulterado afecta a miles de consumidores en el país - La Verdad Noticias \n", + "Enlace: https://laverdadnoticias.com/quintanaroo/Mezcal-y-tequila-adulterado-afecta-a-miles-de-consumidores-en-el-pais-20191005-0048.html \n", + "\n", + "Titulo de Articulo: Exportarán mezcal tamaulipeco a China y Japón | El Universal - El Universal \n", + "Enlace: https://www.eluniversal.com.mx/estados/exportaran-mezcal-tamaulipeco-china-y-japon \n", + "\n", + "Titulo de Articulo: Tour del Mezcal, alternativa para conocer la producción michoacana - Quadratín Michoacán \n", + "Enlace: https://www.quadratin.com.mx/turismo/tour-del-mezcal-alternativa-para-conocer-la-produccion-michoacana/ \n", + "\n", + "Titulo de Articulo: [VIDEO] Júrame, el mejor mezcal del mundo se produce en Ahualulco SLP - Código San Luis \n", + "Enlace: https://www.codigosanluis.com/videojurame-el-mejor-mezcal-del-mundo-se-produce-en-ahualulco-slp/ \n", + "\n", + "Titulo de Articulo: Una velada con los muertos en Atzompa - Diario Marca de Oaxaca \n", + "Enlace: http://www.diariomarca.com.mx/2019/11/una-velada-con-los-muertos-en-atzompa/ \n", + "\n", + "Titulo de Articulo: El cambio de ropa - El Sol de Tampico \n", + "Enlace: https://www.elsoldetampico.com.mx/analisis/el-cambio-de-ropa-4395561.html \n", + "\n", + "Titulo de Articulo: Gastronomía veracruzana llega a Coatepec con “Puerta de Los Sabores Veracruz 500 años” - Diario de Xalapa \n", + "Enlace: https://www.diariodexalapa.com.mx/local/gastronomia-veracruzana-llega-a-coatepec-con-puerta-de-los-sabores-veracruz-500-anos-pueblo-magico-4396936.html \n", + "\n", + "Titulo de Articulo: Llega a Mezontle el arte de la mixología con bartenders europeos - Sucedió en Oaxaca \n", + "Enlace: http://sucedioenoaxaca.com/2019/10/30/llega-a-mezontle-el-arte-de-la-mixologia-con-bartenders-europeos/ \n", + "\n", + "Titulo de Articulo: ¡Por nada del mundo te puedes perder el Festival del Vino y Mezcal en Tepoztlán! - Estilo DF \n", + "Enlace: https://www.estilodf.tv/estilodevida/por-nada-del-mundo-te-puedes-perder-el-festival-del-vino-y-mezcal-en-tepoztlan/ \n", + "\n", + "Titulo de Articulo: ¡Súbale, súbale! Ruta de tour pulquero llega a la CDMX - 24 HORAS \n", + "Enlace: https://www.24-horas.mx/2019/10/31/subale-subale-ruta-de-tour-pulquero-llega-a-la-cdmx/ \n", + "\n", + "Titulo de Articulo: Cantina Riviera del Sur celebra el Día Muertos con un altar y ricos platillos - SinEmbargo \n", + "Enlace: https://www.sinembargo.mx/01-11-2019/3670395 \n", + "\n", + "Titulo de Articulo: \"Me encantan los escamoles y el mezcal\": Paz Vega - Caras \n", + "Enlace: https://www.caras.com.mx/paz-vega-cuna-de-lobos-catalina-creel/ \n", + "\n", + "Titulo de Articulo: Por segundo año consecutivo Mezcal Oro de Oaxaca presente en la ofrenda de Día de Muertos en la Monumental Casa Fortaleza del Indio Fernández - Puebla \n", + "Enlace: https://desdepuebla.com/2019/10/29/por-segundo-ano-consecutivo-mezcal-oro-de-oaxaca-presente-en-la-ofrenda-de-dia-de-muertos-en-la-monumental-casa-fortaleza-del-indio-fernandez/ \n", + "\n", + "Titulo de Articulo: Gastronomía oaxaqueña, bendición prehispánica - EL INFORMADOR \n", + "Enlace: https://www.informador.mx/suplementos/Gastronomia-oaxaquena-bendicion-prehispanica-20191026-0099.html \n", + "\n", + "Titulo de Articulo: Cuándo se quita el altar de muertos - Unión Yucatan \n", + "Enlace: http://www.unionyucatan.mx/articulo/2019/11/01/cultura/cuando-se-quita-el-altar-de-muertos \n", + "\n", + "Titulo de Articulo: Qué hacer el fin de semana en la Ciudad de México - Forbes Mexico \n", + "Enlace: https://www.forbes.com.mx/forbes-life/que-hacer-el-fin-de-semana-en-la-ciudad-de-mexico-51/ \n", + "\n", + "Titulo de Articulo: Promocionan productos guanajuatenses con e-commerce y centro de distribución - Periódico AM \n", + "Enlace: https://www.am.com.mx/guanajuato/valor-agregado/Promocionan-productos-guanajuatenses-con-e-commerce-y-centro-de-distribucion-20191101-0004.html \n", + "\n", + "Titulo de Articulo: Presentan Ruta Camino Real de Todos los Santos - El Sol de Durango \n", + "Enlace: https://www.elsoldedurango.com.mx/deportes/presentan-ruta-camino-real-de-todos-los-santos-4397590.html \n", + "\n", + "Titulo de Articulo: Presencia y precisión, la fórmula de FedEx - T21 Noticias de Transporte y Logística \n", + "Enlace: http://t21.com.mx/logistica/2019/11/01/presencia-precision-formula-fedex \n", + "\n", + "Titulo de Articulo: Actor Dwayne Johnson, la \"Roca\", lanza tequila hecho en Jalisco - Uno TV Noticias \n", + "Enlace: https://www.unotv.com/noticias/estados/jalisco/detalle/actor-dwayne-johnson-la-roca-lanza-tequila-hecho-en-jalisco-864663/ \n", + "\n", + "Titulo de Articulo: Venderán mezcal tamaulipeco en Japón - Expreso \n", + "Enlace: https://expreso.press/2019/10/04/venderan-mezcal-tamaulipeco-en-japon/ \n", + "\n", + "Titulo de Articulo: Hay una rara enfermedad que provoca borracheras a la gente que come carbohidratos - VIX \n", + "Enlace: https://www.vix.com/es/salud/220233/hay-una-rara-enfermedad-que-provoca-borracheras-a-la-gente-que-come-carbohidratos \n", + "\n", + "Titulo de Articulo: Recibe Tlacolula a vivos y muertos - NVI Noticias \n", + "Enlace: https://www.nvinoticias.com/nota/129602/recibe-tlacolula-vivos-y-muertos \n", + "\n", + "Titulo de Articulo: Con mezcal, cemitas y banda de surf, arranca el relanzamiento del Museo Internacional Barroco en Puebla (VIDEO) - Periodico Central \n", + "Enlace: https://www.periodicocentral.mx/2019/gobierno/item/24626-con-mezcal-cemitas-y-banda-de-surf-arranca-el-relanzamiento-del-museo-internacional-barroco-en-puebla \n", + "\n", + "Titulo de Articulo: ¡Corre por pan de muerto a los festivales de la ciudad! - Chilango \n", + "Enlace: https://www.chilango.com/comida/festivales-de-pan-de-muerto-2019/ \n", + "\n", + "Titulo de Articulo: Vestidos de fiesta, por Día de Muertos - NVI Noticias \n", + "Enlace: https://www.nvinoticias.com/nota/129458/vestidos-de-fiesta-por-dia-de-muertos \n", + "\n", + "Titulo de Articulo: Ya comenzó “Sky Fest 2019” - La Voz de Durango \n", + "Enlace: https://lavozdgo.com/2019/11/01/ya-comenzo-sky-fest-2019/ \n", + "\n", + "Titulo de Articulo: Mezcal: Una revalorización del México ancestral - Dinero en imagen \n", + "Enlace: https://www.dineroenimagen.com/actualidad/mezcal-una-revalorizacion-del-mexico-ancestral/114062 \n", + "\n", + "Titulo de Articulo: Pese a la reconstrucción, la tradición de Día de Muertos en Juchitán, sigue viva - Aristeguinoticias \n", + "Enlace: https://aristeguinoticias.com/3010/mexico/pese-a-la-reconstruccion-la-tradicion-de-dia-de-muertos-en-juchitan-sigue-viva/ \n", + "\n", + "Titulo de Articulo: Mezcal quintuplica ventas a nivel mundial - Economía - La Jornada \n", + "Enlace: https://www.jornada.com.mx/ultimas/economia/2019/08/18/mezcal-quintuplica-ventas-a-nivel-mundial-2883.html \n", + "\n", + "Titulo de Articulo: Mezcal: una bebida caída del cielo - Heraldo de México \n", + "Enlace: https://heraldodemexico.com.mx/tv/heraldomagazine/mezcal-una-bebida-caida-del-cielo/ \n", + "\n", + "Titulo de Articulo: No te pierdas el Primer Foro Internacional Vive Mezcal 2019 | El Universal - El Universal \n", + "Enlace: https://www.eluniversal.com.mx/menu/no-te-pierdas-el-primer-foro-internacional-vive-mezcal-2019 \n", + "\n", + "Titulo de Articulo: Participa SEER en concurso de Altar de Muertos - El Exprés \n", + "Enlace: http://www.elexpres.com/2015/nota.php?story_id=213352 \n", + "\n", + "Titulo de Articulo: El último viaje - Código San Luis \n", + "Enlace: https://www.codigosanluis.com/el-ultimo-viaje/ \n", + "\n", + "Titulo de Articulo: Guía básica para entender de mezcal - Life and Style \n", + "Enlace: https://lifeandstyle.mx/viajes-y-gourmet/2019/04/01/guia-basica-entender-mezcal \n", + "\n", + "Titulo de Articulo: Comienza la expo “Riqueza de los pueblos indígenas” - Códice Informativo \n", + "Enlace: https://codiceinformativo.com/comienza-la-expo-riqueza-de-los-pueblos-indigenas/ \n", + "\n", + "Titulo de Articulo: El mezcal un elíxir que bendice milpas - Milenio \n", + "Enlace: https://www.milenio.com/politica/comunidad/mezcal-elixir-bendice-milpas-construcciones-corazones \n", + "\n", + "Titulo de Articulo: Consumo de mezcal aumenta 35% anual | El Universal - El Universal \n", + "Enlace: https://www.eluniversal.com.mx/cartera/consumo-de-mezcal-aumenta-35-anual \n", + "\n", + "Titulo de Articulo: Urgen denominación de origen del mezcal - La Razon \n", + "Enlace: https://www.razon.com.mx/negocios/urgen-denominacion-de-origen-del-mezcal/ \n", + "\n", + "Titulo de Articulo: Tamales, mole y pan: la gastronomía mexicana en las ofrendas de Día de Muertos - Zona Franca \n", + "Enlace: https://zonafranca.mx/cultura-y-entretenimiento/gastronomia/tamales-mole-y-pan-la-gastronomia-mexicana-en-las-ofrendas-de-dia-de-muertos \n", + "\n", + "Titulo de Articulo: Umbral, la nueva espectacular terraza en el Cetro Histórico - Chilango \n", + "Enlace: https://www.chilango.com/comida/restaurantes/terraza-umbral/ \n", + "\n", + "Titulo de Articulo: Mezcal: el plan de la UNAM para mejorar la producción de la bebida - Milenio \n", + "Enlace: https://www.milenio.com/ciencia-y-salud/mezcal-artesanal-unam \n", + "\n", + "Titulo de Articulo: El secreto de por qué el mezcal no te da cruda - Milenio \n", + "Enlace: https://www.milenio.com/estilo/gastronomia/el-secreto-de-por-que-el-mezcal-no-te-da-cruda \n", + "\n", + "Titulo de Articulo: ¿Dónde y qué comer en el Gran Premio de México? - Telediario CDMX \n", + "Enlace: https://www.telediario.mx/deportes/mas-deportes/donde-y-que-comer-en-el-gran-premio-de-mexico-0 \n", + "\n", + "Titulo de Articulo: Oportunidades en la red agave-mezcal (I) - ElEconomista \n", + "Enlace: https://www.eleconomista.com.mx/opinion/Oportunidades-en-la-red-agave-mezcal-I-20190704-0085.html \n", + "\n", + "Titulo de Articulo: Mezcal, promesa en Aguascalientes; productores se preparan - Excélsior \n", + "Enlace: https://www.excelsior.com.mx/nacional/mezcal-promesa-en-aguascalientes-productores-se-preparan/1323161 \n", + "\n", + "Titulo de Articulo: Tragos de mezcal para refrescarte | El Universal - El Universal \n", + "Enlace: https://www.eluniversal.com.mx/menu/tragos-de-mezcal-para-refrescarte \n", + "\n", + "Titulo de Articulo: Cocteles de mezcal inspirados en animales mitológicos | El Universal - El Universal \n", + "Enlace: https://www.eluniversal.com.mx/menu/cocteles-de-mezcal-inspirados-en-animales-mitologicos \n", + "\n", + "Titulo de Articulo: Esta es la historia detrás del mezcal ‘Ojo del Tigre’ de Luis Gerardo Méndez - Expansión \n", + "Enlace: https://expansion.mx/empresas/2019/09/13/esta-es-la-historia-detras-del-mezcal-ojo-del-tigre-de-luis-gerardo-mendez \n", + "\n", + "Titulo de Articulo: ¿Te sientes muy mexicano? 10 datos que no conocías del mezcal - Dinero en imagen \n", + "Enlace: https://m.dineroenimagen.com/management/te-sientes-muy-mexicano-10-datos-que-no-conocias-del-mezcal/113959 \n", + "\n", + "Titulo de Articulo: Toma mezcal y despierta sin cruda | El Universal - El Universal \n", + "Enlace: https://www.eluniversal.com.mx/menu/mezcal-amanece-sin-cruda \n", + "\n", + "Titulo de Articulo: ¡El mezcal es la única bebida que se toma a besos! - La Voz de la Frontera \n", + "Enlace: https://www.lavozdelafrontera.com.mx/local/el-mezcal-es-la-unica-bebida-que-se-toma-a-besos-3164294.html \n", + "\n", + "Titulo de Articulo: El 53% de IEPS al mezcal \"castiga\" a la bebida: productores - La Jornada \n", + "Enlace: https://www.jornada.com.mx/ultimas/2019/08/29/el-54-de-ieps-al-mezcal-castiga-a-la-bebida-productores-8085.html \n", + "\n", + "Titulo de Articulo: Zacatecas obtuvo un nuevo Record Guinness por hacer la desgustación de mezcal más grande del mundo - Xataka México \n", + "Enlace: https://www.xataka.com.mx/otros-1/zacatecas-obtuvo-nuevo-record-guinness-hacer-desgustacion-mezcal-grande-mundo \n", + "\n", + "Titulo de Articulo: Tequila y mezcal, bebidas más producidas en México tras cerveza - Milenio \n", + "Enlace: https://www.milenio.com/negocios/tequila-mezcal-bebidas-producidas-mexico-cerveza \n", + "\n", + "Titulo de Articulo: México en los ojos de Theroux - El Heraldo de México \n", + "Enlace: https://heraldodemexico.com.mx/opinion/mexico-en-los-ojos-de-theroux/ \n", + "\n", + "Titulo de Articulo: ¡Viva México! Para todo mal, tenemos al mezcal y para todo bien, también - POSTA \n", + "Enlace: http://www.posta.com.mx/tendencias/viva-mexico-para-todo-mal-tenemos-al-mezcal-y-para-todo-bien-tambien \n", + "\n", + "Titulo de Articulo: Las diferencias entre el tequila y el mezcal | El Universal - El Universal \n", + "Enlace: https://www.eluniversal.com.mx/menu/conoce-las-diferencias-entre-el-tequila-y-el-mezcal \n", + "\n", + "Titulo de Articulo: Desafíos del mezcal - Revista en marcha \n", + "Enlace: http://www.revistaenmarcha.com.mx/miscelanea/analisis/2760-2019-07-31-18-05-50.html \n", + "\n", + "Titulo de Articulo: El Muralito - El Heraldo de México \n", + "Enlace: https://heraldodemexico.com.mx/opinion/el-muralito/ \n", + "\n", + "Titulo de Articulo: Productores piden recategorizar denominación de origen del mezcal - La Jornada \n", + "Enlace: https://www.jornada.com.mx/ultimas/economia/2019/05/20/productores-piden-recategorizar-denominacion-de-origen-del-mezcal-9658.html \n", + "\n", + "Titulo de Articulo: Celebrarán feria del mexcal en Oaxaca - Milenio \n", + "Enlace: https://www.milenio.com/estados/oaxaca-gana-batalla-denominacion-origen-mezcal \n", + "\n", + "Titulo de Articulo: El mezcal, orgullo tamaulipeco - El Sol de Tampico \n", + "Enlace: https://www.elsoldetampico.com.mx/local/regional/el-mezcal-orgullo-tamaulipeco-4169598.html \n", + "\n", + "Titulo de Articulo: Dos Hombres, el mezcal mexicano de los protagonistas de Breaking Bad - México Desconocido \n", + "Enlace: https://www.mexicodesconocido.com.mx/dos-hombres-el-mezcal-mexicano-breaking-bad.html \n", + "\n", + "Titulo de Articulo: El mezcal mexicano que ganó un premio internacional y que es envasado totalmente por mujeres - Entrepreneur \n", + "Enlace: https://www.entrepreneur.com/article/339418 \n", + "\n", + "Titulo de Articulo: Producción de mezcal será especialidad universitaria en Michoacán - Periódico Excélsior \n", + "Enlace: https://www.excelsior.com.mx/nacional/produccion-de-mezcal-sera-especialidad-universitaria-en-michoacan/1309011 \n", + "\n", + "Titulo de Articulo: [Especial] Mezcal, el sabor de Morelos - El Sol de Cuernavaca \n", + "Enlace: https://www.elsoldecuernavaca.com.mx/local/especial-mezcal-el-sabor-de-morelos-4180436.html \n", + "\n", + "Titulo de Articulo: ¿Cuál es la diferencia entre el sotol y el mezcal? - El Siglo de Torreón \n", + "Enlace: https://www.elsiglodetorreon.com.mx/noticia/1616710.cual-es-la-diferencia-entre-el-sotol-y-el-mezcal.html \n", + "\n", + "Titulo de Articulo: Mezcal, una antigua tradición que se saborea - El Financiero \n", + "Enlace: https://www.elfinanciero.com.mx/viajes/mezcal-una-antigua-tradicion-que-se-saborea \n", + "\n", + "Titulo de Articulo: El mezcal hecho por mujeres y pensado para que ellas ganen - The New York Times en Español \n", + "Enlace: https://www.nytimes.com/es/2019/09/03/espanol/estilos-de-vida/mexico-mezcal-mujeres.html \n", + "\n", + "Titulo de Articulo: Los 5 beneficios del mezcal que debes saber - Vanguardia MX \n", + "Enlace: https://vanguardia.com.mx/articulo/los-5-beneficios-del-mezcal-que-debes-saber \n", + "\n", + "Titulo de Articulo: Vive Mezcal, el primer foro internacional de la industria del mezcal - México Desconocido \n", + "Enlace: https://www.mexicodesconocido.com.mx/vive-mezcal-el-primer-foro-internacional-de-la-industria-del-mezcal.html \n", + "\n", + "Titulo de Articulo: Mezcal, bebida mexicana que conquista Estados Unidos - El Diario \n", + "Enlace: https://diario.mx/usa/orgullo-latino/mezcal-bebida-mexicana-que-conquista-estados-unidos-20190610-1525808/ \n", + "\n", + "Titulo de Articulo: Tequila y mezcal conquistan ventas online en fiestas patrias - Milenio \n", + "Enlace: https://www.milenio.com/negocios/tequila-mezcal-conquistan-ventas-online-fiestas-patrias \n", + "\n" + ] + } + ], + "source": [ + "getNoticias()" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "import feedparser" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "test = feedparser.parse('https://news.google.com/rss/search?q=mezcal')" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "metadata": {}, + "outputs": [], + "source": [ + "links = [t.link for t in test.entries ]" + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['https://uproxx.com/life/best-mezcal-for-a-party-2019/',\n", + " 'https://www.bevnet.com/news/spirits/2019/maguey-melate-launches-mezcal-subscription-service/',\n", + " 'https://www.thespiritsbusiness.com/2019/11/maguey-melate-launches-mezcal-subscription-service/',\n", + " 'https://neatpour.com/2019/10/subscription-model-comes-to-mezcal-and-its-a-good-fit/',\n", + " 'https://tucson.com/business/tucson-gets-first-mezcal-bar-as-exo-changes-name-to/article_2cb81eb9-a23d-5ca4-ab31-a50876b637c1.html',\n", + " 'https://www.forbes.com/sites/lisakocay/2019/10/21/gembolt-national-mezcal-day/',\n", + " 'https://www.latimes.com/food/story/2019-10-18/jungle-bird-scooter-cocktail-lanea',\n", + " 'https://www.maxim.com/food-drink/10-reasons-to-drink-mezcal-2019-10',\n", + " 'https://www.sonomanews.com/lifestyle/10183456-181/bottoms-up-mezcal-cheese-pairing-at',\n", + " 'https://www.thedailybeast.com/bricia-lopez-talks-mezcal-salt-and-her-new-las-vegas-bar-mama-rabbit',\n", + " 'https://www.bloomberg.com/news/articles/2019-10-09/campari-buys-montelobos-mezcal-to-tap-thirst-for-mexican-liquor',\n", + " 'https://www.nbcnews.com/know-your-value/feature/all-women-s-mezcal-business-breaking-barriers-one-bottle-time-ncna1061991',\n", + " 'https://dujour.com/lifestyle/try-these-top-autumn-tequila-mezcal-cocktails/',\n", + " 'https://www.styleweekly.com/richmond/a-mezcal-moment/Content?oid=15211667',\n", + " 'https://www.phillymag.com/foobooz/2019/10/23/el-techo-rooftop-bar-suraya/',\n", + " 'http://theindustryreporter.com/26472/global-mezcal-market-growth-2019-2025-el-jolgorio-ilegal-tanajiraje-pernod-ricard-diageo-rey-campero-tlacolula-distillery/',\n", + " 'https://patch.com/district-columbia/washingtondc/calendar/event/20191020/670746/national-mezcal-day-at-royal-happy-hour-tastings-cocktails',\n", + " 'https://www.montereyherald.com/2019/10/16/beth-peerless-where-its-at-celebrating-tequila-and-mezcal/',\n", + " 'https://www.omaha.com/entertainment/plus/nightlife-review-try-the-mezcal-tequila-beer-and-food-at/article_e745de82-5058-5d00-ae9c-b76140de0ef8.html',\n", + " 'https://ankenydaily.com/mezcal-market-by-product-type-application-and-geography-forecast-to-2022/1655/',\n", + " 'https://foodsided.com/2019/10/20/exploring-mezcal-best-mezcal-cocktails/',\n", + " 'https://www.thespiritsbusiness.com/2019/10/campari-buys-majority-stake-in-montelobos-mezcal/',\n", + " 'https://www.insidehook.com/article/booze/booze-bottle-label-information',\n", + " 'https://www.8newsnow.com/news/las-vegas-now/celebrating-national-mezcal-day-with-santos-tacos-beer/',\n", + " 'https://clclt.com/charlotte/dia-del-mezcal-at-pacos-tacos-and-tequila/Event?oid=15691821',\n", + " 'https://www.riverfronttimes.com/foodblog/2019/10/30/taco-circus-new-bar-program-shines-with-boozy-margs-creative-cocktails',\n", + " 'https://303magazine.com/2019/10/del-maguey-for-whiskyx-denver/',\n", + " 'https://www.yahoo.com/lifestyle/where-drink-mexico-city-weekend-201041183.html',\n", + " 'https://www.telegram.com/entertainmentlife/20191031/lifestyle-heres-your-saturday-itinerary',\n", + " 'http://illinoisentertainer.com/2019/10/live-review-photo-gallery-swervedriver-at-bottom-lounge/',\n", + " 'https://www.berkeleyside.com/2019/10/18/nidos-backyard-the-bay-areas-first-margarita-garden-is-a-fun-place-to-gather-but-has-room-to-grow',\n", + " 'https://www.thrillist.com/news/nation/guy-fieri-tequila-cocina-restaurant-boston',\n", + " 'https://comicbook.com/movies/2019/10/30/knives-out-rian-johnson-shares-thoughts-el-camino-a-breaking-bad-movie/',\n", + " 'https://jwcdaily.com/sheridanroadmagazine/2019/11/01/all-mixed-up/',\n", + " 'https://www.forbes.com/sites/bradjaphe/2019/10/31/the-toronto-cocktail-scene-goes-global/',\n", + " 'https://www.bevnet.com/news/spirits/2019/sammy-hagar-and-guy-fieri-debut-santo-tequila-blanco/',\n", + " 'https://www.beveragedaily.com/Article/2019/10/10/Campari-Group-takes-controlling-interest-in-Ancho-Reyes-Montelobos',\n", + " 'http://heraldpublicist24.com/2019/10/29/mezcal-market-with-future-prospects-key-player-swot-analysis-and-forecast-to-2024/',\n", + " 'http://www.sandiegomagazine.com/Podcasts/Fall-2019/We-Step-Inside-the-Citys-Newest-and-Spookiest-Speakeasy-with-Tahona-Owner-Amar-Harrag/',\n", + " 'https://dcist.com/story/19/10/30/9-food-events-to-feast-on-this-week/',\n", + " 'http://globenewsreports.com/13335/global-mescal-market-data-analysis-2019-2025-destileraa-tlacolula-ilegal-mezcal-pernod-ricard-pierde-almas-william-grant-sons/',\n", + " 'https://www.thedailybeast.com/surfing-the-ocean-of-pot-still-irish-whiskey',\n", + " 'https://chroniclevoice.com/mezcal-market-what-factors-will-drive-the-industry-in-upcoming-years/',\n", + " 'https://www.bizjournals.com/charlotte/news/2019/10/04/photos-inside-this-new-cantina-social-club-at.html',\n", + " 'https://www.forbes.com/sites/abigailabesamis/2019/10/31/chicagos-travelle-at-the-langham-adds-andy-warhol-themed-cocktails-to-its-art-inspired-menu/',\n", + " 'https://dailymarketinsight.com/11485/mescal-market-to-see-massive-growth-by-2025-destileria-tlacolula-ilegal-mezcal-pernod-ricard-pierde-almas/',\n", + " 'https://www.cntraveler.com/story/the-coffee-table-books-to-give-and-keep-this-year',\n", + " 'https://www.caribjournal.com/2019/11/01/ritz-carlton-reserve-mexico-2/',\n", + " 'https://www.forbes.com/sites/danielleharling/2019/10/28/4-stunning-tequila-cocktails-that-take-their-inspiration-from-dia-de-los-muertos/',\n", + " 'https://globalindustrynetwork.com/4583/mezcal-market-to-see-huge-growth-by-2025-ilegal-mezcal-pernod-ricard-diageo-rey-campero/',\n", + " 'http://www.news12.com/story/41073762/7-things-you-may-not-know-about-dia-de-los-muertos',\n", + " 'https://thecigarauthority.com/aganorsa-leaf-creates-single-cask-nation-exclusive-via-2guyscigars-com/',\n", + " 'https://www.centraltrack.com/dj-sober-goes-out-of-spooky-season-with-a-bang/',\n", + " 'https://www.popularmechanics.com/home/food-drink/a28800577/how-mezcall-is-distilled/',\n", + " 'https://www.fox10phoenix.com/video/621058',\n", + " 'https://www.ktnv.com/all-lists/day-of-the-dead-celebrations-in-las-vegas-2019',\n", + " 'https://www.washingtonpost.com/goingoutguide/restaurants/tequila-and-mezcal-adds-a-personal-touch-to-mexican-spirits/2019/09/30/d3c8ef9a-e14d-11e9-be96-6adb81821e90_story.html',\n", + " 'https://www.winemag.com/2019/09/10/mezcal-mexicos-misunderstood-spirit/',\n", + " 'https://www.forbes.com/sites/garystoller/2019/06/06/falling-in-love-with-mezcal/',\n", + " 'https://vinepair.com/articles/the-ground-breaking-distiller-blending-biochemistry-and-tradition-on-mexicos-mezcal-frontier/',\n", + " 'https://www.hackneygazette.co.uk/entertainment/music/dona-pop-up-mezcal-bar-to-open-1-6327738',\n", + " 'https://lasvegasmagazine.com/dining/2019/nov/01/on-and-off-strip-libertine-social-elia-mama-rabbit/',\n", + " 'https://www.latimes.com/food/la-fo-what-is-mezcal-niki-nakazawa-neta-1-story.html',\n", + " 'https://knpr.org/dc-blog/mezcal-maven',\n", + " 'https://vinepair.com/articles/how-drink-mezcal-according-oaxacan-bartender/',\n", + " 'https://www.lofficielusa.com/travel-living/mezcal-brand-interview-2019',\n", + " 'https://www.winemag.com/2019/08/27/difference-mezcal-vs-tequila/',\n", + " 'https://www.forbes.com/sites/karlaalindahao/2019/04/17/best-mezcals-to-try-this-cinco-de-mayo-2019/',\n", + " 'https://mailtribune.com/tempo/dining/mezcal-in-ashland-modern-twist-on-traditional-mexican-food',\n", + " 'https://www.thrillist.com/eat/nation/day-of-the-dead-food-traditions-celebration-altars',\n", + " 'https://www.dailymail.co.uk/tvshowbiz/article-7629541/Paris-Hilton-Charlotte-McKinney-party-wee-hours-Hollywood-hotel-launch.html',\n", + " 'https://www.reviewjournal.com/entertainment/food/mezcal-a-spirit-thats-rising-in-popularity-in-las-vegas-1856100/',\n", + " 'https://www.newshub.co.nz/home/lifestyle/2019/11/the-story-behind-the-day-of-the-dead.html',\n", + " 'https://www.nytimes.com/2019/09/02/style/mezcal-by-women-and-for-womens-wallets.html',\n", + " 'https://www.seattletimes.com/pacific-nw-magazine/mezcal-rockets-up-to-top-shelf-status-but-leaves-the-worm-behind/',\n", + " 'https://www.bonappetit.com/story/mezcal-with-yola-jimenez',\n", + " 'https://www.10news.com/lifestyle/exploring-san-diego/where-to-celebrate-dia-de-los-muertos-in-san-diego',\n", + " 'https://fortune.com/2019/07/20/craft-mezcal-national-tequila-day/',\n", + " 'https://hoodline.com/2019/10/sushi-and-more-what-s-trending-on-new-york-city-s-food-scene-1572278549',\n", + " 'https://uproxx.com/life/difference-between-tequila-and-mezcal/',\n", + " 'https://www.charlotteobserver.com/charlottefive/c5-food-drink/article236833373.html',\n", + " 'https://www.fastcompany.com/90364394/the-indiana-jones-of-mezcal-takes-on-big-liquor-and-helps-save-a-culture?partner=rss',\n", + " 'https://www.forbes.com/sites/bradjaphe/2019/06/25/sombra-mezcal-mixes-into-the-ensamble-category-with-its-latest-release/',\n", + " 'https://dc.eater.com/2019/10/22/20926612/mexicue-opening-dc-location-14th-street-logan-circle-food-photos-menu',\n", + " 'https://www.metro.us/things-to-do/philadelphia/The-Cambridge-re-opened-new-menu',\n", + " 'https://dallas.eater.com/2019/9/25/20882817/las-almas-rotas-mezcal-2018-bar-of-the-year-eater-awards',\n", + " 'https://www.prnewswire.com/news-releases/oaxaca-wins-guinness-record-with-mezcal-wall-300918545.html',\n", + " 'https://www.phoenixnewtimes.com/restaurants/high-end-mezcal-phoenix-11109959',\n", + " 'https://www.bonappetit.com/story/als-bar-tequila-and-mezcal-cocktails',\n", + " 'https://mexiconewsdaily.com/mexicolife/this-master-mezcalier-came-for-the-mushrooms-but-stayed-for-the-mezcal/',\n", + " 'https://www.lofficielusa.com/travel-living/dos-perros-mezcal-interview-2019',\n", + " 'https://uproxx.com/life/best-bottles-of-mezcal-for-a-party/',\n", + " 'https://www.winemag.com/2019/07/25/where-to-sip-the-best-mezcal-in-oaxaca-mexico/',\n", + " 'https://www.newsweek.com/national-tequila-day-2019-mezcal-spirits-liquor-1450805',\n", + " 'https://www.bevnet.com/news/spirits/2019/prolijo-mezcal-expands-distribution-to-florida-and-nevada/',\n", + " 'https://www.sdentertainer.com/drinking/mad-about-mezcal-where-to-get-the-best-mezcal-in-san-diego/',\n", + " 'https://napavalleyregister.com/wine/columnists/allison-levine/allison-levine-please-the-palate-a-new-perspective-on-mezcal/article_e2084fba-702b-51ec-b8d1-d65380fae883.html',\n", + " 'https://www.houstonchronicle.com/life/food/article/Recipe-Nieve-De-Mezcal-Eggless-Mezcal-Ice-Cream-14425808.php',\n", + " 'https://www.thenation.com/article/favianna-rodriguez/',\n", + " 'https://tucsonfoodie.com/2019/04/25/best-mezcal-bars-tucson/']" + ] + }, + "execution_count": 55, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "links" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "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.7.3" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/your-code/Estadisticos_LigaMX.xlsx b/your-code/Estadisticos_LigaMX.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..9b263ee9292836135bd028bc5777fd6dcb4aaced GIT binary patch literal 47245 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 R&*Fi9v%t@0zWsXj{{Z|133C7d literal 0 HcmV?d00001 diff --git a/your-code/Valores_Equipos_LigaMX.xlsx b/your-code/Valores_Equipos_LigaMX.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..b74b8eb3a6153d9a298ac3f6b41f1248d5303d63 GIT binary patch literal 15217 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 literal 0 HcmV?d00001 diff --git a/your-code/data_ligaMX_script.py b/your-code/data_ligaMX_script.py new file mode 100644 index 0000000..e25076e --- /dev/null +++ b/your-code/data_ligaMX_script.py @@ -0,0 +1,124 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +import base64 +import pandas as pd +import requests as r +import ast + +print(""" + _ _ ___ _____ __ ______ _ +| | (_) | \/ |\ \ / / | _ \ | | +| | _ __ _ __ _| . . | \ V / | | | |__ _| |_ __ _ +| | | |/ _` |/ _` | |\/| | / \ | | | / _` | __/ _` | +| |___| | (_| | (_| | | | |/ /^\ \ | |/ / (_| | || (_| | +\_____/_|\__, |\__,_\_| |_/\/ \/ |___/ \__,_|\__\__,_| + __/ | + |___/ + """) + + +url = "https://ligamx.net/cancha/estadisticahistorica/1/" +base64_string = b'eyJpZERpdmlzaW9uIjoiMSIsImlkVGVtcG9yYWRhIjoiNzAiLCAiaWRUb3JuZW8iOiIxIn0=' + +header = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36'} + +decoded = base64.decodebytes(base64_string) +dec = decoded.decode('UTF-8').replace("'", '"') + +d = ast.literal_eval(dec) + +n = int(d['idTemporada']) - 1 + +l = [] + +for i in range(11): + for x in range(2,0,-1): + l.append(str({'idDivision': '1', 'idTemporada': str(n), 'idTorneo': str(x)}).replace(' ', '').replace("idTorneo", " idTorneo").replace("'", '"').replace('"," ', '", "')) + n-=1 + +encodedStrings = [str(base64.b64encode(bytes(i, 'utf-8')),'utf-8') for i in l] +urls = [(url + i) for i in encodedStrings] + +dfs_list = [] + +def create_dfs(url): + cont = r.get(url, headers = header).content + t = pd.read_html(cont, attrs = {'class': 'default tbl_grals'}) + t[0].columns = t[0].columns.droplevel(level=0) + df = t[0] + columns=[('General','POS'),('General','Club'),('TOTAL','JJ'),('TOTAL','JG'), ('TOTAL','JE'),('TOTAL','JP'),('TOTAL','GF'),('TOTAL','GC'),('TOTAL','Dif'),('TOTAL','PTS'), + ('LOCAL','JJ'),('LOCAL','JG'),('LOCAL','JE'),('LOCAL','JP'),('LOCAL','GF'),('LOCAL','GC'),('LOCAL','Dif'),('LOCAL','PTS'), + ('VISITANTE','JJ'),('VISITANTE','JG'),('VISITANTE','JE'),('VISITANTE','JP'),('VISITANTE','GF'),('VISITANTE','GC'),('VISITANTE','Dif'),('VISITANTE','PTS')] + df.columns=pd.MultiIndex.from_tuples(columns) + dfs_list.append(df) + +temporada = 2018 +torneo = 2 + +#URL inicial insertada en input, generar DF inicial +create_dfs(url + str(base64_string)) + +try: + for url in urls: + create_dfs(url) + print(f'[+] Temporada:{temporada}, Torneo:{torneo} --> Appended: ok!') + torneo-=1 + if torneo == 0: + torneo = 2 + temporada -= 1 +except ValueError as e: print(e) + +with pd.ExcelWriter('Estadisticos_LigaMX.xlsx') as writer: + dfs_list[0].to_excel(writer, sheet_name=f'Temp 2019, Torneo 1') + for df in dfs_list: + df.to_excel(writer, sheet_name=f'Temp {temporada}, Torneo {torneo}') + torneo-=1 + if torneo == 0: + torneo = 2 + temporada -= 1 +print("[+] Excel Generado!") + +def sum_dfs(df_list): + tables = [] + for table in df_list: + table.columns = table.columns.droplevel(level=0) + table.sort_values('Club', inplace = True) + tables.append(table) + return tables + +sum_dfs(dfs_list) + +result = pd.concat(dfs_list) + +final_table = result.groupby(['Club']).sum() + +final_table = final_table.drop(columns = ['POS']) + +columns=[('TOTAL','JJ'),('TOTAL','JG'), ('TOTAL','JE'),('TOTAL','JP'),('TOTAL','GF'),('TOTAL','GC'),('TOTAL','Dif'),('TOTAL','PTS'), + ('LOCAL','JJ'),('LOCAL','JG'),('LOCAL','JE'),('LOCAL','JP'),('LOCAL','GF'),('LOCAL','GC'),('LOCAL','Dif'),('LOCAL','PTS'), + ('VISITANTE','JJ'),('VISITANTE','JG'),('VISITANTE','JE'),('VISITANTE','JP'),('VISITANTE','GF'),('VISITANTE','GC'),('VISITANTE','Dif'),('VISITANTE','PTS')] + +final_table.columns=pd.MultiIndex.from_tuples(columns) + +final_sorted_by_pts = final_table.sort_values([('TOTAL', 'PTS')], ascending=False) + +top_ten = final_sorted_by_pts[:10] + +top_total = final_sorted_by_pts.sort_values([('TOTAL', 'PTS')], ascending=False) +top_ten_total = top_total[:10] +top_ten_total = top_ten_total['TOTAL'] + +top_local = final_sorted_by_pts.sort_values([('LOCAL', 'PTS')], ascending=False) +top_local_ten = top_local[:10] +top_local_ten = top_local_ten['LOCAL'] + +top_vis = final_sorted_by_pts.sort_values([('VISITANTE', 'PTS')], ascending=False) +top_vis_ten = top_vis[:10] +top_vis_ten = top_vis_ten['VISITANTE'] + + + + + + + diff --git a/your-code/liga_mx_data.ipynb b/your-code/liga_mx_data.ipynb new file mode 100644 index 0000000..04db399 --- /dev/null +++ b/your-code/liga_mx_data.ipynb @@ -0,0 +1,3500 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " _ _ ___ _____ __ ______ _ \n", + "| | (_) | \\/ |\\ \\ / / | _ \\ | | \n", + "| | _ __ _ __ _| . . | \\ V / | | | |__ _| |_ __ _ \n", + "| | | |/ _` |/ _` | |\\/| | / \\ | | | / _` | __/ _` |\n", + "| |___| | (_| | (_| | | | |/ /^\\ \\ | |/ / (_| | || (_| |\n", + "\\_____/_|\\__, |\\__,_\\_| |_/\\/ \\/ |___/ \\__,_|\\__\\__,_|\n", + " __/ | \n", + " |___/ \n", + " \n" + ] + } + ], + "source": [ + "import base64\n", + "import pandas as pd\n", + "import requests as r\n", + "import ast\n", + "\n", + "print(\"\"\"\n", + " _ _ ___ _____ __ ______ _ \n", + "| | (_) | \\/ |\\ \\ / / | _ \\ | | \n", + "| | _ __ _ __ _| . . | \\ V / | | | |__ _| |_ __ _ \n", + "| | | |/ _` |/ _` | |\\/| | / \\ | | | / _` | __/ _` |\n", + "| |___| | (_| | (_| | | | |/ /^\\ \\ | |/ / (_| | || (_| |\n", + "\\_____/_|\\__, |\\__,_\\_| |_/\\/ \\/ |___/ \\__,_|\\__\\__,_|\n", + " __/ | \n", + " |___/ \n", + " \"\"\")\n", + "\n", + "\n", + "url = \"https://ligamx.net/cancha/estadisticahistorica/1/\"\n", + "base64_string = b'eyJpZERpdmlzaW9uIjoiMSIsImlkVGVtcG9yYWRhIjoiNzAiLCAiaWRUb3JuZW8iOiIxIn0='\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "header = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36'} \n", + "\n", + "decoded = base64.decodebytes(base64_string)\n", + "dec = decoded.decode('UTF-8').replace(\"'\", '\"')\n", + "\n", + "d = ast.literal_eval(dec)\n", + "\n", + "n = int(d['idTemporada']) - 1\n", + "\n", + "l = []" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "for i in range(11):\n", + " for x in range(2,0,-1):\n", + " l.append(str({'idDivision': '1', 'idTemporada': str(n), 'idTorneo': str(x)}).replace(' ', '').replace(\"idTorneo\", \" idTorneo\").replace(\"'\", '\"').replace('\",\" ', '\", \"'))\n", + " n-=1\n", + " \n", + "encodedStrings = [str(base64.b64encode(bytes(i, 'utf-8')),'utf-8') for i in l]\n", + "urls = [(url + i) for i in encodedStrings]\n", + "\n", + "dfs_list = []" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "def create_dfs(url):\n", + " cont = r.get(url, headers = header).content\n", + " t = pd.read_html(cont, attrs = {'class': 'default tbl_grals'})\n", + " t[0].columns = t[0].columns.droplevel(level=0)\n", + " df = t[0]\n", + " columns=[('General','POS'),('General','Club'),('TOTAL','JJ'),('TOTAL','JG'), ('TOTAL','JE'),('TOTAL','JP'),('TOTAL','GF'),('TOTAL','GC'),('TOTAL','Dif'),('TOTAL','PTS'),\n", + " ('LOCAL','JJ'),('LOCAL','JG'),('LOCAL','JE'),('LOCAL','JP'),('LOCAL','GF'),('LOCAL','GC'),('LOCAL','Dif'),('LOCAL','PTS'),\n", + " ('VISITANTE','JJ'),('VISITANTE','JG'),('VISITANTE','JE'),('VISITANTE','JP'),('VISITANTE','GF'),('VISITANTE','GC'),('VISITANTE','Dif'),('VISITANTE','PTS')]\n", + " df.columns=pd.MultiIndex.from_tuples(columns)\n", + " dfs_list.append(df)\n", + "\n", + "temporada = 2018\n", + "torneo = 2\n", + "\n", + "#URL inicial insertada en input, generar DF inicial\n", + "create_dfs(url + str(base64_string))" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[+] Temporada:2018, Torneo:2 --> Appended: ok!\n", + "[+] Temporada:2018, Torneo:1 --> Appended: ok!\n", + "[+] Temporada:2017, Torneo:2 --> Appended: ok!\n", + "[+] Temporada:2017, Torneo:1 --> Appended: ok!\n", + "[+] Temporada:2016, Torneo:2 --> Appended: ok!\n", + "[+] Temporada:2016, Torneo:1 --> Appended: ok!\n", + "[+] Temporada:2015, Torneo:2 --> Appended: ok!\n", + "[+] Temporada:2015, Torneo:1 --> Appended: ok!\n", + "[+] Temporada:2014, Torneo:2 --> Appended: ok!\n", + "[+] Temporada:2014, Torneo:1 --> Appended: ok!\n", + "[+] Temporada:2013, Torneo:2 --> Appended: ok!\n", + "[+] Temporada:2013, Torneo:1 --> Appended: ok!\n", + "[+] Temporada:2012, Torneo:2 --> Appended: ok!\n", + "[+] Temporada:2012, Torneo:1 --> Appended: ok!\n", + "No tables found\n" + ] + } + ], + "source": [ + "try:\n", + " for url in urls:\n", + " create_dfs(url)\n", + " print(f'[+] Temporada:{temporada}, Torneo:{torneo} --> Appended: ok!')\n", + " torneo-=1\n", + " if torneo == 0: \n", + " torneo = 2\n", + " temporada -= 1\n", + "except ValueError as e: print(e)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[+] Excel Generado!\n" + ] + } + ], + "source": [ + "with pd.ExcelWriter('Estadisticos_LigaMX.xlsx') as writer:\n", + " dfs_list[0].to_excel(writer, sheet_name=f'Temp 2019, Torneo 1')\n", + " for df in dfs_list:\n", + " df.to_excel(writer, sheet_name=f'Temp {temporada}, Torneo {torneo}')\n", + " torneo-=1\n", + " if torneo == 0: \n", + " torneo = 2\n", + " temporada -= 1\n", + "print(\"[+] Excel Generado!\")" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['liga_mx_data.ipynb',\n", + " 'Valores_Equipos_LigaMX.xlsx',\n", + " '.gitkeep',\n", + " 'Estadisticos_LigaMX.xlsx',\n", + " '.ipynb_checkpoints',\n", + " 'ligamx_equipos_valor.ipynb']" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import os\n", + "\n", + "os.listdir()" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "def sum_dfs(df_list):\n", + " tables = []\n", + " for table in df_list:\n", + " table.columns = table.columns.droplevel(level=0)\n", + " table.sort_values('Club', inplace = True)\n", + " tables.append(table)\n", + " result = pd.concat(tables).groupby(['Club']).sum() \n", + " return tables\n", + "\n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[ POS Club JJ JG JE JP GF GC Dif PTS ... \\\n", + " 4 5 América 17 7 7 3 27 22 5 28 ... \n", + " 11 12 Atlas 17 6 3 8 19 24 -5 21 ... \n", + " 13 14 Club Atlético de San Luis 16 6 2 8 21 26 -5 20 ... \n", + " 12 13 Cruz Azul 16 4 8 4 21 20 1 20 ... \n", + " 15 16 FC Juárez 16 5 2 9 15 24 -9 17 ... \n", + " 14 15 Guadalajara 16 5 4 7 22 25 -3 19 ... \n", + " 5 6 León 16 7 6 3 32 22 10 27 ... \n", + " 6 7 M. Morelia 16 7 3 6 27 21 6 24 ... \n", + " 10 11 Monterrey 16 6 3 7 21 23 -2 21 ... \n", + " 1 2 Necaxa 16 8 4 4 31 20 11 28 ... \n", + " 8 9 PUMAS 16 6 4 6 20 17 3 22 ... \n", + " 9 10 Pachuca 16 6 3 7 30 26 4 21 ... \n", + " 17 18 Puebla F.C. 16 3 5 8 15 28 -13 14 ... \n", + " 2 3 Querétaro 16 8 4 4 26 15 11 28 ... \n", + " 0 1 Santos Laguna 16 10 3 3 35 22 13 33 ... \n", + " 7 8 Tijuana 16 7 3 6 25 30 -5 24 ... \n", + " 16 17 Toluca 16 4 4 8 14 20 -6 16 ... \n", + " 3 4 UANL 16 7 7 2 24 13 11 28 ... \n", + " 18 19 Veracruz 16 1 5 10 10 37 -27 8 ... \n", + " \n", + " Dif PTS JJ JG JE JP GF GC Dif PTS \n", + " 4 9 18 8 2 4 2 8 12 -4 10 \n", + " 11 -1 10 8 3 2 3 9 13 -4 11 \n", + " 13 -6 5 8 5 0 3 14 13 1 15 \n", + " 12 5 13 8 1 4 3 7 11 -4 7 \n", + " 15 4 13 8 1 1 6 4 17 -13 4 \n", + " 14 2 10 9 2 3 4 12 17 -5 9 \n", + " 5 4 14 8 4 1 3 17 11 6 13 \n", + " 6 6 13 8 3 2 3 13 13 0 11 \n", + " 10 2 14 8 2 1 5 9 13 -4 7 \n", + " 1 8 13 7 5 0 2 12 9 3 15 \n", + " 8 9 16 8 1 3 4 5 11 -6 6 \n", + " 9 0 9 8 3 3 2 17 13 4 12 \n", + " 17 -7 8 8 1 3 4 7 13 -6 6 \n", + " 2 3 14 8 4 2 2 14 6 8 14 \n", + " 0 19 22 8 3 2 3 11 17 -6 11 \n", + " 7 5 15 9 3 0 6 12 22 -10 9 \n", + " 16 -1 10 8 1 3 4 5 10 -5 6 \n", + " 3 8 15 8 3 4 1 9 6 3 13 \n", + " 18 -8 6 8 0 2 6 2 21 -19 2 \n", + " \n", + " [19 rows x 26 columns],\n", + " POS Club JJ JG JE JP GF GC Dif PTS ... Dif PTS JJ \\\n", + " 4 5 América 17 9 2 6 28 19 9 29 ... 8 19 8 \n", + " 12 13 Atlas 17 6 1 10 19 28 -9 19 ... -1 9 9 \n", + " 3 4 Cruz Azul 17 8 6 3 26 15 11 30 ... 7 16 9 \n", + " 13 14 Guadalajara 17 5 3 9 16 21 -5 18 ... 0 13 8 \n", + " 0 1 León 17 13 2 2 41 14 27 41 ... 14 22 8 \n", + " 11 12 Lobos 17 6 2 9 17 34 -17 20 ... -7 10 8 \n", + " 15 16 M. Morelia 17 2 7 8 20 31 -11 13 ... -5 8 8 \n", + " 2 3 Monterrey 17 8 6 3 33 21 12 30 ... 14 17 8 \n", + " 5 6 Necaxa 17 8 5 4 32 24 8 29 ... 3 13 9 \n", + " 14 15 PUMAS 17 4 5 8 19 26 -7 17 ... 1 14 8 \n", + " 6 7 Pachuca 17 8 4 5 32 26 6 28 ... 21 24 9 \n", + " 9 10 Puebla F.C. 17 6 6 5 18 21 -3 24 ... -4 11 8 \n", + " 16 17 Querétaro 17 3 2 12 11 30 -19 11 ... -3 11 8 \n", + " 10 11 Santos Laguna 17 6 4 7 21 23 -2 22 ... 9 17 9 \n", + " 7 8 Tijuana 17 9 1 7 25 20 5 28 ... 9 18 9 \n", + " 8 9 Toluca 17 7 4 6 28 23 5 25 ... 14 19 9 \n", + " 1 2 UANL 17 11 4 2 33 16 17 37 ... 10 19 9 \n", + " 17 18 Veracruz 17 0 4 13 7 34 -27 0 ... -8 2 9 \n", + " \n", + " JG JE JP GF GC Dif PTS \n", + " 4 3 1 4 14 13 1 10 \n", + " 12 3 1 5 10 18 -8 10 \n", + " 3 3 5 1 12 8 4 14 \n", + " 13 1 2 5 7 12 -5 5 \n", + " 0 6 1 1 20 7 13 19 \n", + " 11 3 1 4 6 16 -10 10 \n", + " 15 0 5 3 7 13 -6 5 \n", + " 2 4 1 3 10 12 -2 13 \n", + " 5 5 1 3 20 15 5 16 \n", + " 14 1 0 7 7 15 -8 3 \n", + " 6 0 4 5 6 21 -15 4 \n", + " 9 4 1 3 10 9 1 13 \n", + " 16 0 0 8 3 19 -16 0 \n", + " 10 1 2 6 6 17 -11 5 \n", + " 7 3 1 5 8 12 -4 10 \n", + " 8 1 3 5 8 17 -9 6 \n", + " 1 5 3 1 14 7 7 18 \n", + " 17 0 2 7 4 23 -19 2 \n", + " \n", + " [18 rows x 26 columns],\n", + " POS Club JJ JG JE JP GF GC Dif PTS ... Dif PTS JJ \\\n", + " 1 2 América 17 9 6 2 33 17 16 33 ... 13 18 9 \n", + " 16 17 Atlas 17 2 5 10 11 27 -16 11 ... -3 9 8 \n", + " 0 1 Cruz Azul 17 11 3 3 26 13 13 36 ... 15 25 8 \n", + " 10 11 Guadalajara 17 5 5 7 21 22 -1 20 ... -6 4 9 \n", + " 13 14 León 17 5 3 9 18 23 -5 18 ... -4 6 9 \n", + " 12 13 Lobos 17 5 4 8 21 25 -4 19 ... 5 14 9 \n", + " 8 9 M. Morelia 17 7 4 6 23 26 -3 25 ... -2 11 9 \n", + " 4 5 Monterrey 17 9 3 5 25 19 6 30 ... 8 19 9 \n", + " 15 16 Necaxa 17 3 5 9 19 29 -10 14 ... 1 13 8 \n", + " 2 3 PUMAS 17 8 6 3 29 19 10 30 ... 2 10 9 \n", + " 9 10 Pachuca 17 6 6 5 26 18 8 24 ... 8 15 8 \n", + " 11 12 Puebla F.C. 17 5 5 7 23 30 -7 20 ... 2 12 9 \n", + " 7 8 Querétaro 17 7 5 5 19 20 -1 26 ... 4 16 9 \n", + " 3 4 Santos Laguna 17 8 6 3 27 18 9 30 ... 11 21 8 \n", + " 14 15 Tijuana 17 4 5 8 13 24 -11 17 ... 1 13 8 \n", + " 6 7 Toluca 17 8 2 7 27 22 5 26 ... 10 19 8 \n", + " 5 6 UANL 17 8 5 4 32 18 14 29 ... 12 17 8 \n", + " 17 18 Veracruz 17 2 4 11 17 40 -23 8 ... -9 6 8 \n", + " \n", + " JG JE JP GF GC Dif PTS \n", + " 1 4 3 2 14 11 3 15 \n", + " 16 0 2 6 5 18 -13 2 \n", + " 0 3 2 3 8 10 -2 11 \n", + " 10 4 4 1 15 10 5 16 \n", + " 13 3 3 3 10 11 -1 12 \n", + " 12 1 2 6 9 18 -9 5 \n", + " 8 4 2 3 14 15 -1 14 \n", + " 4 3 2 4 8 10 -2 11 \n", + " 15 0 1 7 8 19 -11 1 \n", + " 2 6 2 1 13 5 8 20 \n", + " 9 2 3 3 8 8 0 9 \n", + " 11 2 2 5 10 19 -9 8 \n", + " 7 2 4 3 10 15 -5 10 \n", + " 3 2 3 3 10 12 -2 9 \n", + " 14 1 1 6 2 14 -12 4 \n", + " 6 2 1 5 8 13 -5 7 \n", + " 5 3 3 2 11 9 2 12 \n", + " 17 1 1 6 8 22 -14 4 \n", + " \n", + " [18 rows x 26 columns],\n", + " POS Club JJ JG JE JP GF GC Dif PTS ... Dif PTS JJ \\\n", + " 1 2 América 17 7 8 2 24 14 10 29 ... 11 21 7 \n", + " 14 15 Atlas 17 5 3 9 17 26 -9 18 ... 1 16 8 \n", + " 11 12 Cruz Azul 17 5 7 5 22 18 4 22 ... 5 13 8 \n", + " 16 17 Guadalajara 17 3 6 8 14 24 -10 15 ... -8 3 9 \n", + " 12 13 León 17 6 4 7 24 33 -9 22 ... 1 12 9 \n", + " 17 18 Lobos 17 2 3 12 18 33 -15 9 ... 1 8 8 \n", + " 7 8 M. Morelia 17 7 3 7 22 24 -2 24 ... 3 16 8 \n", + " 2 3 Monterrey 17 8 5 4 30 21 9 29 ... 9 15 9 \n", + " 10 11 Necaxa 17 4 10 3 21 15 6 22 ... 0 8 9 \n", + " 6 7 PUMAS 17 6 6 5 24 24 0 24 ... 4 13 8 \n", + " 8 9 Pachuca 17 6 5 6 29 27 2 23 ... 4 13 9 \n", + " 9 10 Puebla 17 7 2 8 23 24 -1 23 ... 4 16 9 \n", + " 13 14 Querétaro 17 4 6 7 13 18 -5 18 ... -3 7 9 \n", + " 3 4 Santos Laguna 17 9 2 6 29 20 9 29 ... 12 19 9 \n", + " 5 6 Tijuana 17 6 7 4 18 12 6 25 ... 10 20 8 \n", + " 0 1 Toluca 17 11 3 3 24 13 11 36 ... 8 17 10 \n", + " 4 5 UANL 17 7 7 3 23 16 7 28 ... 9 21 8 \n", + " 15 16 Veracruz 17 5 3 9 12 25 -13 18 ... -4 8 8 \n", + " \n", + " JG JE JP GF GC Dif PTS \n", + " 1 1 5 1 6 7 -1 8 \n", + " 14 0 2 6 6 16 -10 2 \n", + " 11 2 3 3 12 13 -1 9 \n", + " 16 3 3 3 10 12 -2 12 \n", + " 12 3 1 5 10 20 -10 10 \n", + " 17 0 1 7 8 24 -16 1 \n", + " 7 2 2 4 10 15 -5 8 \n", + " 2 4 2 3 12 12 0 14 \n", + " 10 3 5 1 13 7 6 14 \n", + " 6 3 2 3 11 15 -4 11 \n", + " 8 2 4 3 14 16 -2 10 \n", + " 9 2 1 6 9 14 -5 7 \n", + " 13 3 2 4 8 10 -2 11 \n", + " 3 3 1 5 10 13 -3 10 \n", + " 5 0 5 3 1 5 -4 5 \n", + " 0 6 1 3 12 9 3 19 \n", + " 4 1 4 3 4 6 -2 7 \n", + " 15 3 1 4 4 13 -9 10 \n", + " \n", + " [18 rows x 26 columns],\n", + " POS Club JJ JG JE JP GF GC Dif PTS ... Dif PTS JJ \\\n", + " 2 3 América 17 9 3 5 23 18 5 30 ... 2 11 10 \n", + " 7 8 Atlas 17 7 4 6 23 19 4 25 ... 2 12 9 \n", + " 5 6 Cruz Azul 17 7 6 4 22 22 0 27 ... 0 12 9 \n", + " 12 13 Guadalajara 17 4 6 7 21 23 -2 18 ... -2 7 8 \n", + " 6 7 León 17 8 2 7 27 23 4 26 ... 1 13 8 \n", + " 9 10 Lobos 17 7 2 8 26 31 -5 23 ... -2 10 9 \n", + " 3 4 M. Morelia 17 8 5 4 25 17 8 29 ... 3 10 9 \n", + " 0 1 Monterrey 17 11 4 2 29 12 17 37 ... 15 25 8 \n", + " 8 9 Necaxa 17 6 6 5 19 15 4 24 ... 4 15 8 \n", + " 17 18 PUMAS 17 3 4 10 14 25 -11 13 ... -2 10 9 \n", + " 11 12 Pachuca 17 5 4 8 23 25 -2 19 ... 4 14 8 \n", + " 14 15 Puebla 17 3 7 7 14 20 -6 16 ... 2 10 8 \n", + " 15 16 Querétaro 17 3 7 7 19 27 -8 16 ... -8 6 8 \n", + " 13 14 Santos Laguna 17 3 9 5 20 23 -3 18 ... -2 8 8 \n", + " 10 11 Tijuana 17 6 3 8 17 23 -6 21 ... -2 11 9 \n", + " 4 5 Toluca 17 8 5 4 24 21 3 29 ... 8 22 7 \n", + " 1 2 UANL 17 9 5 3 28 16 12 32 ... 14 22 9 \n", + " 16 17 Veracruz 17 4 2 11 14 28 -14 14 ... -1 10 9 \n", + " \n", + " JG JE JP GF GC Dif PTS \n", + " 2 6 1 3 14 11 3 19 \n", + " 7 4 1 4 15 13 2 13 \n", + " 5 4 3 2 13 13 0 15 \n", + " 12 3 2 3 12 12 0 11 \n", + " 6 4 1 3 11 8 3 13 \n", + " 9 4 1 4 12 15 -3 13 \n", + " 3 6 1 2 14 9 5 19 \n", + " 0 3 3 2 10 8 2 12 \n", + " 8 2 3 3 7 7 0 9 \n", + " 17 0 3 6 5 14 -9 3 \n", + " 11 1 2 5 9 15 -6 5 \n", + " 14 1 3 4 4 12 -8 6 \n", + " 15 2 4 2 8 8 0 10 \n", + " 13 2 4 2 11 12 -1 10 \n", + " 10 3 1 5 10 14 -4 10 \n", + " 4 1 4 2 4 9 -5 7 \n", + " 1 2 4 3 11 13 -2 10 \n", + " 16 1 1 7 6 19 -13 4 \n", + " \n", + " [18 rows x 26 columns],\n", + " POS Club JJ JG JE JP GF GC Dif PTS ... Dif PTS JJ \\\n", + " 8 9 América 17 7 3 7 19 19 0 24 ... 4 16 9 \n", + " 5 6 Atlas 17 7 5 5 24 20 4 26 ... 5 15 8 \n", + " 10 11 Cruz Azul 17 5 6 6 19 20 -1 21 ... 3 13 9 \n", + " 2 3 Guadalajara 17 7 6 4 21 18 3 27 ... 6 17 9 \n", + " 15 16 Jaguares 17 5 4 8 18 28 -10 19 ... -1 11 9 \n", + " 13 14 León 17 5 5 7 21 23 -2 20 ... -2 8 8 \n", + " 7 8 M. Morelia 17 6 6 5 19 16 3 24 ... 3 11 9 \n", + " 1 2 Monterrey 17 7 6 4 26 18 8 27 ... 11 20 8 \n", + " 11 12 Necaxa 17 5 6 6 16 21 -5 21 ... -2 11 8 \n", + " 16 17 PUMAS 17 5 3 9 21 30 -9 18 ... -1 11 8 \n", + " 9 10 Pachuca 17 6 6 5 16 16 0 24 ... 3 14 9 \n", + " 17 18 Puebla 17 4 4 9 18 25 -7 16 ... -1 8 9 \n", + " 14 15 Querétaro 17 5 4 8 21 27 -6 19 ... -4 11 8 \n", + " 4 5 Santos Laguna 17 5 11 1 25 20 5 26 ... 6 19 8 \n", + " 0 1 Tijuana 17 9 4 4 30 22 8 31 ... 8 17 8 \n", + " 3 4 Toluca 17 8 3 6 21 20 1 27 ... 1 13 8 \n", + " 6 7 UANL 17 7 4 6 26 12 14 25 ... 10 14 9 \n", + " 12 13 Veracruz 17 7 0 10 14 20 -6 21 ... 4 18 9 \n", + " \n", + " JG JE JP GF GC Dif PTS \n", + " 8 2 2 5 10 14 -4 8 \n", + " 5 3 2 3 10 11 -1 11 \n", + " 10 2 2 5 10 14 -4 8 \n", + " 2 2 4 3 9 12 -3 10 \n", + " 15 2 2 5 7 16 -9 8 \n", + " 13 3 3 2 6 6 0 12 \n", + " 7 3 4 2 9 9 0 13 \n", + " 1 1 4 3 9 12 -3 7 \n", + " 11 3 1 4 7 10 -3 10 \n", + " 16 2 1 5 9 17 -8 7 \n", + " 9 3 1 5 11 14 -3 10 \n", + " 17 2 2 5 10 16 -6 8 \n", + " 14 2 2 4 8 10 -2 8 \n", + " 4 0 7 1 9 10 -1 7 \n", + " 0 4 2 2 14 14 0 14 \n", + " 3 4 2 2 9 9 0 14 \n", + " 6 3 2 4 11 7 4 11 \n", + " 12 1 0 8 3 13 -10 3 \n", + " \n", + " [18 rows x 26 columns],\n", + " POS Club JJ JG JE JP GF GC Dif PTS ... Dif PTS JJ \\\n", + " 4 5 América 17 7 7 3 29 26 3 28 ... 0 16 8 \n", + " 14 15 Atlas 17 4 7 6 21 25 -4 19 ... 5 16 9 \n", + " 13 14 Cruz Azul 17 4 7 6 25 23 2 19 ... 0 10 8 \n", + " 3 4 Guadalajara 17 8 4 5 21 17 4 28 ... 3 15 8 \n", + " 17 18 Jaguares 17 2 3 12 9 30 -21 9 ... -10 8 8 \n", + " 7 8 León 17 7 5 5 25 25 0 26 ... 4 15 9 \n", + " 12 13 M. Morelia 17 5 5 7 28 34 -6 20 ... -5 11 8 \n", + " 8 9 Monterrey 17 6 7 4 30 21 9 25 ... 8 14 9 \n", + " 6 7 Necaxa 17 6 8 3 24 18 6 26 ... 6 16 9 \n", + " 5 6 PUMAS 17 8 3 6 28 22 6 27 ... 8 19 9 \n", + " 1 2 Pachuca 17 9 4 4 36 21 15 31 ... 14 21 8 \n", + " 11 12 Puebla 17 5 5 7 25 30 -5 20 ... -5 10 8 \n", + " 10 11 Querétaro 17 5 5 7 20 24 -4 20 ... 2 12 9 \n", + " 15 16 Santos Laguna 17 4 4 9 19 30 -11 16 ... 1 11 9 \n", + " 0 1 Tijuana 17 10 3 4 25 13 12 33 ... 12 21 9 \n", + " 9 10 Toluca 17 6 6 5 22 21 1 24 ... 2 12 9 \n", + " 2 3 UANL 17 8 6 3 22 13 9 30 ... 1 13 8 \n", + " 16 17 Veracruz 17 3 3 11 22 38 -16 12 ... -5 10 8 \n", + " \n", + " JG JE JP GF GC Dif PTS \n", + " 4 2 6 0 17 14 3 12 \n", + " 14 0 3 6 9 18 -9 3 \n", + " 13 1 6 1 8 6 2 9 \n", + " 3 4 1 3 9 8 1 13 \n", + " 17 0 1 7 2 13 -11 1 \n", + " 7 3 2 4 12 16 -4 11 \n", + " 12 2 3 3 13 14 -1 9 \n", + " 8 3 2 4 15 14 1 11 \n", + " 6 2 4 3 9 9 0 10 \n", + " 5 2 2 5 12 14 -2 8 \n", + " 1 3 1 4 13 12 1 10 \n", + " 11 3 1 4 14 14 0 10 \n", + " 10 2 2 5 10 16 -6 8 \n", + " 15 1 2 6 8 20 -12 5 \n", + " 0 3 3 3 11 11 0 12 \n", + " 9 3 3 3 12 13 -1 12 \n", + " 2 5 2 1 12 4 8 17 \n", + " 16 0 2 6 9 20 -11 2 \n", + " \n", + " [18 rows x 26 columns],\n", + " POS Club JJ JG JE JP GF GC Dif PTS ... Dif PTS JJ \\\n", + " 3 4 América 17 8 5 4 34 22 12 29 ... 7 15 8 \n", + " 14 15 Atlas 17 3 5 9 18 26 -8 14 ... -6 6 9 \n", + " 8 9 Cruz Azul 17 5 7 5 25 24 1 22 ... 2 12 9 \n", + " 15 16 Dorados 17 4 2 11 18 32 -14 14 ... 1 12 9 \n", + " 4 5 Guadalajara 17 7 7 3 26 16 10 28 ... 4 13 8 \n", + " 17 18 Jaguares 17 3 3 11 16 33 -17 12 ... -7 8 8 \n", + " 2 3 León 17 9 3 5 29 19 10 30 ... 8 16 8 \n", + " 5 6 M. Morelia 17 8 4 5 25 24 1 28 ... 6 18 8 \n", + " 0 1 Monterrey 17 12 1 4 38 23 15 37 ... 14 21 8 \n", + " 9 10 PUMAS 17 5 7 5 23 24 -1 22 ... 3 13 8 \n", + " 1 2 Pachuca 17 8 6 3 31 16 15 30 ... 14 20 9 \n", + " 11 12 Puebla 17 5 7 5 21 26 -5 22 ... 2 14 9 \n", + " 12 13 Querétaro 17 5 4 8 21 26 -5 19 ... 2 15 8 \n", + " 6 7 Santos Laguna 17 8 3 6 22 20 2 27 ... 5 16 9 \n", + " 13 14 Tijuana 17 3 9 5 17 26 -9 18 ... -5 6 8 \n", + " 10 11 Toluca 17 5 7 5 20 21 -1 22 ... 3 12 9 \n", + " 7 8 UANL 17 6 6 5 29 19 10 24 ... 9 15 9 \n", + " 16 17 Veracruz 17 2 8 7 18 34 -16 14 ... -1 10 9 \n", + " \n", + " JG JE JP GF GC Dif PTS \n", + " 3 4 2 2 13 8 5 14 \n", + " 14 2 2 5 13 15 -2 8 \n", + " 8 2 4 3 15 16 -1 10 \n", + " 15 0 2 7 7 22 -15 2 \n", + " 4 4 3 1 12 6 6 15 \n", + " 17 1 1 6 7 17 -10 4 \n", + " 2 4 2 2 10 8 2 14 \n", + " 5 3 1 4 10 15 -5 10 \n", + " 0 5 1 2 16 15 1 16 \n", + " 9 2 3 3 7 11 -4 9 \n", + " 1 2 4 3 9 8 1 10 \n", + " 11 1 5 3 7 14 -7 8 \n", + " 12 1 1 6 9 16 -7 4 \n", + " 6 3 2 4 10 13 -3 11 \n", + " 13 3 3 2 10 14 -4 12 \n", + " 10 2 4 3 10 14 -4 10 \n", + " 7 2 3 4 12 11 1 9 \n", + " 16 0 4 5 8 23 -15 4 \n", + " \n", + " [18 rows x 26 columns],\n", + " POS Club JJ JG JE JP GF GC Dif PTS ... Dif PTS JJ \\\n", + " 5 6 América 17 9 1 7 30 21 9 28 ... 2 10 9 \n", + " 15 16 Atlas 17 5 2 10 17 28 -11 17 ... -8 6 8 \n", + " 13 14 Cruz Azul 17 5 5 7 19 25 -6 20 ... -5 9 8 \n", + " 17 18 Dorados 17 3 6 8 13 29 -16 15 ... -3 10 8 \n", + " 12 13 Guadalajara 17 6 3 8 23 26 -3 21 ... 3 14 9 \n", + " 3 4 Jaguares 17 8 5 4 31 27 4 29 ... 10 20 9 \n", + " 2 3 León 17 10 0 7 32 31 1 30 ... 11 21 9 \n", + " 9 10 M. Morelia 17 7 2 8 26 26 0 23 ... -2 7 9 \n", + " 8 9 Monterrey 17 6 5 6 32 29 3 23 ... 8 16 9 \n", + " 0 1 PUMAS 17 11 2 4 37 20 17 35 ... 15 21 9 \n", + " 11 12 Pachuca 17 6 3 8 30 33 -3 21 ... -2 11 8 \n", + " 6 7 Puebla 17 8 3 6 22 20 2 27 ... 5 21 8 \n", + " 10 11 Querétaro 17 6 4 7 25 25 0 22 ... 5 13 9 \n", + " 14 15 Santos Laguna 17 4 5 8 21 24 -3 17 ... -10 2 8 \n", + " 16 17 Tijuana 17 5 1 11 21 30 -9 16 ... -4 7 9 \n", + " 1 2 Toluca 17 10 2 5 33 24 9 32 ... 6 16 8 \n", + " 4 5 UANL 17 8 4 5 26 16 10 28 ... 8 15 8 \n", + " 7 8 Veracruz 17 8 3 6 23 27 -4 27 ... 0 16 8 \n", + " \n", + " JG JE JP GF GC Dif PTS \n", + " 5 6 0 3 18 11 7 18 \n", + " 15 3 2 3 9 12 -3 11 \n", + " 13 3 2 3 10 11 -1 11 \n", + " 17 1 2 5 6 19 -13 5 \n", + " 12 2 1 6 8 14 -6 7 \n", + " 3 2 3 4 12 18 -6 9 \n", + " 2 3 0 6 14 24 -10 9 \n", + " 9 5 1 3 14 12 2 16 \n", + " 8 2 1 6 14 19 -5 7 \n", + " 0 4 2 3 18 16 2 14 \n", + " 11 3 1 4 17 18 -1 10 \n", + " 6 1 3 4 5 8 -3 6 \n", + " 10 2 3 4 11 16 -5 9 \n", + " 14 4 3 1 13 6 7 15 \n", + " 16 3 0 6 12 17 -5 9 \n", + " 1 5 1 2 13 10 3 16 \n", + " 4 4 1 3 8 6 2 13 \n", + " 7 3 2 3 9 13 -4 11 \n", + " \n", + " [18 rows x 26 columns],\n", + " POS Club JJ JG JE JP GF GC Dif PTS ... Dif PTS JJ \\\n", + " 1 2 América 17 8 5 4 21 18 3 29 ... 6 19 8 \n", + " 3 4 Atlas 17 8 4 5 20 21 -1 28 ... -3 11 9 \n", + " 8 9 Cruz Azul 17 7 4 6 14 14 0 25 ... 1 13 9 \n", + " 4 5 Guadalajara 17 7 5 5 20 16 4 26 ... 6 17 9 \n", + " 14 15 Jaguares 17 5 5 7 21 30 -9 20 ... 0 13 8 \n", + " 16 17 León 17 4 4 9 27 32 -5 16 ... 4 12 9 \n", + " 17 18 M. Morelia 17 3 4 10 17 25 -8 13 ... -1 9 8 \n", + " 11 12 Monterrey 17 7 3 7 24 27 -3 24 ... 8 18 9 \n", + " 12 13 PUMAS 17 6 4 7 22 27 -5 22 ... 2 16 8 \n", + " 6 7 Pachuca 17 7 4 6 25 21 4 25 ... 5 17 8 \n", + " 13 14 Puebla 17 5 5 7 21 20 1 20 ... 5 13 9 \n", + " 5 6 Querétaro 17 8 2 7 25 23 2 26 ... 2 15 9 \n", + " 7 8 Santos Laguna 17 7 4 6 24 21 3 25 ... 4 15 8 \n", + " 10 11 Tijuana 17 7 3 7 30 30 0 24 ... 7 16 9 \n", + " 9 10 Toluca 17 6 6 5 20 18 2 24 ... 9 18 9 \n", + " 15 16 U. de G. 17 5 3 9 13 19 -6 18 ... -3 9 8 \n", + " 0 1 UANL 17 9 2 6 23 15 8 29 ... 10 21 8 \n", + " 2 3 Veracruz 17 7 7 3 28 18 10 28 ... 9 16 8 \n", + " \n", + " JG JE JP GF GC Dif PTS \n", + " 1 2 4 2 7 10 -3 10 \n", + " 3 5 2 2 9 7 2 17 \n", + " 8 3 3 3 6 7 -1 12 \n", + " 4 2 3 4 9 11 -2 9 \n", + " 14 2 1 5 8 17 -9 7 \n", + " 16 1 1 7 9 18 -9 4 \n", + " 17 1 1 6 8 15 -7 4 \n", + " 11 2 0 7 8 19 -11 6 \n", + " 12 1 3 4 10 17 -7 6 \n", + " 6 2 2 4 11 12 -1 8 \n", + " 13 1 4 4 10 14 -4 7 \n", + " 5 3 2 4 16 16 0 11 \n", + " 7 3 1 4 8 9 -1 10 \n", + " 10 2 2 5 11 18 -7 8 \n", + " 9 1 3 5 8 15 -7 6 \n", + " 15 3 0 5 6 9 -3 9 \n", + " 0 2 2 4 7 9 -2 8 \n", + " 2 3 3 2 11 10 1 12 \n", + " \n", + " [18 rows x 26 columns],\n", + " POS Club JJ JG JE JP GF GC Dif PTS ... Dif PTS JJ \\\n", + " 0 1 América 17 9 4 4 28 18 10 31 ... 5 16 9 \n", + " 2 3 Atlas 17 9 4 4 22 20 2 31 ... 4 18 8 \n", + " 12 13 Cruz Azul 17 5 6 6 16 15 1 21 ... 5 16 8 \n", + " 15 16 Guadalajara 17 3 7 7 13 20 -7 16 ... -2 8 8 \n", + " 4 5 Jaguares 17 7 7 3 24 20 4 28 ... 5 16 9 \n", + " 9 10 León 17 7 1 9 29 27 2 22 ... 8 16 8 \n", + " 17 18 M. Morelia 17 2 4 11 16 34 -18 10 ... -9 4 9 \n", + " 5 6 Monterrey 17 8 3 6 23 20 3 27 ... 6 18 8 \n", + " 7 8 PUMAS 17 6 6 5 24 20 4 24 ... 0 8 9 \n", + " 6 7 Pachuca 17 7 4 6 20 18 2 25 ... 6 14 9 \n", + " 14 15 Puebla 17 2 10 5 15 21 -6 16 ... -4 9 8 \n", + " 11 12 Querétaro 17 6 3 8 23 22 1 21 ... 1 12 8 \n", + " 8 9 Santos Laguna 17 5 8 4 23 24 -1 23 ... 2 12 9 \n", + " 10 11 Tijuana 17 4 9 4 21 19 2 21 ... 4 15 8 \n", + " 3 4 Toluca 17 8 5 4 24 18 6 29 ... 7 18 8 \n", + " 13 14 U. de G. 17 3 8 6 10 16 -6 17 ... 0 10 9 \n", + " 1 2 UANL 17 8 7 2 25 17 8 31 ... 2 16 9 \n", + " 16 17 Veracruz 17 3 6 8 8 15 -7 15 ... -2 8 9 \n", + " \n", + " JG JE JP GF GC Dif PTS \n", + " 0 4 3 2 16 11 5 15 \n", + " 2 4 1 3 9 11 -2 13 \n", + " 12 0 5 3 4 8 -4 5 \n", + " 15 2 2 4 5 10 -5 8 \n", + " 4 3 3 3 13 14 -1 12 \n", + " 9 2 0 6 11 17 -6 6 \n", + " 17 1 3 5 10 19 -9 6 \n", + " 5 3 0 5 9 12 -3 9 \n", + " 7 5 1 3 14 10 4 16 \n", + " 6 3 2 4 8 12 -4 11 \n", + " 14 1 4 3 4 6 -2 7 \n", + " 11 3 0 5 12 12 0 9 \n", + " 8 2 5 2 9 12 -3 11 \n", + " 10 0 6 2 8 10 -2 6 \n", + " 3 3 2 3 8 9 -1 11 \n", + " 13 1 4 4 5 11 -6 7 \n", + " 1 3 6 0 15 9 6 15 \n", + " 16 1 4 4 3 8 -5 7 \n", + " \n", + " [18 rows x 26 columns],\n", + " POS Club JJ JG JE JP GF GC Dif PTS ... Dif PTS JJ \\\n", + " 4 5 América 17 7 4 6 21 17 4 25 ... -1 11 8 \n", + " 16 17 Atlante 17 5 3 9 22 34 -12 18 ... -3 9 9 \n", + " 11 12 Atlas 17 5 6 6 17 18 -1 21 ... -2 8 8 \n", + " 0 1 Cruz Azul 17 11 3 3 28 19 9 36 ... 7 19 9 \n", + " 14 15 Guadalajara 17 5 6 6 13 18 -5 21 ... -4 11 9 \n", + " 8 9 Jaguares 17 6 5 6 23 23 0 23 ... 1 13 8 \n", + " 7 8 León 17 6 5 6 23 17 6 23 ... 3 11 9 \n", + " 10 11 M. Morelia 17 5 6 6 21 20 1 21 ... 7 15 8 \n", + " 9 10 Monterrey 17 6 5 6 20 20 0 23 ... 2 12 8 \n", + " 2 3 PUMAS 17 7 4 6 26 20 6 25 ... 7 15 8 \n", + " 5 6 Pachuca 17 7 3 7 23 21 2 24 ... 2 12 8 \n", + " 15 16 Puebla 17 4 6 7 14 19 -5 18 ... -1 8 9 \n", + " 12 13 Querétaro 17 6 3 8 18 22 -4 21 ... 0 13 9 \n", + " 3 4 Santos Laguna 17 6 7 4 33 29 4 25 ... 5 17 8 \n", + " 6 7 Tijuana 17 7 3 7 22 23 -1 24 ... 5 18 9 \n", + " 1 2 Toluca 17 10 2 5 25 14 11 32 ... 10 20 9 \n", + " 13 14 UANL 17 5 6 6 13 17 -4 21 ... 2 12 9 \n", + " 17 18 Veracruz 17 3 7 7 14 25 -11 16 ... -2 10 8 \n", + " \n", + " JG JE JP GF GC Dif PTS \n", + " 4 4 2 2 12 7 5 14 \n", + " 16 3 0 6 12 21 -9 9 \n", + " 11 4 1 3 11 10 1 13 \n", + " 0 5 2 2 13 11 2 17 \n", + " 14 2 4 3 8 9 -1 10 \n", + " 8 3 1 4 12 13 -1 10 \n", + " 7 3 3 3 10 7 3 12 \n", + " 10 1 3 4 6 12 -6 6 \n", + " 9 3 2 3 7 9 -2 11 \n", + " 2 3 1 4 11 12 -1 10 \n", + " 5 3 3 2 12 12 0 12 \n", + " 15 2 4 3 6 10 -4 10 \n", + " 12 2 2 5 8 12 -4 8 \n", + " 3 1 5 2 14 15 -1 8 \n", + " 6 1 3 5 9 15 -6 6 \n", + " 1 4 0 5 10 9 1 12 \n", + " 13 2 3 4 4 10 -6 9 \n", + " 17 1 3 4 4 13 -9 6 \n", + " \n", + " [18 rows x 26 columns],\n", + " POS Club JJ JG JE JP GF GC Dif PTS ... Dif PTS JJ \\\n", + " 0 1 América 17 11 4 2 31 12 19 37 ... 14 22 9 \n", + " 16 17 Atlante 17 3 3 11 17 35 -18 12 ... -2 12 8 \n", + " 14 15 Atlas 17 1 9 7 18 29 -11 12 ... -1 7 9 \n", + " 3 4 Cruz Azul 17 8 5 4 21 17 4 29 ... 3 17 8 \n", + " 15 16 Guadalajara 17 2 6 9 16 30 -14 12 ... -6 9 8 \n", + " 8 9 Jaguares 17 6 7 4 26 25 1 25 ... 5 17 9 \n", + " 2 3 León 17 8 6 3 25 14 11 30 ... 10 18 8 \n", + " 5 6 M. Morelia 17 8 3 6 26 23 3 27 ... 5 16 9 \n", + " 10 11 Monterrey 17 5 5 7 22 23 -1 20 ... 2 13 9 \n", + " 17 18 PUMAS 17 1 8 8 8 21 -13 11 ... -10 3 9 \n", + " 13 14 Pachuca 17 3 8 6 14 18 -4 17 ... -1 8 9 \n", + " 12 13 Puebla 17 4 7 6 19 21 -2 19 ... 4 14 8 \n", + " 6 7 Querétaro 17 7 5 5 20 19 1 26 ... 4 16 8 \n", + " 1 2 Santos Laguna 17 9 6 2 32 20 12 33 ... 8 19 9 \n", + " 9 10 Tijuana 17 5 6 6 20 23 -3 21 ... 10 19 8 \n", + " 4 5 Toluca 17 6 9 2 33 17 16 27 ... 10 13 8 \n", + " 7 8 UANL 17 6 7 4 23 20 3 25 ... 3 13 8 \n", + " 11 12 Veracruz 17 4 8 5 20 24 -4 20 ... -3 9 9 \n", + " \n", + " JG JE JP GF GC Dif PTS \n", + " 0 4 3 2 13 8 5 15 \n", + " 16 0 0 8 3 19 -16 0 \n", + " 14 0 5 4 6 16 -10 5 \n", + " 3 3 3 2 12 11 1 12 \n", + " 15 0 3 5 8 16 -8 3 \n", + " 8 1 5 3 10 14 -4 8 \n", + " 2 3 3 2 8 7 1 12 \n", + " 5 3 2 4 10 12 -2 11 \n", + " 10 2 1 6 14 17 -3 7 \n", + " 17 1 5 3 4 7 -3 8 \n", + " 13 2 3 4 9 12 -3 9 \n", + " 12 1 2 5 9 15 -6 5 \n", + " 6 3 1 4 7 10 -3 10 \n", + " 1 3 5 1 14 10 4 14 \n", + " 9 0 2 6 5 18 -13 2 \n", + " 4 3 5 0 15 9 6 14 \n", + " 7 3 3 2 8 8 0 12 \n", + " 11 2 5 2 13 14 -1 11 \n", + " \n", + " [18 rows x 26 columns],\n", + " POS Club JJ JG JE JP GF GC Dif PTS ... Dif PTS JJ \\\n", + " 1 2 América 17 9 5 3 30 15 15 32 ... 10 18 8 \n", + " 17 18 Atlante 17 4 1 12 16 33 -17 13 ... -3 10 8 \n", + " 2 3 Atlas 17 9 5 3 20 13 7 32 ... 5 19 8 \n", + " 4 5 Cruz Azul 17 8 5 4 35 20 15 29 ... 9 14 9 \n", + " 16 17 Guadalajara 17 3 7 7 15 24 -9 16 ... -2 9 9 \n", + " 13 14 Jaguares 17 4 5 8 21 32 -11 17 ... -1 12 8 \n", + " 14 15 León 17 3 7 7 14 18 -4 16 ... 1 10 9 \n", + " 3 4 M. Morelia 17 8 6 3 25 18 7 30 ... 8 18 9 \n", + " 8 9 Monterrey 17 7 2 8 22 22 0 23 ... 6 18 9 \n", + " 6 7 PUMAS 17 8 5 4 19 14 5 29 ... 4 13 9 \n", + " 10 11 Pachuca 17 6 2 9 18 25 -7 20 ... 3 16 9 \n", + " 11 12 Puebla 17 5 4 8 20 27 -7 19 ... -1 8 9 \n", + " 7 8 Querétaro 17 6 6 5 18 20 -2 24 ... 0 14 8 \n", + " 15 16 San Luis 17 4 4 9 19 25 -6 16 ... -2 8 9 \n", + " 5 6 Santos Laguna 17 8 5 4 20 13 7 29 ... 6 19 8 \n", + " 9 10 Tijuana 17 6 3 8 19 21 -2 21 ... 6 14 8 \n", + " 12 13 Toluca 17 5 3 9 14 21 -7 18 ... -5 10 8 \n", + " 0 1 UANL 17 10 5 2 30 14 16 35 ... 5 14 8 \n", + " \n", + " JG JE JP GF GC Dif PTS \n", + " 1 4 2 2 13 8 5 14 \n", + " 17 1 0 7 4 18 -14 3 \n", + " 2 3 4 1 9 7 2 13 \n", + " 4 4 3 2 19 13 6 15 \n", + " 16 1 4 4 7 14 -7 7 \n", + " 13 1 2 5 8 18 -10 5 \n", + " 14 1 3 5 5 10 -5 6 \n", + " 3 3 3 3 9 10 -1 12 \n", + " 8 1 2 6 7 13 -6 5 \n", + " 6 5 1 3 10 9 1 16 \n", + " 10 1 1 7 5 15 -10 4 \n", + " 11 3 2 4 10 16 -6 11 \n", + " 7 2 4 2 8 10 -2 10 \n", + " 15 2 2 5 9 13 -4 8 \n", + " 5 2 4 2 8 7 1 10 \n", + " 9 2 1 5 6 14 -8 7 \n", + " 12 2 2 4 8 10 -2 8 \n", + " 0 7 0 1 18 7 11 21 \n", + " \n", + " [18 rows x 26 columns],\n", + " POS Club JJ JG JE JP GF GC Dif PTS ... Dif PTS JJ \\\n", + " 3 4 América 17 8 7 2 28 15 13 31 ... 6 14 9 \n", + " 13 14 Atlante 17 5 5 7 23 28 -5 20 ... -1 9 9 \n", + " 16 17 Atlas 17 1 9 7 16 24 -8 12 ... -3 6 9 \n", + " 5 6 Cruz Azul 17 6 8 3 22 15 7 26 ... 8 15 8 \n", + " 7 8 Guadalajara 17 6 5 6 17 17 0 23 ... -1 10 8 \n", + " 10 11 Jaguares 17 6 4 7 23 24 -1 22 ... 8 18 9 \n", + " 2 3 León 17 10 3 4 34 17 17 33 ... 14 21 8 \n", + " 4 5 M. Morelia 17 6 9 2 25 16 9 27 ... 7 16 8 \n", + " 6 7 Monterrey 17 5 8 4 23 23 0 23 ... 2 14 8 \n", + " 9 10 PUMAS 17 7 2 8 18 23 -5 23 ... 3 15 8 \n", + " 12 13 Pachuca 17 5 6 6 13 20 -7 21 ... 1 16 8 \n", + " 15 16 Puebla 17 3 4 10 16 27 -11 13 ... -4 7 8 \n", + " 17 18 Querétaro 17 1 4 12 11 30 -19 7 ... -11 1 9 \n", + " 14 15 San Luis 17 3 6 8 14 24 -10 15 ... -6 6 8 \n", + " 8 9 Santos Laguna 17 6 5 6 22 26 -4 23 ... 4 15 9 \n", + " 1 2 Tijuana 17 9 7 1 23 15 8 34 ... 7 18 9 \n", + " 0 1 Toluca 17 10 4 3 28 17 11 34 ... 10 20 9 \n", + " 11 12 UANL 17 5 6 6 23 18 5 21 ... 7 13 9 \n", + " \n", + " JG JE JP GF GC Dif PTS \n", + " 3 4 5 0 13 6 7 17 \n", + " 13 3 2 4 11 15 -4 11 \n", + " 16 1 3 5 8 13 -5 6 \n", + " 5 3 2 3 8 9 -1 11 \n", + " 7 4 1 3 9 8 1 13 \n", + " 10 0 4 5 8 17 -9 4 \n", + " 2 3 3 2 12 9 3 12 \n", + " 4 2 5 1 11 9 2 11 \n", + " 6 2 3 3 10 12 -2 9 \n", + " 9 2 2 4 5 13 -8 8 \n", + " 12 1 2 5 2 10 -8 5 \n", + " 15 1 3 4 8 15 -7 6 \n", + " 17 1 3 5 9 17 -8 6 \n", + " 14 2 3 3 8 12 -4 9 \n", + " 8 2 2 5 8 16 -8 8 \n", + " 1 4 4 1 12 11 1 16 \n", + " 0 4 2 3 13 12 1 14 \n", + " 11 2 2 5 9 11 -2 8 \n", + " \n", + " [18 rows x 26 columns]]" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sum_dfs(dfs_list)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "result = pd.concat(dfs_list)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "final_table = result.groupby(['Club']).sum()" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
POSJJJGJEJPGFGCDifPTSJJ...DifPTSJJJGJEJPGFGCDifPTS
Club
América562551247160406273133443128...9624412752433218815137199
Atlante666817123978130-526334...-9403472253073-4323
Atlas1712557872105282348-66306128...-6168127353359138198-60138
Club Atlético de San Luis14166282126-5208...-6585031413115
Cruz Azul12225499866934128061383127...65217127394939157161-4166
Dorados343478193161-302917...-2221714121341-287
FC Juárez16165291524-9178...4138116417-134
Guadalajara172254768098279317-38308126...-7160128364052140171-31148
Jaguares119170524870212272-6020485...101368515234787157-7068
León125254108569040133863380127...77215127462754165179-14165
Lobos536820113782123-417134...-3423485213573-3829
M. Morelia143254897194345355-10338127...24183127393850158192-34155
Monterrey99254111667739832276399127...115254127402562158197-39145
Necaxa631184044341621422016460...2089582015237676075
PUMAS1452549169943323320342127...45197127383158141186-45145
Pachuca13225495689136633135353127...82224127313660151198-47129
Puebla160204556485228280-52229102...613810219344996154-5891
Puebla F.C.40501416205679-235825...-9312576122741-1427
Querétaro1722548064110290348-58304127...-6176127323263141193-52128
San Luis3134710173349-163117...-814174581725-817
Santos Laguna11525498827437333340376127...80232127324847149189-40144
Tijuana132254976790326331-5358126...73228128323462131209-78130
Toluca101254112657735729067401127...92239127423649143168-25162
U. de G.3034811152335-123517...-319174491120-916
UANL802541148159380240140423127...11024012747423815312330183
Veracruz1932204960111207365-158201110...-3012911016306484212-12878
\n", + "

26 rows × 25 columns

\n", + "
" + ], + "text/plain": [ + " POS JJ JG JE JP GF GC Dif PTS JJ \\\n", + "Club \n", + "América 56 255 124 71 60 406 273 133 443 128 \n", + "Atlante 66 68 17 12 39 78 130 -52 63 34 \n", + "Atlas 171 255 78 72 105 282 348 -66 306 128 \n", + "Club Atlético de San Luis 14 16 6 2 8 21 26 -5 20 8 \n", + "Cruz Azul 122 254 99 86 69 341 280 61 383 127 \n", + "Dorados 34 34 7 8 19 31 61 -30 29 17 \n", + "FC Juárez 16 16 5 2 9 15 24 -9 17 8 \n", + "Guadalajara 172 254 76 80 98 279 317 -38 308 126 \n", + "Jaguares 119 170 52 48 70 212 272 -60 204 85 \n", + "León 125 254 108 56 90 401 338 63 380 127 \n", + "Lobos 53 68 20 11 37 82 123 -41 71 34 \n", + "M. Morelia 143 254 89 71 94 345 355 -10 338 127 \n", + "Monterrey 99 254 111 66 77 398 322 76 399 127 \n", + "Necaxa 63 118 40 44 34 162 142 20 164 60 \n", + "PUMAS 145 254 91 69 94 332 332 0 342 127 \n", + "Pachuca 132 254 95 68 91 366 331 35 353 127 \n", + "Puebla 160 204 55 64 85 228 280 -52 229 102 \n", + "Puebla F.C. 40 50 14 16 20 56 79 -23 58 25 \n", + "Querétaro 172 254 80 64 110 290 348 -58 304 127 \n", + "San Luis 31 34 7 10 17 33 49 -16 31 17 \n", + "Santos Laguna 115 254 98 82 74 373 333 40 376 127 \n", + "Tijuana 132 254 97 67 90 326 331 -5 358 126 \n", + "Toluca 101 254 112 65 77 357 290 67 401 127 \n", + "U. de G. 30 34 8 11 15 23 35 -12 35 17 \n", + "UANL 80 254 114 81 59 380 240 140 423 127 \n", + "Veracruz 193 220 49 60 111 207 365 -158 201 110 \n", + "\n", + " ... Dif PTS JJ JG JE JP GF GC Dif PTS \n", + "Club ... \n", + "América ... 96 244 127 52 43 32 188 151 37 199 \n", + "Atlante ... -9 40 34 7 2 25 30 73 -43 23 \n", + "Atlas ... -6 168 127 35 33 59 138 198 -60 138 \n", + "Club Atlético de San Luis ... -6 5 8 5 0 3 14 13 1 15 \n", + "Cruz Azul ... 65 217 127 39 49 39 157 161 -4 166 \n", + "Dorados ... -2 22 17 1 4 12 13 41 -28 7 \n", + "FC Juárez ... 4 13 8 1 1 6 4 17 -13 4 \n", + "Guadalajara ... -7 160 128 36 40 52 140 171 -31 148 \n", + "Jaguares ... 10 136 85 15 23 47 87 157 -70 68 \n", + "León ... 77 215 127 46 27 54 165 179 -14 165 \n", + "Lobos ... -3 42 34 8 5 21 35 73 -38 29 \n", + "M. Morelia ... 24 183 127 39 38 50 158 192 -34 155 \n", + "Monterrey ... 115 254 127 40 25 62 158 197 -39 145 \n", + "Necaxa ... 20 89 58 20 15 23 76 76 0 75 \n", + "PUMAS ... 45 197 127 38 31 58 141 186 -45 145 \n", + "Pachuca ... 82 224 127 31 36 60 151 198 -47 129 \n", + "Puebla ... 6 138 102 19 34 49 96 154 -58 91 \n", + "Puebla F.C. ... -9 31 25 7 6 12 27 41 -14 27 \n", + "Querétaro ... -6 176 127 32 32 63 141 193 -52 128 \n", + "San Luis ... -8 14 17 4 5 8 17 25 -8 17 \n", + "Santos Laguna ... 80 232 127 32 48 47 149 189 -40 144 \n", + "Tijuana ... 73 228 128 32 34 62 131 209 -78 130 \n", + "Toluca ... 92 239 127 42 36 49 143 168 -25 162 \n", + "U. de G. ... -3 19 17 4 4 9 11 20 -9 16 \n", + "UANL ... 110 240 127 47 42 38 153 123 30 183 \n", + "Veracruz ... -30 129 110 16 30 64 84 212 -128 78 \n", + "\n", + "[26 rows x 25 columns]" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "final_table" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "final_table = final_table.drop(columns = ['POS'])" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "columns=[('TOTAL','JJ'),('TOTAL','JG'), ('TOTAL','JE'),('TOTAL','JP'),('TOTAL','GF'),('TOTAL','GC'),('TOTAL','Dif'),('TOTAL','PTS'),\n", + " ('LOCAL','JJ'),('LOCAL','JG'),('LOCAL','JE'),('LOCAL','JP'),('LOCAL','GF'),('LOCAL','GC'),('LOCAL','Dif'),('LOCAL','PTS'),\n", + " ('VISITANTE','JJ'),('VISITANTE','JG'),('VISITANTE','JE'),('VISITANTE','JP'),('VISITANTE','GF'),('VISITANTE','GC'),('VISITANTE','Dif'),('VISITANTE','PTS')]\n", + "\n", + "final_table.columns=pd.MultiIndex.from_tuples(columns)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Vemos que del 2012 a la fecha el equipo que ha generado mas puntos totales es el America, seguido de Tigres\n", + "### Podemos decir que el top 5 de los equipos mexicanos son del norte (MTY) y de la Ciudad de Mexico mas Toluca\n", + "\n", + "#### *Es necesario revisar el caso de los equipos con menos de 250 juegos (promediar), pues no han estado en la misma cantidad de torneos" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
TOTALLOCALVISITANTE
JJJGJEJPGFGCDifPTSJJJG...DifPTSJJJGJEJPGFGCDifPTS
Club
América255124716040627313344312872...9624412752433218815137199
UANL254114815938024014042312767...11024012747423815312330183
Toluca25411265773572906740112770...92239127423649143168-25162
Monterrey25411166773983227639912771...115254127402562158197-39145
Cruz Azul2549986693412806138312760...65217127394939157161-4166
León25410856904013386338012762...77215127462754165179-14165
Santos Laguna2549882743733334037612766...80232127324847149189-40144
Tijuana254976790326331-535812665...73228128323462131209-78130
Pachuca2549568913663313535312764...82224127313660151198-47129
PUMAS254916994332332034212753...45197127383158141186-45145
M. Morelia254897194345355-1033812750...24183127393850158192-34155
Guadalajara254768098279317-3830812640...-7160128364052140171-31148
Atlas2557872105282348-6630612843...-6168127353359138198-60138
Querétaro2548064110290348-5830412748...-6176127323263141193-52128
Puebla204556485228280-5222910236...613810219344996154-5891
Jaguares170524870212272-602048537...101368515234787157-7068
Veracruz2204960111207365-15820111033...-3012911016306484212-12878
Necaxa118404434162142201646020...2089582015237676075
Lobos6820113782123-41713412...-3423485213573-3829
Atlante6817123978130-52633410...-9403472253073-4323
Puebla F.C.501416205679-2358257...-9312576122741-1427
U. de G.34811152335-1235174...-319174491120-916
San Luis34710173349-1631173...-814174581725-817
Dorados3478193161-3029176...-2221714121341-287
Club Atlético de San Luis166282126-52081...-6585031413115
FC Juárez165291524-91784...4138116417-134
\n", + "

26 rows × 24 columns

\n", + "
" + ], + "text/plain": [ + " TOTAL LOCAL \\\n", + " JJ JG JE JP GF GC Dif PTS JJ JG \n", + "Club \n", + "América 255 124 71 60 406 273 133 443 128 72 \n", + "UANL 254 114 81 59 380 240 140 423 127 67 \n", + "Toluca 254 112 65 77 357 290 67 401 127 70 \n", + "Monterrey 254 111 66 77 398 322 76 399 127 71 \n", + "Cruz Azul 254 99 86 69 341 280 61 383 127 60 \n", + "León 254 108 56 90 401 338 63 380 127 62 \n", + "Santos Laguna 254 98 82 74 373 333 40 376 127 66 \n", + "Tijuana 254 97 67 90 326 331 -5 358 126 65 \n", + "Pachuca 254 95 68 91 366 331 35 353 127 64 \n", + "PUMAS 254 91 69 94 332 332 0 342 127 53 \n", + "M. Morelia 254 89 71 94 345 355 -10 338 127 50 \n", + "Guadalajara 254 76 80 98 279 317 -38 308 126 40 \n", + "Atlas 255 78 72 105 282 348 -66 306 128 43 \n", + "Querétaro 254 80 64 110 290 348 -58 304 127 48 \n", + "Puebla 204 55 64 85 228 280 -52 229 102 36 \n", + "Jaguares 170 52 48 70 212 272 -60 204 85 37 \n", + "Veracruz 220 49 60 111 207 365 -158 201 110 33 \n", + "Necaxa 118 40 44 34 162 142 20 164 60 20 \n", + "Lobos 68 20 11 37 82 123 -41 71 34 12 \n", + "Atlante 68 17 12 39 78 130 -52 63 34 10 \n", + "Puebla F.C. 50 14 16 20 56 79 -23 58 25 7 \n", + "U. de G. 34 8 11 15 23 35 -12 35 17 4 \n", + "San Luis 34 7 10 17 33 49 -16 31 17 3 \n", + "Dorados 34 7 8 19 31 61 -30 29 17 6 \n", + "Club Atlético de San Luis 16 6 2 8 21 26 -5 20 8 1 \n", + "FC Juárez 16 5 2 9 15 24 -9 17 8 4 \n", + "\n", + " ... VISITANTE \\\n", + " ... Dif PTS JJ JG JE JP GF GC \n", + "Club ... \n", + "América ... 96 244 127 52 43 32 188 151 \n", + "UANL ... 110 240 127 47 42 38 153 123 \n", + "Toluca ... 92 239 127 42 36 49 143 168 \n", + "Monterrey ... 115 254 127 40 25 62 158 197 \n", + "Cruz Azul ... 65 217 127 39 49 39 157 161 \n", + "León ... 77 215 127 46 27 54 165 179 \n", + "Santos Laguna ... 80 232 127 32 48 47 149 189 \n", + "Tijuana ... 73 228 128 32 34 62 131 209 \n", + "Pachuca ... 82 224 127 31 36 60 151 198 \n", + "PUMAS ... 45 197 127 38 31 58 141 186 \n", + "M. Morelia ... 24 183 127 39 38 50 158 192 \n", + "Guadalajara ... -7 160 128 36 40 52 140 171 \n", + "Atlas ... -6 168 127 35 33 59 138 198 \n", + "Querétaro ... -6 176 127 32 32 63 141 193 \n", + "Puebla ... 6 138 102 19 34 49 96 154 \n", + "Jaguares ... 10 136 85 15 23 47 87 157 \n", + "Veracruz ... -30 129 110 16 30 64 84 212 \n", + "Necaxa ... 20 89 58 20 15 23 76 76 \n", + "Lobos ... -3 42 34 8 5 21 35 73 \n", + "Atlante ... -9 40 34 7 2 25 30 73 \n", + "Puebla F.C. ... -9 31 25 7 6 12 27 41 \n", + "U. de G. ... -3 19 17 4 4 9 11 20 \n", + "San Luis ... -8 14 17 4 5 8 17 25 \n", + "Dorados ... -2 22 17 1 4 12 13 41 \n", + "Club Atlético de San Luis ... -6 5 8 5 0 3 14 13 \n", + "FC Juárez ... 4 13 8 1 1 6 4 17 \n", + "\n", + " \n", + " Dif PTS \n", + "Club \n", + "América 37 199 \n", + "UANL 30 183 \n", + "Toluca -25 162 \n", + "Monterrey -39 145 \n", + "Cruz Azul -4 166 \n", + "León -14 165 \n", + "Santos Laguna -40 144 \n", + "Tijuana -78 130 \n", + "Pachuca -47 129 \n", + "PUMAS -45 145 \n", + "M. Morelia -34 155 \n", + "Guadalajara -31 148 \n", + "Atlas -60 138 \n", + "Querétaro -52 128 \n", + "Puebla -58 91 \n", + "Jaguares -70 68 \n", + "Veracruz -128 78 \n", + "Necaxa 0 75 \n", + "Lobos -38 29 \n", + "Atlante -43 23 \n", + "Puebla F.C. -14 27 \n", + "U. de G. -9 16 \n", + "San Luis -8 17 \n", + "Dorados -28 7 \n", + "Club Atlético de San Luis 1 15 \n", + "FC Juárez -13 4 \n", + "\n", + "[26 rows x 24 columns]" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "final_sorted_by_pts = final_table.sort_values([('TOTAL', 'PTS')], ascending=False)\n", + "final_sorted_by_pts" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
TOTALLOCALVISITANTE
JJJGJEJPGFGCDifPTSJJJG...DifPTSJJJGJEJPGFGCDifPTS
Club
América255124716040627313344312872...9624412752433218815137199
UANL254114815938024014042312767...11024012747423815312330183
Toluca25411265773572906740112770...92239127423649143168-25162
Monterrey25411166773983227639912771...115254127402562158197-39145
Cruz Azul2549986693412806138312760...65217127394939157161-4166
León25410856904013386338012762...77215127462754165179-14165
Santos Laguna2549882743733334037612766...80232127324847149189-40144
Tijuana254976790326331-535812665...73228128323462131209-78130
Pachuca2549568913663313535312764...82224127313660151198-47129
PUMAS254916994332332034212753...45197127383158141186-45145
\n", + "

10 rows × 24 columns

\n", + "
" + ], + "text/plain": [ + " TOTAL LOCAL ... \\\n", + " JJ JG JE JP GF GC Dif PTS JJ JG ... Dif PTS \n", + "Club ... \n", + "América 255 124 71 60 406 273 133 443 128 72 ... 96 244 \n", + "UANL 254 114 81 59 380 240 140 423 127 67 ... 110 240 \n", + "Toluca 254 112 65 77 357 290 67 401 127 70 ... 92 239 \n", + "Monterrey 254 111 66 77 398 322 76 399 127 71 ... 115 254 \n", + "Cruz Azul 254 99 86 69 341 280 61 383 127 60 ... 65 217 \n", + "León 254 108 56 90 401 338 63 380 127 62 ... 77 215 \n", + "Santos Laguna 254 98 82 74 373 333 40 376 127 66 ... 80 232 \n", + "Tijuana 254 97 67 90 326 331 -5 358 126 65 ... 73 228 \n", + "Pachuca 254 95 68 91 366 331 35 353 127 64 ... 82 224 \n", + "PUMAS 254 91 69 94 332 332 0 342 127 53 ... 45 197 \n", + "\n", + " VISITANTE \n", + " JJ JG JE JP GF GC Dif PTS \n", + "Club \n", + "América 127 52 43 32 188 151 37 199 \n", + "UANL 127 47 42 38 153 123 30 183 \n", + "Toluca 127 42 36 49 143 168 -25 162 \n", + "Monterrey 127 40 25 62 158 197 -39 145 \n", + "Cruz Azul 127 39 49 39 157 161 -4 166 \n", + "León 127 46 27 54 165 179 -14 165 \n", + "Santos Laguna 127 32 48 47 149 189 -40 144 \n", + "Tijuana 128 32 34 62 131 209 -78 130 \n", + "Pachuca 127 31 36 60 151 198 -47 129 \n", + "PUMAS 127 38 31 58 141 186 -45 145 \n", + "\n", + "[10 rows x 24 columns]" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "top_ten = final_sorted_by_pts[:10]\n", + "top_ten" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Los Mejores 10\n", + "\n", + "#### Revisando el top 10 en resultados generales, vemos que el America es quien mas goles a favor tiene sin embargo tigres es la mejor defensiva y mejor diferencia de goles vemos el caso de Leon por ejemplo, quien es el segundo mejor goleador pero es 6 lugar general y tiene considerables goles en contra\n", + "#### Finalmente vemos el caso de Tijuana quien a pesar de tener dif de goles en contra, se ubica mejor que pachuca quien tiene 40 goles mas a favor" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
JJJGJEJPGFGCDifPTS
Club
América2551247160406273133443
UANL2541148159380240140423
Toluca254112657735729067401
Monterrey254111667739832276399
Cruz Azul25499866934128061383
León254108569040133863380
Santos Laguna25498827437333340376
Tijuana254976790326331-5358
Pachuca25495689136633135353
PUMAS2549169943323320342
\n", + "
" + ], + "text/plain": [ + " JJ JG JE JP GF GC Dif PTS\n", + "Club \n", + "América 255 124 71 60 406 273 133 443\n", + "UANL 254 114 81 59 380 240 140 423\n", + "Toluca 254 112 65 77 357 290 67 401\n", + "Monterrey 254 111 66 77 398 322 76 399\n", + "Cruz Azul 254 99 86 69 341 280 61 383\n", + "León 254 108 56 90 401 338 63 380\n", + "Santos Laguna 254 98 82 74 373 333 40 376\n", + "Tijuana 254 97 67 90 326 331 -5 358\n", + "Pachuca 254 95 68 91 366 331 35 353\n", + "PUMAS 254 91 69 94 332 332 0 342" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "top_total = final_sorted_by_pts.sort_values([('TOTAL', 'PTS')], ascending=False)\n", + "top_ten_total = top_total[:10]\n", + "top_ten_total['TOTAL']" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Los Mejores 10 Locales\n", + "\n", + "#### Podemos ver que el mejor jugador de local es Rayados y mejor goleador \n", + "#### El America es el segundo mejor jugadando de local\n", + "#### Tigres es tercero y tiene la mejor defensiva jugando de local y es segundo mejor goleador\n", + "#### Por lo que los equipos de MTY jugando de local tienen la mejor ofensiva y defensiva" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "top_local = final_sorted_by_pts.sort_values([('LOCAL', 'PTS')], ascending=False)\n", + "top_local_ten = top_local[:10]" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
JJJGJEJPGFGCDifPTS
Club
Monterrey127714115240125115254
América12872282821812296244
UANL127673921227117110240
Toluca12770292821412292239
Santos Laguna12766342722414480232
Tijuana12665332819512273228
Pachuca12764323121513382224
Cruz Azul12760373018411965217
León12762293623615977215
PUMAS12753383619114645197
\n", + "
" + ], + "text/plain": [ + " JJ JG JE JP GF GC Dif PTS\n", + "Club \n", + "Monterrey 127 71 41 15 240 125 115 254\n", + "América 128 72 28 28 218 122 96 244\n", + "UANL 127 67 39 21 227 117 110 240\n", + "Toluca 127 70 29 28 214 122 92 239\n", + "Santos Laguna 127 66 34 27 224 144 80 232\n", + "Tijuana 126 65 33 28 195 122 73 228\n", + "Pachuca 127 64 32 31 215 133 82 224\n", + "Cruz Azul 127 60 37 30 184 119 65 217\n", + "León 127 62 29 36 236 159 77 215\n", + "PUMAS 127 53 38 36 191 146 45 197" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "top_local_ten['LOCAL']" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Los Mejores 10 Visitantes\n", + "#### Como visitantes America es el mejor, seguido de Tigres\n", + "#### Tigres es el mejor defensivo de visitante\n", + "#### Tanto Tigres como America son los unicos quienes mantienen goles a favor jugando de visitante\n", + "#### Podemos decir que generalmente quien juega de local hace mas goles excepto cuando el rival es Tigres o America\n", + "#### Ademas son los unicos que equipos que tienen mas ganes que empates o derrotas como visitantes" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [], + "source": [ + "top_vis = final_sorted_by_pts.sort_values([('VISITANTE', 'PTS')], ascending=False)\n", + "top_vis_ten = top_vis[:10]" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
JJJGJEJPGFGCDifPTS
Club
América12752433218815137199
UANL12747423815312330183
Cruz Azul127394939157161-4166
León127462754165179-14165
Toluca127423649143168-25162
M. Morelia127393850158192-34155
Guadalajara128364052140171-31148
Monterrey127402562158197-39145
PUMAS127383158141186-45145
Santos Laguna127324847149189-40144
\n", + "
" + ], + "text/plain": [ + " JJ JG JE JP GF GC Dif PTS\n", + "Club \n", + "América 127 52 43 32 188 151 37 199\n", + "UANL 127 47 42 38 153 123 30 183\n", + "Cruz Azul 127 39 49 39 157 161 -4 166\n", + "León 127 46 27 54 165 179 -14 165\n", + "Toluca 127 42 36 49 143 168 -25 162\n", + "M. Morelia 127 39 38 50 158 192 -34 155\n", + "Guadalajara 128 36 40 52 140 171 -31 148\n", + "Monterrey 127 40 25 62 158 197 -39 145\n", + "PUMAS 127 38 31 58 141 186 -45 145\n", + "Santos Laguna 127 32 48 47 149 189 -40 144" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "top_vis_ten\n", + "top_vis_ten['VISITANTE']" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "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.7.3" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/your-code/ligamx_equipos_valor.ipynb b/your-code/ligamx_equipos_valor.ipynb new file mode 100644 index 0000000..76c9bb1 --- /dev/null +++ b/your-code/ligamx_equipos_valor.ipynb @@ -0,0 +1,2759 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import requests as r\n", + "import pandas as pd\n", + "import numpy as np\n", + "\n", + "url = \"https://www.transfermarkt.com/liga-mx-apertura/startseite/wettbewerb/MEXA/plus/?saison_id=2010\"\n", + "\n", + "header = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36'}\n", + "\n", + "response = r.get(url, headers=header)" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "cont = r.get(url, headers = header).text\n", + "t = pd.read_html(cont, attrs = {'class': 'items'})[0]" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "t.drop(columns=['Club', 'Club.1', 'Players playing abroad', 'name.1', 'Total MV', 'ø MV'], inplace= True)\n", + "t.rename({'name':'Club', 'Squad':'Edad Promedio Jugador', 'ø age':'Jugadores Extranjeros', 'Total market value':'Valor Promedio de Jugador(€)', 'ø market value':'Valor Equipo(€)'}, axis = 1, inplace = True)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "t.index = np.arange(1,len(t)+1)\n", + "df_list = []" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Temporada 2012 Done!\n", + "Temporada 2013 Done!\n", + "Temporada 2014 Done!\n", + "Temporada 2015 Done!\n", + "Temporada 2016 Done!\n", + "Temporada 2017 Done!\n", + "Temporada 2018 Done!\n", + "Temporada 2019 Done!\n" + ] + } + ], + "source": [ + "for i in range(12, 20):\n", + " cont = r.get(f\"https://www.transfermarkt.com/liga-mx-apertura/startseite/wettbewerb/MEXA/plus/?saison_id=20{i}\", headers = header).content\n", + " t = pd.read_html(cont, attrs = {'class': 'items'})[0]\n", + " t.drop(columns=['Club', 'Club.1', 'Players playing abroad', 'name.1', 'Total MV', 'ø MV'], inplace= True)\n", + " t.rename({'name':'Club', 'Squad':'Edad Promedio Jugador', 'ø age':'Jugadores Extranjeros', 'Total market value':'Valor Promedio de Jugador(€)', 'ø market value':'Valor Equipo(€)'}, axis = 1, inplace = True)\n", + " t.index = np.arange(1,len(t)+1)\n", + " df_list.append(t)\n", + " print(f'Temporada 20{i} Done!')" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[+] Excel Generado!\n" + ] + } + ], + "source": [ + "with pd.ExcelWriter('Valores_Equipos_LigaMX.xlsx') as writer:\n", + " temp = 2012\n", + " for df in df_list:\n", + " df.to_excel(writer, sheet_name=f'Temp {temp}')\n", + " temp += 1\n", + " \n", + "print(\"[+] Excel Generado!\")" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[ Club Edad Promedio Jugador Jugadores Extranjeros \\\n", + " 1 Tigres UANL 249 9 \n", + " 2 CF Pachuca 240 12 \n", + " 3 Monterrey 244 6 \n", + " 4 América 234 8 \n", + " 5 CD Cruz Azul 241 5 \n", + " 6 Chivas 225 0 \n", + " 7 Morelia 247 7 \n", + " 8 Santos Laguna 246 9 \n", + " 9 San Luis 254 10 \n", + " 10 UNAM Pumas 232 7 \n", + " 11 Toluca 256 5 \n", + " 12 Jaguares 232 7 \n", + " 13 Atlas 241 8 \n", + " 14 Querétaro FC 249 11 \n", + " 15 Puebla FC 260 9 \n", + " 16 Atlante 246 9 \n", + " 17 Club Tijuana 255 11 \n", + " 18 León 244 7 \n", + " 19 NaN 0 0 \n", + " \n", + " Valor Promedio de Jugador(€) Valor Equipo(€) \n", + " 1 1,31 mil. € 44,40 mil. € \n", + " 2 969 K € 43,63 mil. € \n", + " 3 1,31 mil. € 40,75 mil. € \n", + " 4 957 K € 39,25 mil. € \n", + " 5 951 K € 37,10 mil. € \n", + " 6 888 K € 34,65 mil. € \n", + " 7 856 K € 34,25 mil. € \n", + " 8 1,09 mil. € 33,65 mil. € \n", + " 9 606 K € 30,30 mil. € \n", + " 10 684 K € 30,10 mil. € \n", + " 11 993 K € 29,80 mil. € \n", + " 12 658 K € 28,30 mil. € \n", + " 13 548 K € 26,30 mil. € \n", + " 14 435 K € 25,25 mil. € \n", + " 15 583 K € 24,50 mil. € \n", + " 16 510 K € 23,95 mil. € \n", + " 17 614 K € 22,70 mil. € \n", + " 18 575 K € 21,85 mil. € \n", + " 19 - - ,\n", + " Club Edad Promedio Jugador Jugadores Extranjeros \\\n", + " 1 Tigres UANL 266 9 \n", + " 2 América 246 10 \n", + " 3 Monterrey 244 11 \n", + " 4 Morelia 267 11 \n", + " 5 CD Cruz Azul 260 9 \n", + " 6 Chivas 239 1 \n", + " 7 CF Pachuca 242 11 \n", + " 8 UNAM Pumas 255 10 \n", + " 9 Santos Laguna 236 8 \n", + " 10 Atlas 246 8 \n", + " 11 Querétaro FC 262 13 \n", + " 12 Atlante 264 11 \n", + " 13 Puebla FC 259 9 \n", + " 14 Toluca 263 6 \n", + " 15 Club Tijuana 258 17 \n", + " 16 Chiapas FC 258 8 \n", + " 17 León 248 8 \n", + " 18 Tiburones Rojos 259 8 \n", + " 19 NaN 0 0 \n", + " \n", + " Valor Promedio de Jugador(€) Valor Equipo(€) \n", + " 1 1,29 mil. € 54,05 mil. € \n", + " 2 879 K € 49,20 mil. € \n", + " 3 1,04 mil. € 48,90 mil. € \n", + " 4 870 K € 48,70 mil. € \n", + " 5 1,06 mil. € 46,65 mil. € \n", + " 6 834 K € 45,05 mil. € \n", + " 7 712 K € 37,73 mil. € \n", + " 8 931 K € 36,30 mil. € \n", + " 9 839 K € 33,55 mil. € \n", + " 10 608 K € 33,45 mil. € \n", + " 11 574 K € 32,70 mil. € \n", + " 12 661 K € 31,72 mil. € \n", + " 13 596 K € 31,00 mil. € \n", + " 14 909 K € 30,90 mil. € \n", + " 15 693 K € 29,80 mil. € \n", + " 16 634 K € 27,25 mil. € \n", + " 17 685 K € 26,70 mil. € \n", + " 18 485 K € 17,45 mil. € \n", + " 19 - - ,\n", + " Club Edad Promedio Jugador Jugadores Extranjeros \\\n", + " 1 América 241 13 \n", + " 2 Tigres UANL 244 12 \n", + " 3 Chivas 250 0 \n", + " 4 Monterrey 239 12 \n", + " 5 CD Cruz Azul 273 9 \n", + " 6 Santos Laguna 237 9 \n", + " 7 Toluca 243 6 \n", + " 8 Atlas 259 11 \n", + " 9 Chiapas FC 256 12 \n", + " 10 Puebla FC 268 11 \n", + " 11 León 251 10 \n", + " 12 CF Pachuca 241 11 \n", + " 13 Tiburones Rojos 257 11 \n", + " 14 UNAM Pumas 240 11 \n", + " 15 Querétaro FC 258 12 \n", + " 16 Morelia 240 10 \n", + " 17 Club Tijuana 233 18 \n", + " 18 Leones Negros 252 9 \n", + " 19 NaN 0 0 \n", + " \n", + " Valor Promedio de Jugador(€) Valor Equipo(€) \n", + " 1 1,08 mil. € 45,15 mil. € \n", + " 2 938 K € 45,00 mil. € \n", + " 3 995 K € 38,80 mil. € \n", + " 4 1,07 mil. € 38,60 mil. € \n", + " 5 1,19 mil. € 38,08 mil. € \n", + " 6 968 K € 35,80 mil. € \n", + " 7 786 K € 31,45 mil. € \n", + " 8 746 K € 31,35 mil. € \n", + " 9 680 K € 31,30 mil. € \n", + " 10 736 K € 30,90 mil. € \n", + " 11 859 K € 30,08 mil. € \n", + " 12 822 K € 29,60 mil. € \n", + " 13 626 K € 28,15 mil. € \n", + " 14 552 K € 25,93 mil. € \n", + " 15 610 K € 25,60 mil. € \n", + " 16 543 K € 24,98 mil. € \n", + " 17 568 K € 22,70 mil. € \n", + " 18 465 K € 21,40 mil. € \n", + " 19 - - ,\n", + " Club Edad Promedio Jugador Jugadores Extranjeros \\\n", + " 1 Tigres UANL 257 13 \n", + " 2 Monterrey 245 11 \n", + " 3 CD Cruz Azul 261 13 \n", + " 4 León 244 11 \n", + " 5 CF Pachuca 229 16 \n", + " 6 Atlas 241 14 \n", + " 7 América 251 12 \n", + " 8 Morelia 250 13 \n", + " 9 Santos Laguna 233 8 \n", + " 10 Chivas 245 0 \n", + " 11 Dorados de Sin. 259 16 \n", + " 12 Puebla FC 262 11 \n", + " 13 Chiapas FC 237 12 \n", + " 14 Tiburones Rojos 250 11 \n", + " 15 Querétaro FC 254 13 \n", + " 16 Club Tijuana 239 24 \n", + " 17 UNAM Pumas 238 11 \n", + " 18 Toluca 251 7 \n", + " 19 NaN 0 0 \n", + " \n", + " Valor Promedio de Jugador(€) Valor Equipo(€) \n", + " 1 1,29 mil. € 52,75 mil. € \n", + " 2 1,18 mil. € 47,35 mil. € \n", + " 3 1,09 mil. € 44,65 mil. € \n", + " 4 910 K € 38,20 mil. € \n", + " 5 719 K € 36,65 mil. € \n", + " 6 600 K € 35,98 mil. € \n", + " 7 1,02 mil. € 35,53 mil. € \n", + " 8 679 K € 33,95 mil. € \n", + " 9 1,02 mil. € 32,70 mil. € \n", + " 10 1,05 mil. € 32,60 mil. € \n", + " 11 622 K € 32,33 mil. € \n", + " 12 655 K € 30,15 mil. € \n", + " 13 577 K € 29,45 mil. € \n", + " 14 669 K € 29,43 mil. € \n", + " 15 816 K € 28,55 mil. € \n", + " 16 614 K € 28,25 mil. € \n", + " 17 605 K € 26,00 mil. € \n", + " 18 671 K € 25,50 mil. € \n", + " 19 - - ,\n", + " Club Edad Promedio Jugador Jugadores Extranjeros \\\n", + " 1 Tigres UANL 257 19 \n", + " 2 Monterrey 253 17 \n", + " 3 Santos Laguna 247 16 \n", + " 4 Tiburones Rojos 267 25 \n", + " 5 América 253 16 \n", + " 6 CD Cruz Azul 273 19 \n", + " 7 León 257 15 \n", + " 8 Club Tijuana 259 24 \n", + " 9 Chiapas FC 278 27 \n", + " 10 Toluca 272 13 \n", + " 11 CF Pachuca 230 15 \n", + " 12 Morelia 270 15 \n", + " 13 Chivas 246 0 \n", + " 14 UNAM Pumas 252 11 \n", + " 15 Querétaro FC 261 13 \n", + " 16 Atlas 245 10 \n", + " 17 Puebla FC 281 18 \n", + " 18 Necaxa 280 15 \n", + " 19 NaN 0 0 \n", + " \n", + " Valor Promedio de Jugador(€) Valor Equipo(€) \n", + " 1 1,58 mil. € 69,58 mil. € \n", + " 2 1,38 mil. € 66,00 mil. € \n", + " 3 1,23 mil. € 51,83 mil. € \n", + " 4 866 K € 49,35 mil. € \n", + " 5 1,18 mil. € 48,18 mil. € \n", + " 6 1,16 mil. € 46,20 mil. € \n", + " 7 1,15 mil. € 45,85 mil. € \n", + " 8 1,09 mil. € 44,55 mil. € \n", + " 9 872 K € 44,48 mil. € \n", + " 10 1,05 mil. € 43,13 mil. € \n", + " 11 786 K € 40,85 mil. € \n", + " 12 873 K € 38,40 mil. € \n", + " 13 1,35 mil. € 37,92 mil. € \n", + " 14 907 K € 37,18 mil. € \n", + " 15 905 K € 33,50 mil. € \n", + " 16 682 K € 28,65 mil. € \n", + " 17 753 K € 27,85 mil. € \n", + " 18 709 K € 21,98 mil. € \n", + " 19 - - ,\n", + " Club Edad Promedio Jugador Jugadores Extranjeros \\\n", + " 1 Tigres UANL 255 13 \n", + " 2 Monterrey 246 16 \n", + " 3 Club Tijuana 257 23 \n", + " 4 Santos Laguna 244 14 \n", + " 5 América 243 16 \n", + " 6 CF Pachuca 232 16 \n", + " 7 CD Cruz Azul 259 12 \n", + " 8 Chivas 230 0 \n", + " 9 León 252 19 \n", + " 10 Necaxa 250 18 \n", + " 11 UNAM Pumas 238 10 \n", + " 12 Toluca 253 16 \n", + " 13 Tiburones Rojos 261 21 \n", + " 14 Querétaro FC 259 14 \n", + " 15 Puebla FC 267 19 \n", + " 16 Atlas 234 15 \n", + " 17 Morelia 254 13 \n", + " 18 Lobos 260 13 \n", + " 19 NaN 0 0 \n", + " \n", + " Valor Promedio de Jugador(€) Valor Equipo(€) \n", + " 1 1,98 mil. € 75,10 mil. € \n", + " 2 1,37 mil. € 60,40 mil. € \n", + " 3 1,21 mil. € 50,90 mil. € \n", + " 4 1,14 mil. € 42,25 mil. € \n", + " 5 1,17 mil. € 42,08 mil. € \n", + " 6 909 K € 40,93 mil. € \n", + " 7 1,13 mil. € 36,15 mil. € \n", + " 8 950 K € 36,10 mil. € \n", + " 9 868 K € 35,60 mil. € \n", + " 10 698 K € 34,23 mil. € \n", + " 11 782 K € 32,83 mil. € \n", + " 12 780 K € 32,78 mil. € \n", + " 13 622 K € 31,10 mil. € \n", + " 14 772 K € 30,10 mil. € \n", + " 15 632 K € 29,05 mil. € \n", + " 16 588 K € 27,65 mil. € \n", + " 17 618 K € 23,50 mil. € \n", + " 18 414 K € 18,23 mil. € \n", + " 19 - - ,\n", + " Club Edad Promedio Jugador Jugadores Extranjeros \\\n", + " 1 Tigres UANL 252 20 \n", + " 2 Monterrey 237 14 \n", + " 3 CF Pachuca 248 18 \n", + " 4 CD Cruz Azul 264 13 \n", + " 5 América 231 14 \n", + " 6 Santos Laguna 241 14 \n", + " 7 Chivas 235 0 \n", + " 8 Toluca 260 16 \n", + " 9 León 248 20 \n", + " 10 Club Tijuana 243 22 \n", + " 11 Atlas 237 18 \n", + " 12 UNAM Pumas 236 10 \n", + " 13 Querétaro FC 244 16 \n", + " 14 Necaxa 236 16 \n", + " 15 Puebla FC 252 16 \n", + " 16 Morelia 247 12 \n", + " 17 Tiburones Rojos 252 18 \n", + " 18 Lobos 249 14 \n", + " 19 NaN 0 0 \n", + " \n", + " Valor Promedio de Jugador(€) Valor Equipo(€) \n", + " 1 1,86 mil. € 83,60 mil. € \n", + " 2 1,71 mil. € 70,30 mil. € \n", + " 3 1,32 mil. € 59,50 mil. € \n", + " 4 1,51 mil. € 59,00 mil. € \n", + " 5 1,15 mil. € 50,65 mil. € \n", + " 6 1,20 mil. € 46,85 mil. € \n", + " 7 847 K € 45,73 mil. € \n", + " 8 1,01 mil. € 42,35 mil. € \n", + " 9 895 K € 42,08 mil. € \n", + " 10 839 K € 38,58 mil. € \n", + " 11 638 K € 33,18 mil. € \n", + " 12 826 K € 32,20 mil. € \n", + " 13 728 K € 32,05 mil. € \n", + " 14 552 K € 30,93 mil. € \n", + " 15 521 K € 26,55 mil. € \n", + " 16 656 K € 23,60 mil. € \n", + " 17 443 K € 23,50 mil. € \n", + " 18 475 K € 17,58 mil. € \n", + " 19 - - ,\n", + " Club Edad Promedio Jugador Jugadores Extranjeros \\\n", + " 1 Monterrey 274 12 \n", + " 2 Tigres UANL 272 10 \n", + " 3 CD Cruz Azul 266 11 \n", + " 4 América 259 11 \n", + " 5 CF Pachuca 268 10 \n", + " 6 Santos Laguna 258 9 \n", + " 7 León 270 12 \n", + " 8 Chivas 261 0 \n", + " 9 UNAM Pumas 258 7 \n", + " 10 Club Tijuana 258 12 \n", + " 11 Querétaro FC 264 10 \n", + " 12 Atlas 261 12 \n", + " 13 Morelia 263 13 \n", + " 14 Toluca 282 11 \n", + " 15 Necaxa 256 12 \n", + " 16 Puebla FC 287 11 \n", + " 17 San Luis 267 12 \n", + " 18 FC Juárez 279 12 \n", + " 19 Tiburones Rojos 296 12 \n", + " 20 NaN 510 26,8 Years \n", + " \n", + " Valor Promedio de Jugador(€) Valor Equipo(€) \n", + " 1 3,36 mil. € 84,10 mil. € \n", + " 2 2,77 mil. € 74,90 mil. € \n", + " 3 2,31 mil. € 64,70 mil. € \n", + " 4 2,72 mil. € 62,55 mil. € \n", + " 5 1,98 mil. € 47,40 mil. € \n", + " 6 1,86 mil. € 46,50 mil. € \n", + " 7 1,61 mil. € 43,50 mil. € \n", + " 8 1,55 mil. € 41,80 mil. € \n", + " 9 1,43 mil. € 35,80 mil. € \n", + " 10 1,11 mil. € 34,30 mil. € \n", + " 11 1,12 mil. € 32,60 mil. € \n", + " 12 1,22 mil. € 31,70 mil. € \n", + " 13 1,00 mil. € 29,00 mil. € \n", + " 14 1,22 mil. € 28,00 mil. € \n", + " 15 1,02 mil. € 27,60 mil. € \n", + " 16 854 K € 23,90 mil. € \n", + " 17 830 K € 23,25 mil. € \n", + " 18 697 K € 20,20 mil. € \n", + " 19 600 K € 17,40 mil. € \n", + " 20 769,20 mil. € 1,51 mil. € ]" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_list" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "def sum_dfs(df_list):\n", + " tables = []\n", + " for table in df_list:\n", + " table.sort_values('Club', inplace = True)\n", + " tables.append(table) \n", + " return tables" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[ Club Edad Promedio Jugador Jugadores Extranjeros \\\n", + " 4 América 234 8 \n", + " 16 Atlante 246 9 \n", + " 13 Atlas 241 8 \n", + " 5 CD Cruz Azul 241 5 \n", + " 2 CF Pachuca 240 12 \n", + " 6 Chivas 225 0 \n", + " 17 Club Tijuana 255 11 \n", + " 12 Jaguares 232 7 \n", + " 18 León 244 7 \n", + " 3 Monterrey 244 6 \n", + " 7 Morelia 247 7 \n", + " 15 Puebla FC 260 9 \n", + " 14 Querétaro FC 249 11 \n", + " 9 San Luis 254 10 \n", + " 8 Santos Laguna 246 9 \n", + " 1 Tigres UANL 249 9 \n", + " 11 Toluca 256 5 \n", + " 10 UNAM Pumas 232 7 \n", + " 19 NaN 0 0 \n", + " \n", + " Valor Promedio de Jugador(€) Valor Equipo(€) \n", + " 4 957 K € 39,25 mil. € \n", + " 16 510 K € 23,95 mil. € \n", + " 13 548 K € 26,30 mil. € \n", + " 5 951 K € 37,10 mil. € \n", + " 2 969 K € 43,63 mil. € \n", + " 6 888 K € 34,65 mil. € \n", + " 17 614 K € 22,70 mil. € \n", + " 12 658 K € 28,30 mil. € \n", + " 18 575 K € 21,85 mil. € \n", + " 3 1,31 mil. € 40,75 mil. € \n", + " 7 856 K € 34,25 mil. € \n", + " 15 583 K € 24,50 mil. € \n", + " 14 435 K € 25,25 mil. € \n", + " 9 606 K € 30,30 mil. € \n", + " 8 1,09 mil. € 33,65 mil. € \n", + " 1 1,31 mil. € 44,40 mil. € \n", + " 11 993 K € 29,80 mil. € \n", + " 10 684 K € 30,10 mil. € \n", + " 19 - - ,\n", + " Club Edad Promedio Jugador Jugadores Extranjeros \\\n", + " 2 América 246 10 \n", + " 12 Atlante 264 11 \n", + " 10 Atlas 246 8 \n", + " 5 CD Cruz Azul 260 9 \n", + " 7 CF Pachuca 242 11 \n", + " 16 Chiapas FC 258 8 \n", + " 6 Chivas 239 1 \n", + " 15 Club Tijuana 258 17 \n", + " 17 León 248 8 \n", + " 3 Monterrey 244 11 \n", + " 4 Morelia 267 11 \n", + " 13 Puebla FC 259 9 \n", + " 11 Querétaro FC 262 13 \n", + " 9 Santos Laguna 236 8 \n", + " 18 Tiburones Rojos 259 8 \n", + " 1 Tigres UANL 266 9 \n", + " 14 Toluca 263 6 \n", + " 8 UNAM Pumas 255 10 \n", + " 19 NaN 0 0 \n", + " \n", + " Valor Promedio de Jugador(€) Valor Equipo(€) \n", + " 2 879 K € 49,20 mil. € \n", + " 12 661 K € 31,72 mil. € \n", + " 10 608 K € 33,45 mil. € \n", + " 5 1,06 mil. € 46,65 mil. € \n", + " 7 712 K € 37,73 mil. € \n", + " 16 634 K € 27,25 mil. € \n", + " 6 834 K € 45,05 mil. € \n", + " 15 693 K € 29,80 mil. € \n", + " 17 685 K € 26,70 mil. € \n", + " 3 1,04 mil. € 48,90 mil. € \n", + " 4 870 K € 48,70 mil. € \n", + " 13 596 K € 31,00 mil. € \n", + " 11 574 K € 32,70 mil. € \n", + " 9 839 K € 33,55 mil. € \n", + " 18 485 K € 17,45 mil. € \n", + " 1 1,29 mil. € 54,05 mil. € \n", + " 14 909 K € 30,90 mil. € \n", + " 8 931 K € 36,30 mil. € \n", + " 19 - - ,\n", + " Club Edad Promedio Jugador Jugadores Extranjeros \\\n", + " 1 América 241 13 \n", + " 8 Atlas 259 11 \n", + " 5 CD Cruz Azul 273 9 \n", + " 12 CF Pachuca 241 11 \n", + " 9 Chiapas FC 256 12 \n", + " 3 Chivas 250 0 \n", + " 17 Club Tijuana 233 18 \n", + " 18 Leones Negros 252 9 \n", + " 11 León 251 10 \n", + " 4 Monterrey 239 12 \n", + " 16 Morelia 240 10 \n", + " 10 Puebla FC 268 11 \n", + " 15 Querétaro FC 258 12 \n", + " 6 Santos Laguna 237 9 \n", + " 13 Tiburones Rojos 257 11 \n", + " 2 Tigres UANL 244 12 \n", + " 7 Toluca 243 6 \n", + " 14 UNAM Pumas 240 11 \n", + " 19 NaN 0 0 \n", + " \n", + " Valor Promedio de Jugador(€) Valor Equipo(€) \n", + " 1 1,08 mil. € 45,15 mil. € \n", + " 8 746 K € 31,35 mil. € \n", + " 5 1,19 mil. € 38,08 mil. € \n", + " 12 822 K € 29,60 mil. € \n", + " 9 680 K € 31,30 mil. € \n", + " 3 995 K € 38,80 mil. € \n", + " 17 568 K € 22,70 mil. € \n", + " 18 465 K € 21,40 mil. € \n", + " 11 859 K € 30,08 mil. € \n", + " 4 1,07 mil. € 38,60 mil. € \n", + " 16 543 K € 24,98 mil. € \n", + " 10 736 K € 30,90 mil. € \n", + " 15 610 K € 25,60 mil. € \n", + " 6 968 K € 35,80 mil. € \n", + " 13 626 K € 28,15 mil. € \n", + " 2 938 K € 45,00 mil. € \n", + " 7 786 K € 31,45 mil. € \n", + " 14 552 K € 25,93 mil. € \n", + " 19 - - ,\n", + " Club Edad Promedio Jugador Jugadores Extranjeros \\\n", + " 7 América 251 12 \n", + " 6 Atlas 241 14 \n", + " 3 CD Cruz Azul 261 13 \n", + " 5 CF Pachuca 229 16 \n", + " 13 Chiapas FC 237 12 \n", + " 10 Chivas 245 0 \n", + " 16 Club Tijuana 239 24 \n", + " 11 Dorados de Sin. 259 16 \n", + " 4 León 244 11 \n", + " 2 Monterrey 245 11 \n", + " 8 Morelia 250 13 \n", + " 12 Puebla FC 262 11 \n", + " 15 Querétaro FC 254 13 \n", + " 9 Santos Laguna 233 8 \n", + " 14 Tiburones Rojos 250 11 \n", + " 1 Tigres UANL 257 13 \n", + " 18 Toluca 251 7 \n", + " 17 UNAM Pumas 238 11 \n", + " 19 NaN 0 0 \n", + " \n", + " Valor Promedio de Jugador(€) Valor Equipo(€) \n", + " 7 1,02 mil. € 35,53 mil. € \n", + " 6 600 K € 35,98 mil. € \n", + " 3 1,09 mil. € 44,65 mil. € \n", + " 5 719 K € 36,65 mil. € \n", + " 13 577 K € 29,45 mil. € \n", + " 10 1,05 mil. € 32,60 mil. € \n", + " 16 614 K € 28,25 mil. € \n", + " 11 622 K € 32,33 mil. € \n", + " 4 910 K € 38,20 mil. € \n", + " 2 1,18 mil. € 47,35 mil. € \n", + " 8 679 K € 33,95 mil. € \n", + " 12 655 K € 30,15 mil. € \n", + " 15 816 K € 28,55 mil. € \n", + " 9 1,02 mil. € 32,70 mil. € \n", + " 14 669 K € 29,43 mil. € \n", + " 1 1,29 mil. € 52,75 mil. € \n", + " 18 671 K € 25,50 mil. € \n", + " 17 605 K € 26,00 mil. € \n", + " 19 - - ,\n", + " Club Edad Promedio Jugador Jugadores Extranjeros \\\n", + " 5 América 253 16 \n", + " 16 Atlas 245 10 \n", + " 6 CD Cruz Azul 273 19 \n", + " 11 CF Pachuca 230 15 \n", + " 9 Chiapas FC 278 27 \n", + " 13 Chivas 246 0 \n", + " 8 Club Tijuana 259 24 \n", + " 7 León 257 15 \n", + " 2 Monterrey 253 17 \n", + " 12 Morelia 270 15 \n", + " 18 Necaxa 280 15 \n", + " 17 Puebla FC 281 18 \n", + " 15 Querétaro FC 261 13 \n", + " 3 Santos Laguna 247 16 \n", + " 4 Tiburones Rojos 267 25 \n", + " 1 Tigres UANL 257 19 \n", + " 10 Toluca 272 13 \n", + " 14 UNAM Pumas 252 11 \n", + " 19 NaN 0 0 \n", + " \n", + " Valor Promedio de Jugador(€) Valor Equipo(€) \n", + " 5 1,18 mil. € 48,18 mil. € \n", + " 16 682 K € 28,65 mil. € \n", + " 6 1,16 mil. € 46,20 mil. € \n", + " 11 786 K € 40,85 mil. € \n", + " 9 872 K € 44,48 mil. € \n", + " 13 1,35 mil. € 37,92 mil. € \n", + " 8 1,09 mil. € 44,55 mil. € \n", + " 7 1,15 mil. € 45,85 mil. € \n", + " 2 1,38 mil. € 66,00 mil. € \n", + " 12 873 K € 38,40 mil. € \n", + " 18 709 K € 21,98 mil. € \n", + " 17 753 K € 27,85 mil. € \n", + " 15 905 K € 33,50 mil. € \n", + " 3 1,23 mil. € 51,83 mil. € \n", + " 4 866 K € 49,35 mil. € \n", + " 1 1,58 mil. € 69,58 mil. € \n", + " 10 1,05 mil. € 43,13 mil. € \n", + " 14 907 K € 37,18 mil. € \n", + " 19 - - ,\n", + " Club Edad Promedio Jugador Jugadores Extranjeros \\\n", + " 5 América 243 16 \n", + " 16 Atlas 234 15 \n", + " 7 CD Cruz Azul 259 12 \n", + " 6 CF Pachuca 232 16 \n", + " 8 Chivas 230 0 \n", + " 3 Club Tijuana 257 23 \n", + " 9 León 252 19 \n", + " 18 Lobos 260 13 \n", + " 2 Monterrey 246 16 \n", + " 17 Morelia 254 13 \n", + " 10 Necaxa 250 18 \n", + " 15 Puebla FC 267 19 \n", + " 14 Querétaro FC 259 14 \n", + " 4 Santos Laguna 244 14 \n", + " 13 Tiburones Rojos 261 21 \n", + " 1 Tigres UANL 255 13 \n", + " 12 Toluca 253 16 \n", + " 11 UNAM Pumas 238 10 \n", + " 19 NaN 0 0 \n", + " \n", + " Valor Promedio de Jugador(€) Valor Equipo(€) \n", + " 5 1,17 mil. € 42,08 mil. € \n", + " 16 588 K € 27,65 mil. € \n", + " 7 1,13 mil. € 36,15 mil. € \n", + " 6 909 K € 40,93 mil. € \n", + " 8 950 K € 36,10 mil. € \n", + " 3 1,21 mil. € 50,90 mil. € \n", + " 9 868 K € 35,60 mil. € \n", + " 18 414 K € 18,23 mil. € \n", + " 2 1,37 mil. € 60,40 mil. € \n", + " 17 618 K € 23,50 mil. € \n", + " 10 698 K € 34,23 mil. € \n", + " 15 632 K € 29,05 mil. € \n", + " 14 772 K € 30,10 mil. € \n", + " 4 1,14 mil. € 42,25 mil. € \n", + " 13 622 K € 31,10 mil. € \n", + " 1 1,98 mil. € 75,10 mil. € \n", + " 12 780 K € 32,78 mil. € \n", + " 11 782 K € 32,83 mil. € \n", + " 19 - - ,\n", + " Club Edad Promedio Jugador Jugadores Extranjeros \\\n", + " 5 América 231 14 \n", + " 11 Atlas 237 18 \n", + " 4 CD Cruz Azul 264 13 \n", + " 3 CF Pachuca 248 18 \n", + " 7 Chivas 235 0 \n", + " 10 Club Tijuana 243 22 \n", + " 9 León 248 20 \n", + " 18 Lobos 249 14 \n", + " 2 Monterrey 237 14 \n", + " 16 Morelia 247 12 \n", + " 14 Necaxa 236 16 \n", + " 15 Puebla FC 252 16 \n", + " 13 Querétaro FC 244 16 \n", + " 6 Santos Laguna 241 14 \n", + " 17 Tiburones Rojos 252 18 \n", + " 1 Tigres UANL 252 20 \n", + " 8 Toluca 260 16 \n", + " 12 UNAM Pumas 236 10 \n", + " 19 NaN 0 0 \n", + " \n", + " Valor Promedio de Jugador(€) Valor Equipo(€) \n", + " 5 1,15 mil. € 50,65 mil. € \n", + " 11 638 K € 33,18 mil. € \n", + " 4 1,51 mil. € 59,00 mil. € \n", + " 3 1,32 mil. € 59,50 mil. € \n", + " 7 847 K € 45,73 mil. € \n", + " 10 839 K € 38,58 mil. € \n", + " 9 895 K € 42,08 mil. € \n", + " 18 475 K € 17,58 mil. € \n", + " 2 1,71 mil. € 70,30 mil. € \n", + " 16 656 K € 23,60 mil. € \n", + " 14 552 K € 30,93 mil. € \n", + " 15 521 K € 26,55 mil. € \n", + " 13 728 K € 32,05 mil. € \n", + " 6 1,20 mil. € 46,85 mil. € \n", + " 17 443 K € 23,50 mil. € \n", + " 1 1,86 mil. € 83,60 mil. € \n", + " 8 1,01 mil. € 42,35 mil. € \n", + " 12 826 K € 32,20 mil. € \n", + " 19 - - ,\n", + " Club Edad Promedio Jugador Jugadores Extranjeros \\\n", + " 4 América 259 11 \n", + " 12 Atlas 261 12 \n", + " 3 CD Cruz Azul 266 11 \n", + " 5 CF Pachuca 268 10 \n", + " 8 Chivas 261 0 \n", + " 10 Club Tijuana 258 12 \n", + " 18 FC Juárez 279 12 \n", + " 7 León 270 12 \n", + " 1 Monterrey 274 12 \n", + " 13 Morelia 263 13 \n", + " 15 Necaxa 256 12 \n", + " 16 Puebla FC 287 11 \n", + " 11 Querétaro FC 264 10 \n", + " 17 San Luis 267 12 \n", + " 6 Santos Laguna 258 9 \n", + " 19 Tiburones Rojos 296 12 \n", + " 2 Tigres UANL 272 10 \n", + " 14 Toluca 282 11 \n", + " 9 UNAM Pumas 258 7 \n", + " 20 NaN 510 26,8 Years \n", + " \n", + " Valor Promedio de Jugador(€) Valor Equipo(€) \n", + " 4 2,72 mil. € 62,55 mil. € \n", + " 12 1,22 mil. € 31,70 mil. € \n", + " 3 2,31 mil. € 64,70 mil. € \n", + " 5 1,98 mil. € 47,40 mil. € \n", + " 8 1,55 mil. € 41,80 mil. € \n", + " 10 1,11 mil. € 34,30 mil. € \n", + " 18 697 K € 20,20 mil. € \n", + " 7 1,61 mil. € 43,50 mil. € \n", + " 1 3,36 mil. € 84,10 mil. € \n", + " 13 1,00 mil. € 29,00 mil. € \n", + " 15 1,02 mil. € 27,60 mil. € \n", + " 16 854 K € 23,90 mil. € \n", + " 11 1,12 mil. € 32,60 mil. € \n", + " 17 830 K € 23,25 mil. € \n", + " 6 1,86 mil. € 46,50 mil. € \n", + " 19 600 K € 17,40 mil. € \n", + " 2 2,77 mil. € 74,90 mil. € \n", + " 14 1,22 mil. € 28,00 mil. € \n", + " 9 1,43 mil. € 35,80 mil. € \n", + " 20 769,20 mil. € 1,51 mil. € ]" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sum_dfs(df_list)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "result = pd.concat(df_list)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ClubEdad Promedio JugadorJugadores ExtranjerosValor Promedio de Jugador(€)Valor Equipo(€)
4América2348957 K €39,25 mil. €
16Atlante2469510 K €23,95 mil. €
13Atlas2418548 K €26,30 mil. €
5CD Cruz Azul2415951 K €37,10 mil. €
2CF Pachuca24012969 K €43,63 mil. €
\n", + "
" + ], + "text/plain": [ + " Club Edad Promedio Jugador Jugadores Extranjeros \\\n", + "4 América 234 8 \n", + "16 Atlante 246 9 \n", + "13 Atlas 241 8 \n", + "5 CD Cruz Azul 241 5 \n", + "2 CF Pachuca 240 12 \n", + "\n", + " Valor Promedio de Jugador(€) Valor Equipo(€) \n", + "4 957 K € 39,25 mil. € \n", + "16 510 K € 23,95 mil. € \n", + "13 548 K € 26,30 mil. € \n", + "5 951 K € 37,10 mil. € \n", + "2 969 K € 43,63 mil. € " + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_list[0].head()" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "import re" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "def clean_euros(x):\n", + " if \"mil. €\" in x: return int(re.sub(\" mil. €\",'000000', x).replace(',',''))\n", + " if \"K €\" in x: return int(re.sub(' K €','000', x))\n" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "df_list[-1] = df_list[-1].dropna()" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/jelv/anaconda3/lib/python3.7/site-packages/ipykernel_launcher.py:2: SettingWithCopyWarning: \n", + "A value is trying to be set on a copy of a slice from a DataFrame.\n", + "Try using .loc[row_indexer,col_indexer] = value instead\n", + "\n", + "See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n", + " \n", + "/home/jelv/anaconda3/lib/python3.7/site-packages/ipykernel_launcher.py:3: SettingWithCopyWarning: \n", + "A value is trying to be set on a copy of a slice from a DataFrame.\n", + "Try using .loc[row_indexer,col_indexer] = value instead\n", + "\n", + "See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n", + " This is separate from the ipykernel package so we can avoid doing imports until\n", + "/home/jelv/anaconda3/lib/python3.7/site-packages/ipykernel_launcher.py:4: SettingWithCopyWarning: \n", + "A value is trying to be set on a copy of a slice from a DataFrame.\n", + "Try using .loc[row_indexer,col_indexer] = value instead\n", + "\n", + "See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n", + " after removing the cwd from sys.path.\n", + "/home/jelv/anaconda3/lib/python3.7/site-packages/ipykernel_launcher.py:5: SettingWithCopyWarning: \n", + "A value is trying to be set on a copy of a slice from a DataFrame.\n", + "Try using .loc[row_indexer,col_indexer] = value instead\n", + "\n", + "See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n", + " \"\"\"\n" + ] + } + ], + "source": [ + "for df in df_list:\n", + " df['Jugadores Extranjeros'] = df['Jugadores Extranjeros'].apply(lambda x: int(x))\n", + " df['Valor Promedio de Jugador(€)'] = df['Valor Promedio de Jugador(€)'].apply(clean_euros)\n", + " df['Valor Equipo(€)'] = df['Valor Equipo(€)'].apply(clean_euros)\n", + " df['Edad Promedio Jugador'] = df['Edad Promedio Jugador'].apply(lambda x: x/80)\n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[ Club Edad Promedio Jugador Jugadores Extranjeros \\\n", + " 4 América 2.9250 8 \n", + " 16 Atlante 3.0750 9 \n", + " 13 Atlas 3.0125 8 \n", + " 5 CD Cruz Azul 3.0125 5 \n", + " 2 CF Pachuca 3.0000 12 \n", + " 6 Chivas 2.8125 0 \n", + " 17 Club Tijuana 3.1875 11 \n", + " 12 Jaguares 2.9000 7 \n", + " 18 León 3.0500 7 \n", + " 3 Monterrey 3.0500 6 \n", + " 7 Morelia 3.0875 7 \n", + " 15 Puebla FC 3.2500 9 \n", + " 14 Querétaro FC 3.1125 11 \n", + " 9 San Luis 3.1750 10 \n", + " 8 Santos Laguna 3.0750 9 \n", + " 1 Tigres UANL 3.1125 9 \n", + " 11 Toluca 3.2000 5 \n", + " 10 UNAM Pumas 2.9000 7 \n", + " 19 NaN 0.0000 0 \n", + " \n", + " Valor Promedio de Jugador(€) Valor Equipo(€) \n", + " 4 957000.0 3.925000e+09 \n", + " 16 510000.0 2.395000e+09 \n", + " 13 548000.0 2.630000e+09 \n", + " 5 951000.0 3.710000e+09 \n", + " 2 969000.0 4.363000e+09 \n", + " 6 888000.0 3.465000e+09 \n", + " 17 614000.0 2.270000e+09 \n", + " 12 658000.0 2.830000e+09 \n", + " 18 575000.0 2.185000e+09 \n", + " 3 131000000.0 4.075000e+09 \n", + " 7 856000.0 3.425000e+09 \n", + " 15 583000.0 2.450000e+09 \n", + " 14 435000.0 2.525000e+09 \n", + " 9 606000.0 3.030000e+09 \n", + " 8 109000000.0 3.365000e+09 \n", + " 1 131000000.0 4.440000e+09 \n", + " 11 993000.0 2.980000e+09 \n", + " 10 684000.0 3.010000e+09 \n", + " 19 NaN NaN ,\n", + " Club Edad Promedio Jugador Jugadores Extranjeros \\\n", + " 2 América 3.0750 10 \n", + " 12 Atlante 3.3000 11 \n", + " 10 Atlas 3.0750 8 \n", + " 5 CD Cruz Azul 3.2500 9 \n", + " 7 CF Pachuca 3.0250 11 \n", + " 16 Chiapas FC 3.2250 8 \n", + " 6 Chivas 2.9875 1 \n", + " 15 Club Tijuana 3.2250 17 \n", + " 17 León 3.1000 8 \n", + " 3 Monterrey 3.0500 11 \n", + " 4 Morelia 3.3375 11 \n", + " 13 Puebla FC 3.2375 9 \n", + " 11 Querétaro FC 3.2750 13 \n", + " 9 Santos Laguna 2.9500 8 \n", + " 18 Tiburones Rojos 3.2375 8 \n", + " 1 Tigres UANL 3.3250 9 \n", + " 14 Toluca 3.2875 6 \n", + " 8 UNAM Pumas 3.1875 10 \n", + " 19 NaN 0.0000 0 \n", + " \n", + " Valor Promedio de Jugador(€) Valor Equipo(€) \n", + " 2 879000.0 4.920000e+09 \n", + " 12 661000.0 3.172000e+09 \n", + " 10 608000.0 3.345000e+09 \n", + " 5 106000000.0 4.665000e+09 \n", + " 7 712000.0 3.773000e+09 \n", + " 16 634000.0 2.725000e+09 \n", + " 6 834000.0 4.505000e+09 \n", + " 15 693000.0 2.980000e+09 \n", + " 17 685000.0 2.670000e+09 \n", + " 3 104000000.0 4.890000e+09 \n", + " 4 870000.0 4.870000e+09 \n", + " 13 596000.0 3.100000e+09 \n", + " 11 574000.0 3.270000e+09 \n", + " 9 839000.0 3.355000e+09 \n", + " 18 485000.0 1.745000e+09 \n", + " 1 129000000.0 5.405000e+09 \n", + " 14 909000.0 3.090000e+09 \n", + " 8 931000.0 3.630000e+09 \n", + " 19 NaN NaN ,\n", + " Club Edad Promedio Jugador Jugadores Extranjeros \\\n", + " 1 América 3.0125 13 \n", + " 8 Atlas 3.2375 11 \n", + " 5 CD Cruz Azul 3.4125 9 \n", + " 12 CF Pachuca 3.0125 11 \n", + " 9 Chiapas FC 3.2000 12 \n", + " 3 Chivas 3.1250 0 \n", + " 17 Club Tijuana 2.9125 18 \n", + " 18 Leones Negros 3.1500 9 \n", + " 11 León 3.1375 10 \n", + " 4 Monterrey 2.9875 12 \n", + " 16 Morelia 3.0000 10 \n", + " 10 Puebla FC 3.3500 11 \n", + " 15 Querétaro FC 3.2250 12 \n", + " 6 Santos Laguna 2.9625 9 \n", + " 13 Tiburones Rojos 3.2125 11 \n", + " 2 Tigres UANL 3.0500 12 \n", + " 7 Toluca 3.0375 6 \n", + " 14 UNAM Pumas 3.0000 11 \n", + " 19 NaN 0.0000 0 \n", + " \n", + " Valor Promedio de Jugador(€) Valor Equipo(€) \n", + " 1 108000000.0 4.515000e+09 \n", + " 8 746000.0 3.135000e+09 \n", + " 5 119000000.0 3.808000e+09 \n", + " 12 822000.0 2.960000e+09 \n", + " 9 680000.0 3.130000e+09 \n", + " 3 995000.0 3.880000e+09 \n", + " 17 568000.0 2.270000e+09 \n", + " 18 465000.0 2.140000e+09 \n", + " 11 859000.0 3.008000e+09 \n", + " 4 107000000.0 3.860000e+09 \n", + " 16 543000.0 2.498000e+09 \n", + " 10 736000.0 3.090000e+09 \n", + " 15 610000.0 2.560000e+09 \n", + " 6 968000.0 3.580000e+09 \n", + " 13 626000.0 2.815000e+09 \n", + " 2 938000.0 4.500000e+09 \n", + " 7 786000.0 3.145000e+09 \n", + " 14 552000.0 2.593000e+09 \n", + " 19 NaN NaN ,\n", + " Club Edad Promedio Jugador Jugadores Extranjeros \\\n", + " 7 América 3.1375 12 \n", + " 6 Atlas 3.0125 14 \n", + " 3 CD Cruz Azul 3.2625 13 \n", + " 5 CF Pachuca 2.8625 16 \n", + " 13 Chiapas FC 2.9625 12 \n", + " 10 Chivas 3.0625 0 \n", + " 16 Club Tijuana 2.9875 24 \n", + " 11 Dorados de Sin. 3.2375 16 \n", + " 4 León 3.0500 11 \n", + " 2 Monterrey 3.0625 11 \n", + " 8 Morelia 3.1250 13 \n", + " 12 Puebla FC 3.2750 11 \n", + " 15 Querétaro FC 3.1750 13 \n", + " 9 Santos Laguna 2.9125 8 \n", + " 14 Tiburones Rojos 3.1250 11 \n", + " 1 Tigres UANL 3.2125 13 \n", + " 18 Toluca 3.1375 7 \n", + " 17 UNAM Pumas 2.9750 11 \n", + " 19 NaN 0.0000 0 \n", + " \n", + " Valor Promedio de Jugador(€) Valor Equipo(€) \n", + " 7 102000000.0 3.553000e+09 \n", + " 6 600000.0 3.598000e+09 \n", + " 3 109000000.0 4.465000e+09 \n", + " 5 719000.0 3.665000e+09 \n", + " 13 577000.0 2.945000e+09 \n", + " 10 105000000.0 3.260000e+09 \n", + " 16 614000.0 2.825000e+09 \n", + " 11 622000.0 3.233000e+09 \n", + " 4 910000.0 3.820000e+09 \n", + " 2 118000000.0 4.735000e+09 \n", + " 8 679000.0 3.395000e+09 \n", + " 12 655000.0 3.015000e+09 \n", + " 15 816000.0 2.855000e+09 \n", + " 9 102000000.0 3.270000e+09 \n", + " 14 669000.0 2.943000e+09 \n", + " 1 129000000.0 5.275000e+09 \n", + " 18 671000.0 2.550000e+09 \n", + " 17 605000.0 2.600000e+09 \n", + " 19 NaN NaN ,\n", + " Club Edad Promedio Jugador Jugadores Extranjeros \\\n", + " 5 América 3.1625 16 \n", + " 16 Atlas 3.0625 10 \n", + " 6 CD Cruz Azul 3.4125 19 \n", + " 11 CF Pachuca 2.8750 15 \n", + " 9 Chiapas FC 3.4750 27 \n", + " 13 Chivas 3.0750 0 \n", + " 8 Club Tijuana 3.2375 24 \n", + " 7 León 3.2125 15 \n", + " 2 Monterrey 3.1625 17 \n", + " 12 Morelia 3.3750 15 \n", + " 18 Necaxa 3.5000 15 \n", + " 17 Puebla FC 3.5125 18 \n", + " 15 Querétaro FC 3.2625 13 \n", + " 3 Santos Laguna 3.0875 16 \n", + " 4 Tiburones Rojos 3.3375 25 \n", + " 1 Tigres UANL 3.2125 19 \n", + " 10 Toluca 3.4000 13 \n", + " 14 UNAM Pumas 3.1500 11 \n", + " 19 NaN 0.0000 0 \n", + " \n", + " Valor Promedio de Jugador(€) Valor Equipo(€) \n", + " 5 118000000.0 4.818000e+09 \n", + " 16 682000.0 2.865000e+09 \n", + " 6 116000000.0 4.620000e+09 \n", + " 11 786000.0 4.085000e+09 \n", + " 9 872000.0 4.448000e+09 \n", + " 13 135000000.0 3.792000e+09 \n", + " 8 109000000.0 4.455000e+09 \n", + " 7 115000000.0 4.585000e+09 \n", + " 2 138000000.0 6.600000e+09 \n", + " 12 873000.0 3.840000e+09 \n", + " 18 709000.0 2.198000e+09 \n", + " 17 753000.0 2.785000e+09 \n", + " 15 905000.0 3.350000e+09 \n", + " 3 123000000.0 5.183000e+09 \n", + " 4 866000.0 4.935000e+09 \n", + " 1 158000000.0 6.958000e+09 \n", + " 10 105000000.0 4.313000e+09 \n", + " 14 907000.0 3.718000e+09 \n", + " 19 NaN NaN ,\n", + " Club Edad Promedio Jugador Jugadores Extranjeros \\\n", + " 5 América 3.0375 16 \n", + " 16 Atlas 2.9250 15 \n", + " 7 CD Cruz Azul 3.2375 12 \n", + " 6 CF Pachuca 2.9000 16 \n", + " 8 Chivas 2.8750 0 \n", + " 3 Club Tijuana 3.2125 23 \n", + " 9 León 3.1500 19 \n", + " 18 Lobos 3.2500 13 \n", + " 2 Monterrey 3.0750 16 \n", + " 17 Morelia 3.1750 13 \n", + " 10 Necaxa 3.1250 18 \n", + " 15 Puebla FC 3.3375 19 \n", + " 14 Querétaro FC 3.2375 14 \n", + " 4 Santos Laguna 3.0500 14 \n", + " 13 Tiburones Rojos 3.2625 21 \n", + " 1 Tigres UANL 3.1875 13 \n", + " 12 Toluca 3.1625 16 \n", + " 11 UNAM Pumas 2.9750 10 \n", + " 19 NaN 0.0000 0 \n", + " \n", + " Valor Promedio de Jugador(€) Valor Equipo(€) \n", + " 5 117000000.0 4.208000e+09 \n", + " 16 588000.0 2.765000e+09 \n", + " 7 113000000.0 3.615000e+09 \n", + " 6 909000.0 4.093000e+09 \n", + " 8 950000.0 3.610000e+09 \n", + " 3 121000000.0 5.090000e+09 \n", + " 9 868000.0 3.560000e+09 \n", + " 18 414000.0 1.823000e+09 \n", + " 2 137000000.0 6.040000e+09 \n", + " 17 618000.0 2.350000e+09 \n", + " 10 698000.0 3.423000e+09 \n", + " 15 632000.0 2.905000e+09 \n", + " 14 772000.0 3.010000e+09 \n", + " 4 114000000.0 4.225000e+09 \n", + " 13 622000.0 3.110000e+09 \n", + " 1 198000000.0 7.510000e+09 \n", + " 12 780000.0 3.278000e+09 \n", + " 11 782000.0 3.283000e+09 \n", + " 19 NaN NaN ,\n", + " Club Edad Promedio Jugador Jugadores Extranjeros \\\n", + " 5 América 2.8875 14 \n", + " 11 Atlas 2.9625 18 \n", + " 4 CD Cruz Azul 3.3000 13 \n", + " 3 CF Pachuca 3.1000 18 \n", + " 7 Chivas 2.9375 0 \n", + " 10 Club Tijuana 3.0375 22 \n", + " 9 León 3.1000 20 \n", + " 18 Lobos 3.1125 14 \n", + " 2 Monterrey 2.9625 14 \n", + " 16 Morelia 3.0875 12 \n", + " 14 Necaxa 2.9500 16 \n", + " 15 Puebla FC 3.1500 16 \n", + " 13 Querétaro FC 3.0500 16 \n", + " 6 Santos Laguna 3.0125 14 \n", + " 17 Tiburones Rojos 3.1500 18 \n", + " 1 Tigres UANL 3.1500 20 \n", + " 8 Toluca 3.2500 16 \n", + " 12 UNAM Pumas 2.9500 10 \n", + " 19 NaN 0.0000 0 \n", + " \n", + " Valor Promedio de Jugador(€) Valor Equipo(€) \n", + " 5 115000000.0 5.065000e+09 \n", + " 11 638000.0 3.318000e+09 \n", + " 4 151000000.0 5.900000e+09 \n", + " 3 132000000.0 5.950000e+09 \n", + " 7 847000.0 4.573000e+09 \n", + " 10 839000.0 3.858000e+09 \n", + " 9 895000.0 4.208000e+09 \n", + " 18 475000.0 1.758000e+09 \n", + " 2 171000000.0 7.030000e+09 \n", + " 16 656000.0 2.360000e+09 \n", + " 14 552000.0 3.093000e+09 \n", + " 15 521000.0 2.655000e+09 \n", + " 13 728000.0 3.205000e+09 \n", + " 6 120000000.0 4.685000e+09 \n", + " 17 443000.0 2.350000e+09 \n", + " 1 186000000.0 8.360000e+09 \n", + " 8 101000000.0 4.235000e+09 \n", + " 12 826000.0 3.220000e+09 \n", + " 19 NaN NaN ,\n", + " Club Edad Promedio Jugador Jugadores Extranjeros \\\n", + " 4 América 3.2375 11 \n", + " 12 Atlas 3.2625 12 \n", + " 3 CD Cruz Azul 3.3250 11 \n", + " 5 CF Pachuca 3.3500 10 \n", + " 8 Chivas 3.2625 0 \n", + " 10 Club Tijuana 3.2250 12 \n", + " 18 FC Juárez 3.4875 12 \n", + " 7 León 3.3750 12 \n", + " 1 Monterrey 3.4250 12 \n", + " 13 Morelia 3.2875 13 \n", + " 15 Necaxa 3.2000 12 \n", + " 16 Puebla FC 3.5875 11 \n", + " 11 Querétaro FC 3.3000 10 \n", + " 17 San Luis 3.3375 12 \n", + " 6 Santos Laguna 3.2250 9 \n", + " 19 Tiburones Rojos 3.7000 12 \n", + " 2 Tigres UANL 3.4000 10 \n", + " 14 Toluca 3.5250 11 \n", + " 9 UNAM Pumas 3.2250 7 \n", + " \n", + " Valor Promedio de Jugador(€) Valor Equipo(€) \n", + " 4 272000000 6255000000 \n", + " 12 122000000 3170000000 \n", + " 3 231000000 6470000000 \n", + " 5 198000000 4740000000 \n", + " 8 155000000 4180000000 \n", + " 10 111000000 3430000000 \n", + " 18 697000 2020000000 \n", + " 7 161000000 4350000000 \n", + " 1 336000000 8410000000 \n", + " 13 100000000 2900000000 \n", + " 15 102000000 2760000000 \n", + " 16 854000 2390000000 \n", + " 11 112000000 3260000000 \n", + " 17 830000 2325000000 \n", + " 6 186000000 4650000000 \n", + " 19 600000 1740000000 \n", + " 2 277000000 7490000000 \n", + " 14 122000000 2800000000 \n", + " 9 143000000 3580000000 ]" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_list" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "result = pd.concat(df_list)" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "final_table = result.groupby(['Club']).sum()" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Edad Promedio JugadorJugadores ExtranjerosValor Promedio de Jugador(€)Valor Equipo(€)
Club
América24.47501008.338360e+083.725900e+10
Atlante6.3750201.171000e+065.567000e+09
Atlas24.5500961.264100e+082.482600e+10
CD Cruz Azul26.2125919.459510e+083.725300e+10
CF Pachuca24.12501093.349170e+083.362900e+10
Chiapas FC12.8625592.763000e+061.324800e+10
Chivas24.137513.995140e+083.126500e+10
Club Tijuana25.02501513.443280e+082.717800e+10
Dorados de Sin.3.2375166.220000e+053.233000e+09
FC Juárez3.4875126.970000e+052.020000e+09
Jaguares2.900076.580000e+052.830000e+09
Leones Negros3.150094.650000e+052.140000e+09
León25.17501022.807920e+082.838600e+10
Lobos6.3625278.890000e+053.581000e+09
Monterrey24.7750991.242000e+094.564000e+10
Morelia25.4750941.050950e+082.563800e+10
Necaxa12.7750611.039590e+081.147400e+10
Puebla FC26.70001045.330000e+062.239000e+10
Querétaro FC25.63751021.168400e+082.403500e+10
San Luis6.5125221.436000e+065.355000e+09
Santos Laguna24.2750877.558070e+083.231300e+10
Tiburones Rojos23.02501064.311000e+061.963800e+10
Tigres UANL25.65001051.208938e+094.993800e+10
Toluca26.0000803.321390e+082.639100e+10
UNAM Pumas24.3625771.482870e+082.563400e+10
\n", + "
" + ], + "text/plain": [ + " Edad Promedio Jugador Jugadores Extranjeros \\\n", + "Club \n", + "América 24.4750 100 \n", + "Atlante 6.3750 20 \n", + "Atlas 24.5500 96 \n", + "CD Cruz Azul 26.2125 91 \n", + "CF Pachuca 24.1250 109 \n", + "Chiapas FC 12.8625 59 \n", + "Chivas 24.1375 1 \n", + "Club Tijuana 25.0250 151 \n", + "Dorados de Sin. 3.2375 16 \n", + "FC Juárez 3.4875 12 \n", + "Jaguares 2.9000 7 \n", + "Leones Negros 3.1500 9 \n", + "León 25.1750 102 \n", + "Lobos 6.3625 27 \n", + "Monterrey 24.7750 99 \n", + "Morelia 25.4750 94 \n", + "Necaxa 12.7750 61 \n", + "Puebla FC 26.7000 104 \n", + "Querétaro FC 25.6375 102 \n", + "San Luis 6.5125 22 \n", + "Santos Laguna 24.2750 87 \n", + "Tiburones Rojos 23.0250 106 \n", + "Tigres UANL 25.6500 105 \n", + "Toluca 26.0000 80 \n", + "UNAM Pumas 24.3625 77 \n", + "\n", + " Valor Promedio de Jugador(€) Valor Equipo(€) \n", + "Club \n", + "América 8.338360e+08 3.725900e+10 \n", + "Atlante 1.171000e+06 5.567000e+09 \n", + "Atlas 1.264100e+08 2.482600e+10 \n", + "CD Cruz Azul 9.459510e+08 3.725300e+10 \n", + "CF Pachuca 3.349170e+08 3.362900e+10 \n", + "Chiapas FC 2.763000e+06 1.324800e+10 \n", + "Chivas 3.995140e+08 3.126500e+10 \n", + "Club Tijuana 3.443280e+08 2.717800e+10 \n", + "Dorados de Sin. 6.220000e+05 3.233000e+09 \n", + "FC Juárez 6.970000e+05 2.020000e+09 \n", + "Jaguares 6.580000e+05 2.830000e+09 \n", + "Leones Negros 4.650000e+05 2.140000e+09 \n", + "León 2.807920e+08 2.838600e+10 \n", + "Lobos 8.890000e+05 3.581000e+09 \n", + "Monterrey 1.242000e+09 4.564000e+10 \n", + "Morelia 1.050950e+08 2.563800e+10 \n", + "Necaxa 1.039590e+08 1.147400e+10 \n", + "Puebla FC 5.330000e+06 2.239000e+10 \n", + "Querétaro FC 1.168400e+08 2.403500e+10 \n", + "San Luis 1.436000e+06 5.355000e+09 \n", + "Santos Laguna 7.558070e+08 3.231300e+10 \n", + "Tiburones Rojos 4.311000e+06 1.963800e+10 \n", + "Tigres UANL 1.208938e+09 4.993800e+10 \n", + "Toluca 3.321390e+08 2.639100e+10 \n", + "UNAM Pumas 1.482870e+08 2.563400e+10 " + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "final_table" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Vemos que del 2012 a la fecha los equipos con mas valor en el mercado son los de MTY\n", + "## Seguido de los de la CDMX dejando aun lado PUMAS" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Edad Promedio JugadorJugadores ExtranjerosValor Promedio de Jugador(€)Valor Equipo(€)
Club
Tigres UANL25.65001051.208938e+094.993800e+10
Monterrey24.7750991.242000e+094.564000e+10
América24.47501008.338360e+083.725900e+10
CD Cruz Azul26.2125919.459510e+083.725300e+10
CF Pachuca24.12501093.349170e+083.362900e+10
Santos Laguna24.2750877.558070e+083.231300e+10
Chivas24.137513.995140e+083.126500e+10
León25.17501022.807920e+082.838600e+10
Club Tijuana25.02501513.443280e+082.717800e+10
Toluca26.0000803.321390e+082.639100e+10
\n", + "
" + ], + "text/plain": [ + " Edad Promedio Jugador Jugadores Extranjeros \\\n", + "Club \n", + "Tigres UANL 25.6500 105 \n", + "Monterrey 24.7750 99 \n", + "América 24.4750 100 \n", + "CD Cruz Azul 26.2125 91 \n", + "CF Pachuca 24.1250 109 \n", + "Santos Laguna 24.2750 87 \n", + "Chivas 24.1375 1 \n", + "León 25.1750 102 \n", + "Club Tijuana 25.0250 151 \n", + "Toluca 26.0000 80 \n", + "\n", + " Valor Promedio de Jugador(€) Valor Equipo(€) \n", + "Club \n", + "Tigres UANL 1.208938e+09 4.993800e+10 \n", + "Monterrey 1.242000e+09 4.564000e+10 \n", + "América 8.338360e+08 3.725900e+10 \n", + "CD Cruz Azul 9.459510e+08 3.725300e+10 \n", + "CF Pachuca 3.349170e+08 3.362900e+10 \n", + "Santos Laguna 7.558070e+08 3.231300e+10 \n", + "Chivas 3.995140e+08 3.126500e+10 \n", + "León 2.807920e+08 2.838600e+10 \n", + "Club Tijuana 3.443280e+08 2.717800e+10 \n", + "Toluca 3.321390e+08 2.639100e+10 " + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "top_valuable_teams = final_table.sort_values('Valor Equipo(€)', ascending=False)\n", + "top_valuable_teams[:10]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Equipo con mas extranjeros desde 2012\n", + "#### Vemos que Tijuana es quien mas jugadores extranjeros ha tenido desde 2012 siendo el 8 mejor de la liga\n", + "#### Es necesario analizar este outlier (Jugadores doble nacionalidad?)" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Edad Promedio JugadorJugadores ExtranjerosValor Promedio de Jugador(€)Valor Equipo(€)
Club
Club Tijuana25.02501513.443280e+082.717800e+10
CF Pachuca24.12501093.349170e+083.362900e+10
Tiburones Rojos23.02501064.311000e+061.963800e+10
Tigres UANL25.65001051.208938e+094.993800e+10
Puebla FC26.70001045.330000e+062.239000e+10
León25.17501022.807920e+082.838600e+10
Querétaro FC25.63751021.168400e+082.403500e+10
América24.47501008.338360e+083.725900e+10
Monterrey24.7750991.242000e+094.564000e+10
Atlas24.5500961.264100e+082.482600e+10
Morelia25.4750941.050950e+082.563800e+10
CD Cruz Azul26.2125919.459510e+083.725300e+10
Santos Laguna24.2750877.558070e+083.231300e+10
Toluca26.0000803.321390e+082.639100e+10
UNAM Pumas24.3625771.482870e+082.563400e+10
Necaxa12.7750611.039590e+081.147400e+10
Chiapas FC12.8625592.763000e+061.324800e+10
Lobos6.3625278.890000e+053.581000e+09
San Luis6.5125221.436000e+065.355000e+09
Atlante6.3750201.171000e+065.567000e+09
Dorados de Sin.3.2375166.220000e+053.233000e+09
FC Juárez3.4875126.970000e+052.020000e+09
Leones Negros3.150094.650000e+052.140000e+09
Jaguares2.900076.580000e+052.830000e+09
Chivas24.137513.995140e+083.126500e+10
\n", + "
" + ], + "text/plain": [ + " Edad Promedio Jugador Jugadores Extranjeros \\\n", + "Club \n", + "Club Tijuana 25.0250 151 \n", + "CF Pachuca 24.1250 109 \n", + "Tiburones Rojos 23.0250 106 \n", + "Tigres UANL 25.6500 105 \n", + "Puebla FC 26.7000 104 \n", + "León 25.1750 102 \n", + "Querétaro FC 25.6375 102 \n", + "América 24.4750 100 \n", + "Monterrey 24.7750 99 \n", + "Atlas 24.5500 96 \n", + "Morelia 25.4750 94 \n", + "CD Cruz Azul 26.2125 91 \n", + "Santos Laguna 24.2750 87 \n", + "Toluca 26.0000 80 \n", + "UNAM Pumas 24.3625 77 \n", + "Necaxa 12.7750 61 \n", + "Chiapas FC 12.8625 59 \n", + "Lobos 6.3625 27 \n", + "San Luis 6.5125 22 \n", + "Atlante 6.3750 20 \n", + "Dorados de Sin. 3.2375 16 \n", + "FC Juárez 3.4875 12 \n", + "Leones Negros 3.1500 9 \n", + "Jaguares 2.9000 7 \n", + "Chivas 24.1375 1 \n", + "\n", + " Valor Promedio de Jugador(€) Valor Equipo(€) \n", + "Club \n", + "Club Tijuana 3.443280e+08 2.717800e+10 \n", + "CF Pachuca 3.349170e+08 3.362900e+10 \n", + "Tiburones Rojos 4.311000e+06 1.963800e+10 \n", + "Tigres UANL 1.208938e+09 4.993800e+10 \n", + "Puebla FC 5.330000e+06 2.239000e+10 \n", + "León 2.807920e+08 2.838600e+10 \n", + "Querétaro FC 1.168400e+08 2.403500e+10 \n", + "América 8.338360e+08 3.725900e+10 \n", + "Monterrey 1.242000e+09 4.564000e+10 \n", + "Atlas 1.264100e+08 2.482600e+10 \n", + "Morelia 1.050950e+08 2.563800e+10 \n", + "CD Cruz Azul 9.459510e+08 3.725300e+10 \n", + "Santos Laguna 7.558070e+08 3.231300e+10 \n", + "Toluca 3.321390e+08 2.639100e+10 \n", + "UNAM Pumas 1.482870e+08 2.563400e+10 \n", + "Necaxa 1.039590e+08 1.147400e+10 \n", + "Chiapas FC 2.763000e+06 1.324800e+10 \n", + "Lobos 8.890000e+05 3.581000e+09 \n", + "San Luis 1.436000e+06 5.355000e+09 \n", + "Atlante 1.171000e+06 5.567000e+09 \n", + "Dorados de Sin. 6.220000e+05 3.233000e+09 \n", + "FC Juárez 6.970000e+05 2.020000e+09 \n", + "Leones Negros 4.650000e+05 2.140000e+09 \n", + "Jaguares 6.580000e+05 2.830000e+09 \n", + "Chivas 3.995140e+08 3.126500e+10 " + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "top_jug_extr = final_table.sort_values('Jugadores Extranjeros', ascending=False)\n", + "top_jug_extr" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Puebla es quien tiene jugadores mas viejos en promedio desde 2012\n", + "#### El rango de edad promedio es de los 24 a 26 \n", + "#### PENDIENTE: Es importante realizar un promedio con los equipos quienes no han estados todos los torneos desde 2012 para tener mejor analisis" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Edad Promedio JugadorJugadores ExtranjerosValor Promedio de Jugador(€)Valor Equipo(€)
Club
Puebla FC26.70001045.330000e+062.239000e+10
CD Cruz Azul26.2125919.459510e+083.725300e+10
Toluca26.0000803.321390e+082.639100e+10
Tigres UANL25.65001051.208938e+094.993800e+10
Querétaro FC25.63751021.168400e+082.403500e+10
Morelia25.4750941.050950e+082.563800e+10
León25.17501022.807920e+082.838600e+10
Club Tijuana25.02501513.443280e+082.717800e+10
Monterrey24.7750991.242000e+094.564000e+10
Atlas24.5500961.264100e+082.482600e+10
América24.47501008.338360e+083.725900e+10
UNAM Pumas24.3625771.482870e+082.563400e+10
Santos Laguna24.2750877.558070e+083.231300e+10
Chivas24.137513.995140e+083.126500e+10
CF Pachuca24.12501093.349170e+083.362900e+10
Tiburones Rojos23.02501064.311000e+061.963800e+10
Chiapas FC12.8625592.763000e+061.324800e+10
Necaxa12.7750611.039590e+081.147400e+10
San Luis6.5125221.436000e+065.355000e+09
Atlante6.3750201.171000e+065.567000e+09
Lobos6.3625278.890000e+053.581000e+09
FC Juárez3.4875126.970000e+052.020000e+09
Dorados de Sin.3.2375166.220000e+053.233000e+09
Leones Negros3.150094.650000e+052.140000e+09
Jaguares2.900076.580000e+052.830000e+09
\n", + "
" + ], + "text/plain": [ + " Edad Promedio Jugador Jugadores Extranjeros \\\n", + "Club \n", + "Puebla FC 26.7000 104 \n", + "CD Cruz Azul 26.2125 91 \n", + "Toluca 26.0000 80 \n", + "Tigres UANL 25.6500 105 \n", + "Querétaro FC 25.6375 102 \n", + "Morelia 25.4750 94 \n", + "León 25.1750 102 \n", + "Club Tijuana 25.0250 151 \n", + "Monterrey 24.7750 99 \n", + "Atlas 24.5500 96 \n", + "América 24.4750 100 \n", + "UNAM Pumas 24.3625 77 \n", + "Santos Laguna 24.2750 87 \n", + "Chivas 24.1375 1 \n", + "CF Pachuca 24.1250 109 \n", + "Tiburones Rojos 23.0250 106 \n", + "Chiapas FC 12.8625 59 \n", + "Necaxa 12.7750 61 \n", + "San Luis 6.5125 22 \n", + "Atlante 6.3750 20 \n", + "Lobos 6.3625 27 \n", + "FC Juárez 3.4875 12 \n", + "Dorados de Sin. 3.2375 16 \n", + "Leones Negros 3.1500 9 \n", + "Jaguares 2.9000 7 \n", + "\n", + " Valor Promedio de Jugador(€) Valor Equipo(€) \n", + "Club \n", + "Puebla FC 5.330000e+06 2.239000e+10 \n", + "CD Cruz Azul 9.459510e+08 3.725300e+10 \n", + "Toluca 3.321390e+08 2.639100e+10 \n", + "Tigres UANL 1.208938e+09 4.993800e+10 \n", + "Querétaro FC 1.168400e+08 2.403500e+10 \n", + "Morelia 1.050950e+08 2.563800e+10 \n", + "León 2.807920e+08 2.838600e+10 \n", + "Club Tijuana 3.443280e+08 2.717800e+10 \n", + "Monterrey 1.242000e+09 4.564000e+10 \n", + "Atlas 1.264100e+08 2.482600e+10 \n", + "América 8.338360e+08 3.725900e+10 \n", + "UNAM Pumas 1.482870e+08 2.563400e+10 \n", + "Santos Laguna 7.558070e+08 3.231300e+10 \n", + "Chivas 3.995140e+08 3.126500e+10 \n", + "CF Pachuca 3.349170e+08 3.362900e+10 \n", + "Tiburones Rojos 4.311000e+06 1.963800e+10 \n", + "Chiapas FC 2.763000e+06 1.324800e+10 \n", + "Necaxa 1.039590e+08 1.147400e+10 \n", + "San Luis 1.436000e+06 5.355000e+09 \n", + "Atlante 1.171000e+06 5.567000e+09 \n", + "Lobos 8.890000e+05 3.581000e+09 \n", + "FC Juárez 6.970000e+05 2.020000e+09 \n", + "Dorados de Sin. 6.220000e+05 3.233000e+09 \n", + "Leones Negros 4.650000e+05 2.140000e+09 \n", + "Jaguares 6.580000e+05 2.830000e+09 " + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "top_edad = final_table.sort_values('Edad Promedio Jugador', ascending=False)\n", + "top_edad" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Tomando los top 10 equipos, quien tiene jugadores mas jovenes aparentemente es el Veracruz pero en realidad es Pachuca\n", + "\n", + "### Pendiente por ajustar el caso de Veracruz y demas equipos con menor cantidad de juegos, pues esto solo es una sumatoria\n" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [], + "source": [ + "top_edad_joven = final_table.sort_values('Edad Promedio Jugador', ascending=True)\n", + "top_edad_joven = top_edad_joven[top_edad_joven['Edad Promedio Jugador'] > 19]" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Edad Promedio JugadorJugadores ExtranjerosValor Promedio de Jugador(€)Valor Equipo(€)
Club
Tiburones Rojos23.02501064.311000e+061.963800e+10
CF Pachuca24.12501093.349170e+083.362900e+10
Chivas24.137513.995140e+083.126500e+10
Santos Laguna24.2750877.558070e+083.231300e+10
UNAM Pumas24.3625771.482870e+082.563400e+10
América24.47501008.338360e+083.725900e+10
Atlas24.5500961.264100e+082.482600e+10
Monterrey24.7750991.242000e+094.564000e+10
Club Tijuana25.02501513.443280e+082.717800e+10
León25.17501022.807920e+082.838600e+10
\n", + "
" + ], + "text/plain": [ + " Edad Promedio Jugador Jugadores Extranjeros \\\n", + "Club \n", + "Tiburones Rojos 23.0250 106 \n", + "CF Pachuca 24.1250 109 \n", + "Chivas 24.1375 1 \n", + "Santos Laguna 24.2750 87 \n", + "UNAM Pumas 24.3625 77 \n", + "América 24.4750 100 \n", + "Atlas 24.5500 96 \n", + "Monterrey 24.7750 99 \n", + "Club Tijuana 25.0250 151 \n", + "León 25.1750 102 \n", + "\n", + " Valor Promedio de Jugador(€) Valor Equipo(€) \n", + "Club \n", + "Tiburones Rojos 4.311000e+06 1.963800e+10 \n", + "CF Pachuca 3.349170e+08 3.362900e+10 \n", + "Chivas 3.995140e+08 3.126500e+10 \n", + "Santos Laguna 7.558070e+08 3.231300e+10 \n", + "UNAM Pumas 1.482870e+08 2.563400e+10 \n", + "América 8.338360e+08 3.725900e+10 \n", + "Atlas 1.264100e+08 2.482600e+10 \n", + "Monterrey 1.242000e+09 4.564000e+10 \n", + "Club Tijuana 3.443280e+08 2.717800e+10 \n", + "León 2.807920e+08 2.838600e+10 " + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "top_edad_joven[:10]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Vemos que Rayados es quien tiene los jugadores mas caros en promedio, pero la plantila mas cara es de Tigres\n", + "#### Lo que nos hace suponer que existe uno o dos jugadores en Tigres outliers de valor a comparacion del resto del equipo\n", + "#### por lo que este unico (o dos) jugador eleva el valor de la plantilla entera\n", + "#### Pendiente: Hipotesis a comprobar --> Es Gignac es el outlier de Tigres y quien aumenta el valor economico de la plantilla" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Edad Promedio JugadorJugadores ExtranjerosValor Promedio de Jugador(€)Valor Equipo(€)
Club
Monterrey24.7750991.242000e+094.564000e+10
Tigres UANL25.65001051.208938e+094.993800e+10
CD Cruz Azul26.2125919.459510e+083.725300e+10
América24.47501008.338360e+083.725900e+10
Santos Laguna24.2750877.558070e+083.231300e+10
Chivas24.137513.995140e+083.126500e+10
Club Tijuana25.02501513.443280e+082.717800e+10
CF Pachuca24.12501093.349170e+083.362900e+10
Toluca26.0000803.321390e+082.639100e+10
León25.17501022.807920e+082.838600e+10
\n", + "
" + ], + "text/plain": [ + " Edad Promedio Jugador Jugadores Extranjeros \\\n", + "Club \n", + "Monterrey 24.7750 99 \n", + "Tigres UANL 25.6500 105 \n", + "CD Cruz Azul 26.2125 91 \n", + "América 24.4750 100 \n", + "Santos Laguna 24.2750 87 \n", + "Chivas 24.1375 1 \n", + "Club Tijuana 25.0250 151 \n", + "CF Pachuca 24.1250 109 \n", + "Toluca 26.0000 80 \n", + "León 25.1750 102 \n", + "\n", + " Valor Promedio de Jugador(€) Valor Equipo(€) \n", + "Club \n", + "Monterrey 1.242000e+09 4.564000e+10 \n", + "Tigres UANL 1.208938e+09 4.993800e+10 \n", + "CD Cruz Azul 9.459510e+08 3.725300e+10 \n", + "América 8.338360e+08 3.725900e+10 \n", + "Santos Laguna 7.558070e+08 3.231300e+10 \n", + "Chivas 3.995140e+08 3.126500e+10 \n", + "Club Tijuana 3.443280e+08 2.717800e+10 \n", + "CF Pachuca 3.349170e+08 3.362900e+10 \n", + "Toluca 3.321390e+08 2.639100e+10 \n", + "León 2.807920e+08 2.838600e+10 " + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "top_valor_jug_prom = final_table.sort_values('Valor Promedio de Jugador(€)', ascending=False)\n", + "top_valor_jug_prom[:10]" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "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.7.3" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/your-code/valor_de_equipos_script.py b/your-code/valor_de_equipos_script.py new file mode 100644 index 0000000..e251a62 --- /dev/null +++ b/your-code/valor_de_equipos_script.py @@ -0,0 +1,85 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +import requests as r +import pandas as pd +import numpy as np +import re + +url = "https://www.transfermarkt.com/liga-mx-apertura/startseite/wettbewerb/MEXA/plus/?saison_id=2010" + +header = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36'} + +response = r.get(url, headers=header) + +cont = r.get(url, headers = header).text +t = pd.read_html(cont, attrs = {'class': 'items'})[0] + +t.drop(columns=['Club', 'Club.1', 'Players playing abroad', 'name.1', 'Total MV', 'ø MV'], inplace= True) +t.rename({'name':'Club', 'Squad':'Edad Promedio Jugador', 'ø age':'Jugadores Extranjeros', 'Total market value':'Valor Promedio de Jugador(€)', 'ø market value':'Valor Equipo(€)'}, axis = 1, inplace = True) + +t.index = np.arange(1,len(t)+1) +df_list = [] + +for i in range(12, 20): + cont = r.get(f"https://www.transfermarkt.com/liga-mx-apertura/startseite/wettbewerb/MEXA/plus/?saison_id=20{i}", headers = header).content + t = pd.read_html(cont, attrs = {'class': 'items'})[0] + t.drop(columns=['Club', 'Club.1', 'Players playing abroad', 'name.1', 'Total MV', 'ø MV'], inplace= True) + t.rename({'name':'Club', 'Squad':'Edad Promedio Jugador', 'ø age':'Jugadores Extranjeros', 'Total market value':'Valor Promedio de Jugador(€)', 'ø market value':'Valor Equipo(€)'}, axis = 1, inplace = True) + t.index = np.arange(1,len(t)+1) + df_list.append(t) + print(f'Temporada 20{i} Done!') + +with pd.ExcelWriter('Valores_Equipos_LigaMX.xlsx') as writer: + temp = 2012 + for df in df_list: + df.to_excel(writer, sheet_name=f'Temp {temp}') + temp += 1 + +print("[+] Excel Generado!") + +def sum_dfs(df_list): + tables = [] + for table in df_list: + table.sort_values('Club', inplace = True) + tables.append(table) + #result = pd.concat(tables).groupby(['Club']).sum() + return tables + +sum_dfs(df_list) + +result = pd.concat(df_list) + +def clean_euros(x): + if "mil. €" in x: return int(re.sub(" mil. €",'000000', x).replace(',','')) + if "K €" in x: return int(re.sub(' K €','000', x)) + +df_list[-1] = df_list[-1].dropna() + +for df in df_list: + df['Jugadores Extranjeros'] = df['Jugadores Extranjeros'].apply(lambda x: int(x)) + df['Valor Promedio de Jugador(€)'] = df['Valor Promedio de Jugador(€)'].apply(clean_euros) + df['Valor Equipo(€)'] = df['Valor Equipo(€)'].apply(clean_euros) + df['Edad Promedio Jugador'] = df['Edad Promedio Jugador'].apply(lambda x: x/80) + +result = pd.concat(df_list) + +final_table = result.groupby(['Club']).sum() + +top_valuable_teams = final_table.sort_values('Valor Equipo(€)', ascending=False) + +top_jug_extr = final_table.sort_values('Jugadores Extranjeros', ascending=False) + +top_edad = final_table.sort_values('Edad Promedio Jugador', ascending=False) + +top_edad_joven = final_table.sort_values('Edad Promedio Jugador', ascending=True) +top_edad_joven = top_edad_joven[top_edad_joven['Edad Promedio Jugador'] > 19] +top_valor_jug_prom = final_table.sort_values('Valor Promedio de Jugador(€)', ascending=False) + + + + + + + + +