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

841 lines
25 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"cells": [
{
"cell_type": "markdown",
"id": "fd8a6cb9",
"metadata": {},
"source": [
"Scraping for playing probability for the current Serie A matchday.\n",
"\n",
"Data from http://fantacalcio.it"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "4c7b7d26",
"metadata": {},
"outputs": [],
"source": [
"import requests\n",
"from bs4 import BeautifulSoup\n",
"import pandas as pd\n",
"import numpy as np\n",
"import re\n",
"import sys, getopt\n",
"import csv\n"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "91897dbb",
"metadata": {},
"outputs": [],
"source": [
"res = requests.get('https://www.fantacalcio.it/probabili-formazioni-serie-a')"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "7ba89027",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>player</th>\n",
" <th>starter</th>\n",
" <th>percentage</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>Carnesecchi</td>\n",
" <td>1</td>\n",
" <td>90.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Bianchetti</td>\n",
" <td>1</td>\n",
" <td>55.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>Chiriches</td>\n",
" <td>1</td>\n",
" <td>80.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>Vasquez</td>\n",
" <td>1</td>\n",
" <td>90.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Sernicola</td>\n",
" <td>1</td>\n",
" <td>90.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>444</th>\n",
" <td>Cuadrado</td>\n",
" <td>0</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>445</th>\n",
" <td>Pogba</td>\n",
" <td>0</td>\n",
" <td>30.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>446</th>\n",
" <td>Miretti</td>\n",
" <td>0</td>\n",
" <td>50.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>447</th>\n",
" <td>Soule'</td>\n",
" <td>0</td>\n",
" <td>30.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>448</th>\n",
" <td>Kean</td>\n",
" <td>0</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>449 rows × 3 columns</p>\n",
"</div>"
],
"text/plain": [
" player starter percentage\n",
"0 Carnesecchi 1 90.0\n",
"1 Bianchetti 1 55.0\n",
"2 Chiriches 1 80.0\n",
"3 Vasquez 1 90.0\n",
"4 Sernicola 1 90.0\n",
".. ... ... ...\n",
"444 Cuadrado 0 60.0\n",
"445 Pogba 0 30.0\n",
"446 Miretti 0 50.0\n",
"447 Soule' 0 30.0\n",
"448 Kean 0 60.0\n",
"\n",
"[449 rows x 3 columns]"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"soup = BeautifulSoup(res.text)\n",
"\n",
"groups = soup.findAll('ul', attrs = {'class' : 'player-list'})\n",
"\n",
"probables = pd.DataFrame(columns = ['player', 'starter', 'percentage'])\n",
"\n",
"for i in range (len(groups)):\n",
" players = groups[i].findAll('a', attrs = {'class' : 'player-name'})\n",
" bars = groups[i].findAll('div', attrs = {'class' : 'progress-bar'})\n",
" \n",
" starter_string = groups[i]['class'][1]\n",
" if(starter_string == 'starters'):\n",
" starter = 1\n",
" else:\n",
" starter = 0\n",
" \n",
" for j in range(len(players)):\n",
" player = players[j].contents[0].replace('\\n \\n ', '')\n",
" perc = float(bars[j]['aria-valuenow'])\n",
" \n",
" row_df = pd.DataFrame([[player, starter, perc]], columns = probables.columns)\n",
" \n",
" probables = pd.concat([probables, row_df], ignore_index = True)\n",
" \n",
"probables "
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "29e5b389",
"metadata": {},
"outputs": [],
"source": [
"probables = probables.set_index('player')"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "d711726e",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>player1</th>\n",
" <th>player2</th>\n",
" <th>percentage</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>Dessers</td>\n",
" <td>Ciofani D.</td>\n",
" <td>65.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Bianchetti</td>\n",
" <td>Ferrari A.</td>\n",
" <td>55.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>Pezzella Giu.</td>\n",
" <td>Gallo</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>Di Francesco F.</td>\n",
" <td>Banda</td>\n",
" <td>55.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Abraham</td>\n",
" <td>Belotti</td>\n",
" <td>65.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>Matic</td>\n",
" <td>Bove</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>Akpa Akpro</td>\n",
" <td>Haas</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>Satriano</td>\n",
" <td>Cambiaghi</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>Ebuehi</td>\n",
" <td>Stojanovic</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>Bajrami</td>\n",
" <td>Thorstvedt</td>\n",
" <td>55.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>Zortea</td>\n",
" <td>Ruan</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>Obiang</td>\n",
" <td>Lopez M.</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>Demiral</td>\n",
" <td>Djimsiti</td>\n",
" <td>55.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>Maehle</td>\n",
" <td>Ruggeri</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>Boga</td>\n",
" <td>Pasalic</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>Agudelo</td>\n",
" <td>Cipot</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>Verde</td>\n",
" <td>Maldini</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>Holm</td>\n",
" <td>Ferrer</td>\n",
" <td>65.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>Lozano</td>\n",
" <td>Elmas</td>\n",
" <td>55.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>Lozano</td>\n",
" <td>Politano</td>\n",
" <td>55.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>Mario Rui</td>\n",
" <td>Olivera</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>Vojvoda</td>\n",
" <td>Aina</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td>Buongiorno</td>\n",
" <td>Adopo</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>23</th>\n",
" <td>Sanabria</td>\n",
" <td>Seck</td>\n",
" <td>55.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>24</th>\n",
" <td>Success</td>\n",
" <td>Thauvin</td>\n",
" <td>65.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25</th>\n",
" <td>Arslan</td>\n",
" <td>Lovric</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>26</th>\n",
" <td>Amrabat</td>\n",
" <td>Mandragora</td>\n",
" <td>65.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>27</th>\n",
" <td>Bonaventura</td>\n",
" <td>Barak</td>\n",
" <td>55.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>28</th>\n",
" <td>Gonzalez N.</td>\n",
" <td>Ikone'</td>\n",
" <td>55.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>29</th>\n",
" <td>Dodo'</td>\n",
" <td>Venuti</td>\n",
" <td>55.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>30</th>\n",
" <td>Milenkovic</td>\n",
" <td>Martinez Quarta</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>31</th>\n",
" <td>Cambiaso</td>\n",
" <td>Lykogiannis</td>\n",
" <td>55.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>32</th>\n",
" <td>Dominguez</td>\n",
" <td>Moro N.</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>33</th>\n",
" <td>Soriano</td>\n",
" <td>Aebischer</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>34</th>\n",
" <td>Brozovic</td>\n",
" <td>Mkhitaryan</td>\n",
" <td>55.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>35</th>\n",
" <td>Dzeko</td>\n",
" <td>Lukaku</td>\n",
" <td>65.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>36</th>\n",
" <td>Dumfries</td>\n",
" <td>Darmian</td>\n",
" <td>55.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>37</th>\n",
" <td>Giroud</td>\n",
" <td>Origi</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>38</th>\n",
" <td>Saelemaekers</td>\n",
" <td>Messias</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>39</th>\n",
" <td>De Ketelaere</td>\n",
" <td>Diaz B.</td>\n",
" <td>55.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>40</th>\n",
" <td>Dawidowicz</td>\n",
" <td>Magnani</td>\n",
" <td>65.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>41</th>\n",
" <td>Lasagna</td>\n",
" <td>Braaf</td>\n",
" <td>55.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>42</th>\n",
" <td>Doig</td>\n",
" <td>Verdi</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>43</th>\n",
" <td>Lazzari</td>\n",
" <td>Hysaj</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>44</th>\n",
" <td>Luis Alberto</td>\n",
" <td>Vecino</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>45</th>\n",
" <td>Cataldi</td>\n",
" <td>Marcos Antonio</td>\n",
" <td>65.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>46</th>\n",
" <td>Marlon</td>\n",
" <td>Caldirola</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>47</th>\n",
" <td>Petagna</td>\n",
" <td>Mota</td>\n",
" <td>55.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>48</th>\n",
" <td>Birindelli</td>\n",
" <td>Machin</td>\n",
" <td>55.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>49</th>\n",
" <td>Colley</td>\n",
" <td>Amione</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50</th>\n",
" <td>Djuricic</td>\n",
" <td>Cuisance</td>\n",
" <td>55.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>51</th>\n",
" <td>Bronn</td>\n",
" <td>Daniliuc</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>52</th>\n",
" <td>Sambia</td>\n",
" <td>Lovato</td>\n",
" <td>55.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>53</th>\n",
" <td>Nicolussi Caviglia</td>\n",
" <td>Bohinen</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>54</th>\n",
" <td>Chiesa</td>\n",
" <td>De Sciglio</td>\n",
" <td>55.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>55</th>\n",
" <td>Alex Sandro</td>\n",
" <td>Gatti</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>56</th>\n",
" <td>Vlahovic</td>\n",
" <td>Kean</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" player1 player2 percentage\n",
"0 Dessers Ciofani D. 65.0\n",
"1 Bianchetti Ferrari A. 55.0\n",
"2 Pezzella Giu. Gallo 60.0\n",
"3 Di Francesco F. Banda 55.0\n",
"4 Abraham Belotti 65.0\n",
"5 Matic Bove 60.0\n",
"6 Akpa Akpro Haas 60.0\n",
"7 Satriano Cambiaghi 60.0\n",
"8 Ebuehi Stojanovic 60.0\n",
"9 Bajrami Thorstvedt 55.0\n",
"10 Zortea Ruan 60.0\n",
"11 Obiang Lopez M. 60.0\n",
"12 Demiral Djimsiti 55.0\n",
"13 Maehle Ruggeri 60.0\n",
"14 Boga Pasalic 60.0\n",
"15 Agudelo Cipot 60.0\n",
"16 Verde Maldini 60.0\n",
"17 Holm Ferrer 65.0\n",
"18 Lozano Elmas 55.0\n",
"19 Lozano Politano 55.0\n",
"20 Mario Rui Olivera 60.0\n",
"21 Vojvoda Aina 60.0\n",
"22 Buongiorno Adopo 60.0\n",
"23 Sanabria Seck 55.0\n",
"24 Success Thauvin 65.0\n",
"25 Arslan Lovric 60.0\n",
"26 Amrabat Mandragora 65.0\n",
"27 Bonaventura Barak 55.0\n",
"28 Gonzalez N. Ikone' 55.0\n",
"29 Dodo' Venuti 55.0\n",
"30 Milenkovic Martinez Quarta 60.0\n",
"31 Cambiaso Lykogiannis 55.0\n",
"32 Dominguez Moro N. 60.0\n",
"33 Soriano Aebischer 60.0\n",
"34 Brozovic Mkhitaryan 55.0\n",
"35 Dzeko Lukaku 65.0\n",
"36 Dumfries Darmian 55.0\n",
"37 Giroud Origi 60.0\n",
"38 Saelemaekers Messias 60.0\n",
"39 De Ketelaere Diaz B. 55.0\n",
"40 Dawidowicz Magnani 65.0\n",
"41 Lasagna Braaf 55.0\n",
"42 Doig Verdi 60.0\n",
"43 Lazzari Hysaj 60.0\n",
"44 Luis Alberto Vecino 60.0\n",
"45 Cataldi Marcos Antonio 65.0\n",
"46 Marlon Caldirola 60.0\n",
"47 Petagna Mota 55.0\n",
"48 Birindelli Machin 55.0\n",
"49 Colley Amione 60.0\n",
"50 Djuricic Cuisance 55.0\n",
"51 Bronn Daniliuc 60.0\n",
"52 Sambia Lovato 55.0\n",
"53 Nicolussi Caviglia Bohinen 60.0\n",
"54 Chiesa De Sciglio 55.0\n",
"55 Alex Sandro Gatti 60.0\n",
"56 Vlahovic Kean 60.0"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"groups = soup.findAll('ul', attrs = {'class' : 'ballot-list'})\n",
"\n",
"ballots = pd.DataFrame(columns = ['player1', 'player2', 'percentage'])\n",
"for i in range (len(groups)):\n",
" players = groups[i].findAll('a', attrs = {'class' : 'player-name'})\n",
" percs = groups[i].findAll('strong', attrs = {'class' : 'percentage'})\n",
" \n",
" player1 = players[0].contents[0].replace('\\n \\n ', '')\n",
" player2 = players[1].contents[0].replace('\\n \\n ', '')\n",
" perc = float(percs[0].contents[0].replace('%', ''))\n",
" \n",
" row_df = pd.DataFrame([[player1, player2, perc]], columns = ballots.columns)\n",
" \n",
" ballots = pd.concat([ballots, row_df], ignore_index = True)\n",
" \n",
"ballots"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "0171c61d",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>starter</th>\n",
" <th>percentage</th>\n",
" </tr>\n",
" <tr>\n",
" <th>player</th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Carnesecchi</th>\n",
" <td>1</td>\n",
" <td>90.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Bianchetti</th>\n",
" <td>0.55</td>\n",
" <td>55.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Chiriches</th>\n",
" <td>1</td>\n",
" <td>80.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Vasquez</th>\n",
" <td>1</td>\n",
" <td>90.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Sernicola</th>\n",
" <td>1</td>\n",
" <td>90.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Cuadrado</th>\n",
" <td>0</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Pogba</th>\n",
" <td>0</td>\n",
" <td>30.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Miretti</th>\n",
" <td>0</td>\n",
" <td>50.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Soule'</th>\n",
" <td>0</td>\n",
" <td>30.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Kean</th>\n",
" <td>0.4</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>449 rows × 2 columns</p>\n",
"</div>"
],
"text/plain": [
" starter percentage\n",
"player \n",
"Carnesecchi 1 90.0\n",
"Bianchetti 0.55 55.0\n",
"Chiriches 1 80.0\n",
"Vasquez 1 90.0\n",
"Sernicola 1 90.0\n",
"... ... ...\n",
"Cuadrado 0 60.0\n",
"Pogba 0 30.0\n",
"Miretti 0 50.0\n",
"Soule' 0 30.0\n",
"Kean 0.4 60.0\n",
"\n",
"[449 rows x 2 columns]"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"for i in range(ballots.shape[0]):\n",
" p1 = ballots['player1'][i]\n",
" p2 = ballots['player2'][i]\n",
" \n",
" perc = float(ballots['percentage'][i])\n",
" \n",
" probables.at[p1, 'starter'] = perc/100\n",
" probables.at[p2, 'starter'] = 1 - perc/100\n",
" \n",
"probables"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "8b5468aa",
"metadata": {},
"outputs": [],
"source": [
"probables.to_excel('mid_outputs/match_probable_players.xlsx') "
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "62164549",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.13"
}
},
"nbformat": 4,
"nbformat_minor": 5
}