Files
fantabeto/.ipynb_checkpoints/5_scraping_match_probable_players-checkpoint.ipynb
Giuseppe Musicco 3e9080e07d Matchday #7
2023-09-30 09:24:58 +02:00

847 lines
25 KiB
Plaintext
Raw Permalink 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>Falcone</td>\n",
" <td>1</td>\n",
" <td>90.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Gendrey</td>\n",
" <td>1</td>\n",
" <td>90.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>Baschirotto</td>\n",
" <td>1</td>\n",
" <td>90.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>Pongracic</td>\n",
" <td>1</td>\n",
" <td>80.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Gallo</td>\n",
" <td>1</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>462</th>\n",
" <td>Oristanio</td>\n",
" <td>0</td>\n",
" <td>50.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>463</th>\n",
" <td>Jankto</td>\n",
" <td>0</td>\n",
" <td>15.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>464</th>\n",
" <td>Mancosu</td>\n",
" <td>0</td>\n",
" <td>10.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>465</th>\n",
" <td>Pavoletti</td>\n",
" <td>0</td>\n",
" <td>55.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>466</th>\n",
" <td>Shomurodov</td>\n",
" <td>0</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>467 rows × 3 columns</p>\n",
"</div>"
],
"text/plain": [
" player starter percentage\n",
"0 Falcone 1 90.0\n",
"1 Gendrey 1 90.0\n",
"2 Baschirotto 1 90.0\n",
"3 Pongracic 1 80.0\n",
"4 Gallo 1 60.0\n",
".. ... ... ...\n",
"462 Oristanio 0 50.0\n",
"463 Jankto 0 15.0\n",
"464 Mancosu 0 10.0\n",
"465 Pavoletti 0 55.0\n",
"466 Shomurodov 0 60.0\n",
"\n",
"[467 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[1].contents[0]\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>Gallo</td>\n",
" <td>Dorgu</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Blin</td>\n",
" <td>Gonzalez J.</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>Politano</td>\n",
" <td>Lindstrom</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>Zambo Anguissa</td>\n",
" <td>Cajuste</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Zielinski</td>\n",
" <td>Raspadori</td>\n",
" <td>55.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>Kvaratskhelia</td>\n",
" <td>Elmas</td>\n",
" <td>65.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>Mario Rui</td>\n",
" <td>Olivera</td>\n",
" <td>55.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>Calabria</td>\n",
" <td>Florenzi</td>\n",
" <td>55.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>Pulisic</td>\n",
" <td>Chukwueze</td>\n",
" <td>55.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>Reijnders</td>\n",
" <td>Musah</td>\n",
" <td>65.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>Romagnoli</td>\n",
" <td>Patric</td>\n",
" <td>65.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>Pellegrini Lu.</td>\n",
" <td>Marusic</td>\n",
" <td>65.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>Immobile</td>\n",
" <td>Castellanos</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>Luis Alberto</td>\n",
" <td>Guendouzi</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>Daniliuc</td>\n",
" <td>Lovato</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>Legowski</td>\n",
" <td>Bohinen</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>Martegani</td>\n",
" <td>Dia</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>Mkhitaryan</td>\n",
" <td>Klaassen</td>\n",
" <td>55.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>Sanchez</td>\n",
" <td>Martinez L.</td>\n",
" <td>55.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>Acerbi</td>\n",
" <td>Bastoni</td>\n",
" <td>55.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>Moro N.</td>\n",
" <td>Fabbian</td>\n",
" <td>55.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>Ferguson</td>\n",
" <td>Aebischer</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td>Ndoye</td>\n",
" <td>Orsolini</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>23</th>\n",
" <td>Cancellieri</td>\n",
" <td>Shpendi S.</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>24</th>\n",
" <td>Fazzini</td>\n",
" <td>Ranocchia F.</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25</th>\n",
" <td>Grassi</td>\n",
" <td>Marin</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>26</th>\n",
" <td>Success</td>\n",
" <td>Lucca</td>\n",
" <td>55.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>27</th>\n",
" <td>Ebosele</td>\n",
" <td>Ferreira J.</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>28</th>\n",
" <td>Kamara H.</td>\n",
" <td>Zemura</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>29</th>\n",
" <td>Martin</td>\n",
" <td>Matturro</td>\n",
" <td>55.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>30</th>\n",
" <td>Pasalic</td>\n",
" <td>Muriel</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>31</th>\n",
" <td>Ruggeri</td>\n",
" <td>Holm</td>\n",
" <td>55.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>32</th>\n",
" <td>Mckennie</td>\n",
" <td>Weah</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>33</th>\n",
" <td>Fagioli</td>\n",
" <td>Miretti</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>34</th>\n",
" <td>Chiesa</td>\n",
" <td>Milik</td>\n",
" <td>55.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>35</th>\n",
" <td>Dybala</td>\n",
" <td>El Shaarawy</td>\n",
" <td>65.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>36</th>\n",
" <td>Zalewski</td>\n",
" <td>Spinazzola</td>\n",
" <td>55.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>37</th>\n",
" <td>Paredes</td>\n",
" <td>Celik</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>38</th>\n",
" <td>Caso</td>\n",
" <td>Baez</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>39</th>\n",
" <td>Brescianini</td>\n",
" <td>Garritano</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>40</th>\n",
" <td>Romagnoli S.</td>\n",
" <td>Monterisi</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>41</th>\n",
" <td>Vina</td>\n",
" <td>Pedersen</td>\n",
" <td>55.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>42</th>\n",
" <td>Erlic</td>\n",
" <td>Viti</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>43</th>\n",
" <td>Bajrami</td>\n",
" <td>Castillejo</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>44</th>\n",
" <td>Colombo</td>\n",
" <td>Maric</td>\n",
" <td>65.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>45</th>\n",
" <td>Izzo</td>\n",
" <td>D'ambrosio</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>46</th>\n",
" <td>Birindelli</td>\n",
" <td>Kyriakopoulos</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>47</th>\n",
" <td>Bellanova</td>\n",
" <td>Soppy</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>48</th>\n",
" <td>Lazaro</td>\n",
" <td>Vojvoda</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>49</th>\n",
" <td>Zapata D.</td>\n",
" <td>Sanabria</td>\n",
" <td>55.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50</th>\n",
" <td>Bonazzoli</td>\n",
" <td>Henry</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>51</th>\n",
" <td>Magnani</td>\n",
" <td>Coppola D.</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>52</th>\n",
" <td>Folorunsho</td>\n",
" <td>Saponara</td>\n",
" <td>55.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>53</th>\n",
" <td>Bonaventura</td>\n",
" <td>Barak</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>54</th>\n",
" <td>Lopez M.</td>\n",
" <td>Arthur Melo</td>\n",
" <td>55.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>55</th>\n",
" <td>Nzola</td>\n",
" <td>Beltran L.</td>\n",
" <td>55.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>56</th>\n",
" <td>Nandez</td>\n",
" <td>Deiola</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>57</th>\n",
" <td>Petagna</td>\n",
" <td>Shomurodov</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>58</th>\n",
" <td>Hatzidiakos</td>\n",
" <td>Obert</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" player1 player2 percentage\n",
"0 Gallo Dorgu 60.0\n",
"1 Blin Gonzalez J. 60.0\n",
"2 Politano Lindstrom 60.0\n",
"3 Zambo Anguissa Cajuste 60.0\n",
"4 Zielinski Raspadori 55.0\n",
"5 Kvaratskhelia Elmas 65.0\n",
"6 Mario Rui Olivera 55.0\n",
"7 Calabria Florenzi 55.0\n",
"8 Pulisic Chukwueze 55.0\n",
"9 Reijnders Musah 65.0\n",
"10 Romagnoli Patric 65.0\n",
"11 Pellegrini Lu. Marusic 65.0\n",
"12 Immobile Castellanos 60.0\n",
"13 Luis Alberto Guendouzi 60.0\n",
"14 Daniliuc Lovato 60.0\n",
"15 Legowski Bohinen 60.0\n",
"16 Martegani Dia 60.0\n",
"17 Mkhitaryan Klaassen 55.0\n",
"18 Sanchez Martinez L. 55.0\n",
"19 Acerbi Bastoni 55.0\n",
"20 Moro N. Fabbian 55.0\n",
"21 Ferguson Aebischer 60.0\n",
"22 Ndoye Orsolini 60.0\n",
"23 Cancellieri Shpendi S. 60.0\n",
"24 Fazzini Ranocchia F. 60.0\n",
"25 Grassi Marin 60.0\n",
"26 Success Lucca 55.0\n",
"27 Ebosele Ferreira J. 60.0\n",
"28 Kamara H. Zemura 60.0\n",
"29 Martin Matturro 55.0\n",
"30 Pasalic Muriel 60.0\n",
"31 Ruggeri Holm 55.0\n",
"32 Mckennie Weah 60.0\n",
"33 Fagioli Miretti 60.0\n",
"34 Chiesa Milik 55.0\n",
"35 Dybala El Shaarawy 65.0\n",
"36 Zalewski Spinazzola 55.0\n",
"37 Paredes Celik 60.0\n",
"38 Caso Baez 60.0\n",
"39 Brescianini Garritano 60.0\n",
"40 Romagnoli S. Monterisi 60.0\n",
"41 Vina Pedersen 55.0\n",
"42 Erlic Viti 60.0\n",
"43 Bajrami Castillejo 60.0\n",
"44 Colombo Maric 65.0\n",
"45 Izzo D'ambrosio 60.0\n",
"46 Birindelli Kyriakopoulos 60.0\n",
"47 Bellanova Soppy 60.0\n",
"48 Lazaro Vojvoda 60.0\n",
"49 Zapata D. Sanabria 55.0\n",
"50 Bonazzoli Henry 60.0\n",
"51 Magnani Coppola D. 60.0\n",
"52 Folorunsho Saponara 55.0\n",
"53 Bonaventura Barak 60.0\n",
"54 Lopez M. Arthur Melo 55.0\n",
"55 Nzola Beltran L. 55.0\n",
"56 Nandez Deiola 60.0\n",
"57 Petagna Shomurodov 60.0\n",
"58 Hatzidiakos Obert 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[1].contents[0]\n",
" player2 = players[1].contents[1].contents[0]\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>Falcone</th>\n",
" <td>1</td>\n",
" <td>90.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Gendrey</th>\n",
" <td>1</td>\n",
" <td>90.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Baschirotto</th>\n",
" <td>1</td>\n",
" <td>90.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Pongracic</th>\n",
" <td>1</td>\n",
" <td>80.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Gallo</th>\n",
" <td>0.6</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Oristanio</th>\n",
" <td>0</td>\n",
" <td>50.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Jankto</th>\n",
" <td>0</td>\n",
" <td>15.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Mancosu</th>\n",
" <td>0</td>\n",
" <td>10.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Pavoletti</th>\n",
" <td>0</td>\n",
" <td>55.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Shomurodov</th>\n",
" <td>0.4</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>467 rows × 2 columns</p>\n",
"</div>"
],
"text/plain": [
" starter percentage\n",
"player \n",
"Falcone 1 90.0\n",
"Gendrey 1 90.0\n",
"Baschirotto 1 90.0\n",
"Pongracic 1 80.0\n",
"Gallo 0.6 60.0\n",
"... ... ...\n",
"Oristanio 0 50.0\n",
"Jankto 0 15.0\n",
"Mancosu 0 10.0\n",
"Pavoletti 0 55.0\n",
"Shomurodov 0.4 60.0\n",
"\n",
"[467 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') "
]
}
],
"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
}