{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Data Engineering of StrataBet Data\n", "##### Notebook to engineer the event data provided by [StrataBet]( http://www.stratagem.co/)\n", "\n", "### By [Edd Webster](https://www.twitter.com/eddwebster)\n", "Notebook first written: 13/12/2020
\n", "Notebook last updated: 26/12/2020" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "![title](../../img/stratabet_logo.jpg)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Click [here](#section5) to jump straight to the Exploratory Data Analysis section and skip the [Task Brief](#section2), [Data Sources](#section3), and [Data Engineering](#section4) sections. Or click [here](#section6) to jump straight to the Conclusion.\n", "\n", "This article was written with the aid of StrataData, which is property of [Stratagem Technologies](http://www.stratagem.co/). StrataData powers the [StrataBet Sports Trading Platform](http://www.stratabet.com/), in addition to [StrataBet Premium Recommendations](http://app.stratabet.com/recommendations)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "___\n", "\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Introduction\n", "This notebook engineers [StrataBet]( http://www.stratagem.co/) data for football matches in a variety of European leagues during the 16/17 and 17/18 seasons, using [pandas](http://pandas.pydata.org/) for data manipulation through DataFrames.\n", "\n", "For more information about this notebook and the author, I'm available through all the following channels:\n", "* [eddwebster.com](https://www.eddwebster.com/);\n", "* edd.j.webster@gmail.com;\n", "* [@eddwebster](https://www.twitter.com/eddwebster);\n", "* [linkedin.com/in/eddwebster](https://www.linkedin.com/in/eddwebster/);\n", "* [github/eddwebster](https://github.com/eddwebster/);\n", "* [public.tableau.com/profile/edd.webster](https://public.tableau.com/profile/edd.webster);\n", "* [kaggle.com/eddwebster](https://www.kaggle.com/eddwebster); and\n", "* [hackerrank.com/eddwebster](https://www.hackerrank.com/eddwebster).\n", "\n", "![title](../../img/fifa21eddwebsterbanner.png)\n", "\n", "The accompanying GitHub repository for this notebook can be found [here](https://github.com/eddwebster/fifa-league) and a static version of this notebook can be found [here](https://nbviewer.jupyter.org/github/eddwebster/football_analytics/blob/master/notebooks/B%29%20Data%20Engineering/Opta%20%23mcfcanalytics%20PL%202011-2012.ipynb)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "___\n", "\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Notebook Contents\n", "1. [Notebook Dependencies](#section1)
\n", "2. [Project Brief](#section2)
\n", "3. [Data Sources](#section3)
\n", " 1. [Introduction](#section3.1)
\n", " 2. [Data Dictionary](#section3.2)
\n", " 3. [Creating the DataFrame](#section3.3)
\n", " 4. [Initial Data Handling](#section3.4)
\n", " 5. [Export the Raw DataFrame](#section3.5)
\n", "4. [Data Engineering](#section4)
\n", " 1. [Introduction](#section4.1)
\n", " 2. [Columns of Interest](#section4.2)
\n", " 3. [String Cleaning](#section4.3)
\n", " 4. [Converting Data Types](#section4.4)
\n", " 5. [Export the Engineered DataFrame](#section4.5)
\n", "5. [Exploratory Data Analysis (EDA)](#section5)
\n", " 1. [...](#section5.1)
\n", " 2. [...](#section5.2)
\n", " 3. [...](#section5.3)
\n", "6. [Summary](#section6)
\n", "7. [Next Steps](#section7)
\n", "8. [Bibliography](#section8)
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "___\n", "\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1. Notebook Dependencies" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This notebook was written using [Python 3](https://docs.python.org/3.7/) and requires the following libraries:\n", "* [`Jupyter notebooks`](https://jupyter.org/) for this notebook environment with which this project is presented;\n", "* [`NumPy`](http://www.numpy.org/) for multidimensional array computing;\n", "* [`pandas`](http://pandas.pydata.org/) for data analysis and manipulation; and\n", "* [`matplotlib`](https://matplotlib.org/contents.html?v=20200411155018) for data visualisations;\n", "\n", "All packages used for this notebook except for BeautifulSoup can be obtained by downloading and installing the [Conda](https://anaconda.org/anaconda/conda) distribution, available on all platforms (Windows, Linux and Mac OSX). Step-by-step guides on how to install Anaconda can be found for Windows [here](https://medium.com/@GalarnykMichael/install-python-on-windows-anaconda-c63c7c3d1444) and Mac [here](https://medium.com/@GalarnykMichael/install-python-on-mac-anaconda-ccd9f2014072), as well as in the Anaconda documentation itself [here](https://docs.anaconda.com/anaconda/install/)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Import Libraries and Modules" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Setup Complete\n" ] } ], "source": [ "# Python ≥3.5 (ideally)\n", "import platform\n", "import sys, getopt\n", "assert sys.version_info >= (3, 5)\n", "import csv\n", "\n", "# Import Dependencies\n", "%matplotlib inline\n", "\n", "# Math Operations\n", "import numpy as np\n", "from math import pi\n", "\n", "# Datetime\n", "import datetime\n", "from datetime import date\n", "import time\n", "\n", "# Data Preprocessing\n", "import pandas as pd # version 1.0.3\n", "import os # used to read the csv filenames\n", "import re\n", "import random\n", "from io import BytesIO\n", "from pathlib import Path\n", "\n", "# Reading directories\n", "import glob\n", "import os\n", "\n", "# Working with JSON\n", "import json\n", "from pandas.io.json import json_normalize\n", "from ast import literal_eval\n", "\n", "# Data Visualisation\n", "import matplotlib as mpl\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns\n", "plt.style.use('seaborn-whitegrid')\n", "import missingno as msno # visually display missing data\n", "\n", "# Display in Jupyter\n", "from IPython.display import Image, YouTubeVideo\n", "from IPython.core.display import HTML\n", "\n", "# Ignore Warnings\n", "import warnings\n", "warnings.filterwarnings(action=\"ignore\", message=\"^internal gelsd\")\n", "\n", "print('Setup Complete')" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "scrolled": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Python: 3.7.6\n", "NumPy: 1.18.1\n", "pandas: 1.0.1\n", "matplotlib: 3.1.3\n", "Seaborn: 0.10.0\n" ] } ], "source": [ "# Python / module versions used here for reference\n", "print('Python: {}'.format(platform.python_version()))\n", "print('NumPy: {}'.format(np.__version__))\n", "print('pandas: {}'.format(pd.__version__))\n", "print('matplotlib: {}'.format(mpl.__version__))\n", "print('Seaborn: {}'.format(sns.__version__))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Defined Filepaths" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "# Set up initial paths to subfolders\n", "base_dir = os.path.join('..', '..', )\n", "data_dir = os.path.join(base_dir, 'data')\n", "data_dir_fbref = os.path.join(base_dir, 'data', 'fbref')\n", "data_dir_stratabet = os.path.join(base_dir, 'data', 'stratabet')\n", "img_dir = os.path.join(base_dir, 'img')\n", "fig_dir = os.path.join(base_dir, 'img', 'fig')\n", "video_dir = os.path.join(base_dir, 'video')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Notebook Settings" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "pd.set_option('display.max_columns', None)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---\n", "\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 2. Project Brief\n", "This Jupyter notebook explores how to engineer [StrataBet]( http://www.stratagem.co/) Events data using [pandas](http://pandas.pydata.org/) for data manipulation through DataFrames.\n", "\n", "The resulting engineered Datarame is exported as a CSV file. This data can be further analysed in Python, joined to other datasets, or explored using Tableau, PowerBI, Microsoft Excel." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---\n", "\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 3. Data Sources" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 3.1. Introduction\n", "This StrataData has been made availble by [Stratagem Technologies](http://www.stratagem.co/). StrataData powers the [StrataBet Sports Trading Platform](http://www.stratabet.com/), in addition to [StrataBet Premium Recommendations](http://app.stratabet.com/recommendations).\n", "\n", "Before conducting our EDA, the data needs to be imported as a DataFrame in the Data Sources section [Section 3](#section3) and cleaned in the Data Engineering section [Section 4](#section4).\n", "\n", "We'll be using the [pandas](http://pandas.pydata.org/) library to import our data to this workbook as a DataFrame." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 3.2. Chances" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 3.2.1. Data Dictionary\n", "The [StrataBet]( http://www.stratagem.co/) Events dataset has twelve features (columns) with the following definitions and data types:\n", "\n", "| Feature | Data type |\n", "|------|-----|\n", "| `eventId` | int64 |\n", "| `subEventName` | object |\n", "| `tags` | object |\n", "| `playerId` | int64 |\n", "| `positions` | object |\n", "| `matchId` | int64 |\n", "| `eventName` | object |\n", "| `teamId` | int64 |\n", "| `matchPeriod` | object |\n", "| `eventSec` | float64 |\n", "| `subEventId` | object |\n", "| `id` | int64 |" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 3.2.2. Import Data" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "# Combine individual csv files to form one DataFrame, df_raw, using glob\n", "lst_files_chances = glob.glob(data_dir_stratabet + '/raw/chances/individual_competitions' + \"/*.csv\") # Creates a list of all csv files\n", "\n", "li = [] # pd.concat takes a list of DataFrames as an argument\n", "\n", "for filename in lst_files_chances:\n", " df_raw_temp = pd.read_csv(filename, index_col=None, header=0)\n", " li.append(df_raw_temp)\n", "\n", "df_stratabet_chances_raw = pd.concat(li, axis=0, ignore_index=True) # ignore_index=True as we don't want pandas to try an align row indexes" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 3.2.3. Initial Data Handling\n", "Let's quality of the dataset by looking first and last rows in pandas using the [head()](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.head.html) and [tail()](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.tail.html) methods." ] }, { "cell_type": "code", "execution_count": 7, "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", "
indexcompetitiongsm_idkickoffDatekickoffTimehometeam_team1awayteam_team2iconchanceRatingteamtypetimeplayerlocation_xlocation_ybodyPartshotQualitydefPressurenumDefPlayersnumAttPlayersoutcomeprimaryPlayerprimaryTypeprimaryLocation_xprimaryLocation_ysecondaryPlayersecondaryType
04684GreSL235559110/09/201613:00:00KerkyraPlataniaspoorchancepoorchanceKerkyraOpen Play24:43:00D. Epstein8148Left3520Saved------
14685GreSL235559110/09/201613:00:00KerkyraPlataniasgoodchancegoodchanceKerkyraOpen Play45:29:00D. Epstein2760Left2220DefendedThuramOpen Play Pass-2982--
24686GreSL235559110/09/201613:00:00KerkyraPlataniaspoorchancepoorchanceKerkyraOpen Play44:34:00S. Siontis23117Right2141Missed------
34687GreSL235559110/09/201613:00:00KerkyraPlataniaspoorchancepoorchancePlataniasOpen Play42:39:00O. Gnjatic-9118Left1131MissedG. ManousosOpen Play Pass7792--
44688GreSL235559110/09/201613:00:00KerkyraPlataniasgoodchancegoodchanceKerkyraOpen Play40:46:00D. Epstein4215Left2520Saved------
\n", "
" ], "text/plain": [ " index competition gsm_id kickoffDate kickoffTime hometeam_team1 \\\n", "0 4684 GreSL 2355591 10/09/2016 13:00:00 Kerkyra \n", "1 4685 GreSL 2355591 10/09/2016 13:00:00 Kerkyra \n", "2 4686 GreSL 2355591 10/09/2016 13:00:00 Kerkyra \n", "3 4687 GreSL 2355591 10/09/2016 13:00:00 Kerkyra \n", "4 4688 GreSL 2355591 10/09/2016 13:00:00 Kerkyra \n", "\n", " awayteam_team2 icon chanceRating team type time \\\n", "0 Platanias poorchance poorchance Kerkyra Open Play 24:43:00 \n", "1 Platanias goodchance goodchance Kerkyra Open Play 45:29:00 \n", "2 Platanias poorchance poorchance Kerkyra Open Play 44:34:00 \n", "3 Platanias poorchance poorchance Platanias Open Play 42:39:00 \n", "4 Platanias goodchance goodchance Kerkyra Open Play 40:46:00 \n", "\n", " player location_x location_y bodyPart shotQuality defPressure \\\n", "0 D. Epstein 81 48 Left 3 5 \n", "1 D. Epstein 27 60 Left 2 2 \n", "2 S. Siontis 23 117 Right 2 1 \n", "3 O. Gnjatic -9 118 Left 1 1 \n", "4 D. Epstein 42 15 Left 2 5 \n", "\n", " numDefPlayers numAttPlayers outcome primaryPlayer primaryType \\\n", "0 2 0 Saved - - \n", "1 2 0 Defended Thuram Open Play Pass \n", "2 4 1 Missed - - \n", "3 3 1 Missed G. Manousos Open Play Pass \n", "4 2 0 Saved - - \n", "\n", " primaryLocation_x primaryLocation_y secondaryPlayer secondaryType \n", "0 - - - - \n", "1 -29 82 - - \n", "2 - - - - \n", "3 77 92 - - \n", "4 - - - - " ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Display the first 5 rows of the raw DataFrame, df_stratabet_chances_raw \n", "df_stratabet_chances_raw.head()" ] }, { "cell_type": "code", "execution_count": 8, "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", "
indexcompetitiongsm_idkickoffDatekickoffTimehometeam_team1awayteam_team2iconchanceRatingteamtypetimeplayerlocation_xlocation_ybodyPartshotQualitydefPressurenumDefPlayersnumAttPlayersoutcomeprimaryPlayerprimaryTypeprimaryLocation_xprimaryLocation_ysecondaryPlayersecondaryType
11914333422EngPr246309112/03/201820:00:00Stoke CityManchester CitygoodchancegoodchanceManchester CityOpen Play41:13:00L. Sane4542Left2220MissedK. De BruyneCross High-6948Gabriel JesusOpen Play Pass
11914433424EngPr246309112/03/201820:00:00Stoke CityManchester CitygreatchancegreatchanceManchester CityOpen Play56:58:00R. Sterling-1813Left3420SavedDavid SilvaOpen Play Pass-3686L. SaneOpen Play Pass
11914533418EngPr246309112/03/201820:00:00Stoke CityManchester CitypoorchancepoorchanceManchester CityOpen Play25:50:00Fernandinho397Left2132Missed------
11914633426EngPr246309112/03/201820:00:00Stoke CityManchester CitypoorchancepoorchanceManchester CityOpen Play57:48:00R. Sterling3192Right2141DefendedL. SaneOpen Play Pass-786K. De BruyneOpen Play Pass
11914733427EngPr246309112/03/201820:00:00Stoke CityManchester CitypoorchancepoorchanceManchester CityOpen Play58:29:00L. Sane-27107Left2153MissedR. SterlingOpen Play Pass1788David SilvaOpen Play Pass
\n", "
" ], "text/plain": [ " index competition gsm_id kickoffDate kickoffTime hometeam_team1 \\\n", "119143 33422 EngPr 2463091 12/03/2018 20:00:00 Stoke City \n", "119144 33424 EngPr 2463091 12/03/2018 20:00:00 Stoke City \n", "119145 33418 EngPr 2463091 12/03/2018 20:00:00 Stoke City \n", "119146 33426 EngPr 2463091 12/03/2018 20:00:00 Stoke City \n", "119147 33427 EngPr 2463091 12/03/2018 20:00:00 Stoke City \n", "\n", " awayteam_team2 icon chanceRating team type \\\n", "119143 Manchester City goodchance goodchance Manchester City Open Play \n", "119144 Manchester City greatchance greatchance Manchester City Open Play \n", "119145 Manchester City poorchance poorchance Manchester City Open Play \n", "119146 Manchester City poorchance poorchance Manchester City Open Play \n", "119147 Manchester City poorchance poorchance Manchester City Open Play \n", "\n", " time player location_x location_y bodyPart shotQuality \\\n", "119143 41:13:00 L. Sane 45 42 Left 2 \n", "119144 56:58:00 R. Sterling -18 13 Left 3 \n", "119145 25:50:00 Fernandinho 3 97 Left 2 \n", "119146 57:48:00 R. Sterling 31 92 Right 2 \n", "119147 58:29:00 L. Sane -27 107 Left 2 \n", "\n", " defPressure numDefPlayers numAttPlayers outcome primaryPlayer \\\n", "119143 2 2 0 Missed K. De Bruyne \n", "119144 4 2 0 Saved David Silva \n", "119145 1 3 2 Missed - \n", "119146 1 4 1 Defended L. Sane \n", "119147 1 5 3 Missed R. Sterling \n", "\n", " primaryType primaryLocation_x primaryLocation_y secondaryPlayer \\\n", "119143 Cross High -69 48 Gabriel Jesus \n", "119144 Open Play Pass -36 86 L. Sane \n", "119145 - - - - \n", "119146 Open Play Pass -7 86 K. De Bruyne \n", "119147 Open Play Pass 17 88 David Silva \n", "\n", " secondaryType \n", "119143 Open Play Pass \n", "119144 Open Play Pass \n", "119145 - \n", "119146 Open Play Pass \n", "119147 Open Play Pass " ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Display the last 5 rows of the raw DataFrame, df_stratabet_chances_raw \n", "df_stratabet_chances_raw.tail()" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(119148, 27)\n" ] } ], "source": [ "# Print the shape of the raw DataFrame, df_stratabet_chances_raw \n", "print(df_stratabet_chances_raw.shape)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Index(['index', 'competition', 'gsm_id', 'kickoffDate', 'kickoffTime',\n", " 'hometeam_team1', 'awayteam_team2', 'icon', 'chanceRating', 'team',\n", " 'type', 'time', 'player', 'location_x', 'location_y', 'bodyPart',\n", " 'shotQuality', 'defPressure', 'numDefPlayers', 'numAttPlayers',\n", " 'outcome', 'primaryPlayer', 'primaryType', 'primaryLocation_x',\n", " 'primaryLocation_y', 'secondaryPlayer', 'secondaryType'],\n", " dtype='object')\n" ] } ], "source": [ "# Print the column names of the raw DataFrame, df_stratabet_chances_raw \n", "print(df_stratabet_chances_raw.columns)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The dataset has six features (columns). Full details of these attributes can be found in the [Data Dictionary](section3.3.1)." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "index int64\n", "competition object\n", "gsm_id int64\n", "kickoffDate object\n", "kickoffTime object\n", "hometeam_team1 object\n", "awayteam_team2 object\n", "icon object\n", "chanceRating object\n", "team object\n", "type object\n", "time object\n", "player object\n", "location_x object\n", "location_y object\n", "bodyPart object\n", "shotQuality object\n", "defPressure object\n", "numDefPlayers object\n", "numAttPlayers object\n", "outcome object\n", "primaryPlayer object\n", "primaryType object\n", "primaryLocation_x object\n", "primaryLocation_y object\n", "secondaryPlayer object\n", "secondaryType object\n", "dtype: object" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Data types of the features of the raw DataFrame, df_stratabet_chances_raw \n", "df_stratabet_chances_raw .dtypes" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "All six of the columns have the object data type. Full details of these attributes and their data types can be found in the [Data Dictionary](section3.3.1)." ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "RangeIndex: 119148 entries, 0 to 119147\n", "Data columns (total 27 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", " 0 index 119148 non-null int64 \n", " 1 competition 119148 non-null object\n", " 2 gsm_id 119148 non-null int64 \n", " 3 kickoffDate 119148 non-null object\n", " 4 kickoffTime 119148 non-null object\n", " 5 hometeam_team1 119148 non-null object\n", " 6 awayteam_team2 119148 non-null object\n", " 7 icon 119148 non-null object\n", " 8 chanceRating 119148 non-null object\n", " 9 team 119148 non-null object\n", " 10 type 119148 non-null object\n", " 11 time 119148 non-null object\n", " 12 player 119148 non-null object\n", " 13 location_x 119148 non-null object\n", " 14 location_y 119148 non-null object\n", " 15 bodyPart 119148 non-null object\n", " 16 shotQuality 117618 non-null object\n", " 17 defPressure 119148 non-null object\n", " 18 numDefPlayers 119148 non-null object\n", " 19 numAttPlayers 119148 non-null object\n", " 20 outcome 119148 non-null object\n", " 21 primaryPlayer 119148 non-null object\n", " 22 primaryType 119148 non-null object\n", " 23 primaryLocation_x 119148 non-null object\n", " 24 primaryLocation_y 119148 non-null object\n", " 25 secondaryPlayer 119148 non-null object\n", " 26 secondaryType 119148 non-null object\n", "dtypes: int64(2), object(25)\n", "memory usage: 24.5+ MB\n" ] } ], "source": [ "# Info for the raw DataFrame, df_stratabet_chances_raw \n", "df_stratabet_chances_raw.info()" ] }, { "cell_type": "code", "execution_count": 13, "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", "
indexgsm_id
count119148.0000001.191480e+05
mean9941.6645012.380177e+06
std17678.0107941.127321e+05
min0.0000002.237445e+06
25%1580.0000002.247140e+06
50%3387.0000002.404032e+06
75%6534.0000002.467501e+06
max80263.0000002.701477e+06
\n", "
" ], "text/plain": [ " index gsm_id\n", "count 119148.000000 1.191480e+05\n", "mean 9941.664501 2.380177e+06\n", "std 17678.010794 1.127321e+05\n", "min 0.000000 2.237445e+06\n", "25% 1580.000000 2.247140e+06\n", "50% 3387.000000 2.404032e+06\n", "75% 6534.000000 2.467501e+06\n", "max 80263.000000 2.701477e+06" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Description of the raw DataFrame, df_stratabet_raw, showing some summary statistics for each numberical column in the DataFrame\n", "df_stratabet_chances_raw.describe()" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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sLS0JCcnh+LiYmxsbDA3NxecdxcvXmTx4sVcunSJLVu24O7u/qJl/CH/Tl9RURF2dnZCtmDbQ6iRkRG9e/fGyMjoBav498ifu6ioiMrKSjQ0NCgsLBTmmrOzM87OzmRlZZGRkcHKlSvJyspCKpWydu1aVFRURBexDr+W+vL29mbbtm2sW7cODQ0NRowYgb6+PpqamixdupT09HRmzZrFpEmTACgvL+fgwYOEhobSpUuXF6zgn03b8smTJk1i06ZNJCQkcPnyZfr3749EIhFKun733Xe0tLRQXl7OokWLsLKyIjY2VnTvZAcdvExIJBKampqYO3cue/fuxdLSUihtJla75N9RXl6OTCZDS0tL+LuCggKSk5P55JNP6NmzJ0ZGRvTp04empiYOHz7M06dPGTJkCKamppw+fZqKigoGDRr0AlX8MYqs79KlS8TFxTF48GA+/vhjNDQ0gN8uii5dukRhYSGxsbFCwJSLiwuHDh1iz549HD58GG1tbRISElBRURFdVkV+fj5vvPEGTU1NODg44O7uTktLC1u2bOHYsWPo6+sTHh6Ora0tu3btIjs7m4iICJSVlfnll18oKChg6dKlos5ketZWzMzM5Pbt27z11ltoampy9epVPvnkE8LDw+nevTuZmZn079+fYcOGMWrUKPr374+xsfELVPDH5OXlMWnSJKysrOjXrx+BgYG0tLSwefNmLly4gLm5Od27d6esrIzs7GwCAwOZM2cOysrKlJeX8/PPP2Nvb8/gwYNftJTnUlRUxPr162lqasLW1laYO8rKynh6euLp6YmTk5NQMtLFxUVw3tna2mJubo61tTXffPONcGYX2/vZljNnzjBp0iQuXbqEr68vwcHBADg4OGBvb8+aNWt48OAB1tbWwjvp4OAg+mDNZ9eFHj16kJubS2lpKWZmZri4uCCVSoX1sbm5GV1dXYKCgvDy8iIzMxMLC4vftUgQA4qsTY4ia1RkbfBbBQSZTMbChQtJSkqiuroaExMT3NzcyMnJIT8/HyUlJeEO4u7du5w8eZL4+HjRBkrLUXR9HXTwLB2Ouw4ExHao/N/keRf9jx49IikpCT8/P65du8YHH3zA+++/z5QpU6iqqmLZsmX4+vri5eXV7nMvw29kamqKs7MzR48e5cSJEzg6OhITE8OVK1dITk5mz549HDx4kK1bt1JXV8f06dNF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ty6uvPLKkmaeNm1aNDY2tnjvySefjLFjx0a7du1i5MiR0a5du/jFL34Rd9xxR9TW1sZNN91U0msAAAAAAACcyZEjR2Ls2LHxvve9L1asWBF79+6Nr33taxERMWnSpPjyl78cHTp0iJ/+9KexefPmmDJlSrznPe+Jj3zkIwVPTkvO9DynTp0aEydObF67d+/euPnmm+O22247674lh7vt27fH+PHj45lnnjnjun379sVXv/rVaGhoOO2alStXRn19ffTv3z++//3vx4UXXhgREevWrYuampqYO3duzJo165TfOX78eHz729+OxYsXlzpyrFq1Kurr6097f86cOVFVVRWPPPJIcwj80pe+FKNGjYpvfetbMWrUqGjfvn3JrwcAAAAAANCSTZs2xbZt2+LRRx+NCy+8MLp16xYTJkyIOXPmxMCBA2Pr1q3xwx/+MC666KLo1q1brF+/PjZu3CjcJXWm5zllypR429ve1rx25syZ0bdv37jlllvOum9JH5W5ZMmS+OQnPxnPPvtsfOhDHzrtutWrV8d1110XDQ0NZ/yP9Nhjj0VExN13390c7SIihg4dGgMGDIhVq1bF/v37m6//4Q9/iNGjR8fixYtj0KBBpYwce/bsidmzZ8fgwYNbvN/Y2Bh//etfo2fPnqe8e++yyy6Lq6++Og4ePBhbtmwp6bUAAAAAAADOpGvXrrFo0aJTukibNm3iyJEj8dvf/jYGDBgQF110UfO92traGDduXBGjUoIzPc9X27hxY9TV1cXdd99d0r4lhbtly5ZF586d4+GHH45Ro0addt2KFSviggsuiEWLFsUXvvCF06574YUXorq6Onr16vWaez169Ihjx47F008/3Xytrq4uXnjhhZg0aVIsXLiwlJGjtrY2qqqqYsqUKS3ef8tb3hLt2rWLXbt2xbFjx065t2vXroiI6NChQ0mvBQAAAAAAcCYXX3xxfPjDH27+d1NTUzz88MPRv3//2LZtW7zrXe+KefPmxeDBg2PkyJHx6KOPFjhtaY4fP37O9m5oaDin+79eZ3qer/bAAw/E8OHDo3v37iXtW1K4mzFjRqxatSr69et3xnV33nlnPP7446d9l9tJb37zm6OpqanFP/jJ78/bsWNH87Vhw4ZFXV1d3H777dG27dlHXrt2baxduzamTp16Sp1+tbZt28aNN94YL774YnzjG9+IXbt2xUsvvRTz58+P9evXx4gRI6Jz585nfS0AAAAAAIDWmj17dmzevDkmTpwYjY2NsXr16ti9e3fMnz8/PvvZz0ZtbW3U1dUVPeZpHT9+PCZNmnTO9p85c2ZMmjQpdbx7tVc/z5N27NgR9fX1JX233Uklfcfd1VdfXdJmAwcOLGld79694/nnn49169bFxz/+8ebrhw8fjt/85jcREXHgwIHm63369Clp34iI/fv3R21tbQwZMiRGjhwZ+/btO+3akx/V+cADD8TKlSubr19//fUxffr0kl8TAAAAAACgFCdOnIhZs2bF8uXL4/7774/3v//9UVVVFW9/+9tj5syZUVVVFb17945nn302li9fHsOGDSt65BatX78+Nm/efM72P3ToUPzpT3+K9evXl9yfitDS8zzp8ccfj3e/+93Rt2/fkvcrKdy90caMGROPPfZYTJ8+PU6cOBHXXHNNvPjii3HvvffGv//979e19ze/+c04dOhQSeFt3bp1sWLFiujYsWMMHTo0qqqq4oknnog1a9ZE165d44tf/GKLv/fEE0+8rhnPB5V+Ruc7vznf+c35zl+VfLYI5zvfOd/5zfnOb853/qrks0U43/nO+c5vznd+c77zVyWfrZI0NTXF1KlTY82aNTFv3rzmKPfOd74zmpqaoqqqqnnte9/73mhoaChq1LN67rnn4vDhw6dca9OmTdx2221x6623tnq/ZcuWxZIlS+LEiRPN115++eXYsmVL2nB3uud5Un19fQwfPrxVexYS7nr37h2zZs2Ke+65J+66665Trk+YMCFmz54d7du3b/W+Tz75ZKxevTqmTZsWl1122RnX/v3vf4+77rorOnfuHMuXL4+OHTtGxCsf1Xn77bfHfffdF1dccUUMGjSo1XMAAAAAAAD8/+bMmRNr1qyJ733vezFkyJDm61dddVXcf//9cfTo0aiuro6IiC1btqT+Sq8xY8bEmDFj0u7333C65xnxyjvxNm3aFJ///OdbtWdJ33F3LowePTp+9atfxYwZM2LixImxaNGi+PGPfxxt2rSJiIhLLrmkVfsdPHgw7rnnnujXr1/cfPPNZ13/85//PI4dOxY1NTXN0S4i4q1vfWtMnjw5IiJ+9rOftWoGAAAAAACAlvz+97+PpUuXxp133hm9e/eO3bt3N/9cd9118aY3vSm+/vWvx9/+9rdYvXp1rFy5sqTeQTHO9DwjIrZv3x6NjY2nfHRmKQp5x91Jl156aXz6058+5dof//jHiIjo1q1bq/batGlT7Ny5M3bu3Bk9e/Z8zf2Ghobo0aNH3HDDDTFr1qzYuXPnaV/n5B9xx44drZoBAAAAAACgJWvXro2IiLlz58bcuXNPuffMM8/E4sWLo7a2Nj71qU9Fp06dYtq0aXHttdcWMSolONvz3Lt3b0REvOMd72jVvoWEuyVLlsSCBQti6dKlccUVVzRfP3z4cNTX18ell14a3bt3b9WeXbp0iXHjxr3m+qFDh+Khhx6Kyy+/PEaPHh29evWKiP/3jr6tW7dGnz59TvmdrVu3RkREp06dWjUDAAAAAABASyZPntz8iX8t6dq1ayxZsuS/NxCvy9meZ9++fePPf/5zq/ctJNz16NEjXnrppVi+fHnU1tZGxCuf9TljxozYv39/TJ06tfkjM0vVpUuXGD9+/Guu79u3Lx566KHX3P/Yxz4WDz74YCxcuDAGDRoUHTp0iIhX4uF9990XEREjR44s94gAAAAAAADQKoWEu4EDB8a1114bP/rRj2L79u3Rs2fP2LBhQ2zcuDGGDBkSn/nMZ875DL169YqamppYsGBBfOITn4jhw4dH27Zto76+PrZt2xajRo2KESNGnPM5AAAAAAAAIKLA77ibN29eLFy4MH75y1/Ghg0b4vLLL4/JkyfHLbfcEtXV1f+VGSZMmBDdu3ePZcuWxapVq+L48ePRrVu3mD59+mu+ew8AAAAAAADOpTYnTpw4UfQQAAAAAAAA8L+ubdEDAAAAAAAAAMIdAAAAAAAApCDcAQAAAAAAQALCHQAAAAAAACQg3AEAAAAAAEACwh0AAAAAAAAkINwBAAAAAABAAsIdAAAAAAAAJCDcAQAAAAAAQALCHQAAAAAAACTwfxktyj7pS2tlAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Plot visualisation of the missing values for each feature of the raw DataFrame, df_stratabet_chances_raw \n", "msno.matrix(df_stratabet_chances_raw, figsize = (30, 7))" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "shotQuality 1530\n", "dtype: int64" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Counts of missing values\n", "tm_null_value_stats = df_stratabet_chances_raw.isnull().sum(axis=0)\n", "tm_null_value_stats[tm_null_value_stats != 0]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The visualisation shows us very quickly that there a few missing values in the `shotQuality` column, but otherwise the dataset is complete. This data is now ready for Data Engineering." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 3.2.4. Export Complete DataFrame" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [], "source": [ "df_stratabet_chances_raw.to_csv(data_dir_stratabet + '/raw/chances/' + 'stratabet_chances_all.csv', index=None, header=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 3.3. Key Entries" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 3.3.1. Data Dictionary\n", "The [StrataBet]( http://www.stratagem.co/) Events dataset has twelve features (columns) with the following definitions and data types:\n", "\n", "| Feature | Data type |\n", "|------|-----|\n", "| `eventId` | int64 |\n", "| `subEventName` | object |\n", "| `tags` | object |\n", "| `playerId` | int64 |\n", "| `positions` | object |\n", "| `matchId` | int64 |\n", "| `eventName` | object |\n", "| `teamId` | int64 |\n", "| `matchPeriod` | object |\n", "| `eventSec` | float64 |\n", "| `subEventId` | object |\n", "| `id` | int64 |" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 3.3.2. Import Data" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [], "source": [ "# Combine individual csv files to form one DataFrame, df_raw, using glob\n", "lst_files_key_entries = glob.glob(data_dir_stratabet + '/raw/key_entries/individual_competitions' + \"/*.csv\") # Creates a list of all csv files\n", "\n", "li = [] # pd.concat takes a list of DataFrames as an argument\n", "\n", "for filename in lst_files_key_entries:\n", " df_raw_temp = pd.read_csv(filename, index_col=None, header=0)\n", " li.append(df_raw_temp)\n", "\n", "df_stratabet_key_entries_raw = pd.concat(li, axis=0, ignore_index=True) # ignore_index=True as we don't want pandas to try an align row indexes" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 3.3.3. Initial Data Handling\n", "Let's quality of the dataset by looking first and last rows in pandas using the [head()](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.head.html) and [tail()](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.tail.html) methods." ] }, { "cell_type": "code", "execution_count": 18, "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", "
Trueindexcompetitiongsm_idkickoffDatekickoffTimehometeam_team1awayteam_team2teamkeyentryAreakeyentryType
01535649570ScoPr22424242016-08-0611:30:00RangersHamilton AcademicalRangersRightPass
11535659571ScoPr22424242016-08-0611:30:00RangersHamilton AcademicalRangersBoxPass
21535669572ScoPr22424242016-08-0611:30:00RangersHamilton AcademicalRangersRightPass
31535679573ScoPr22424242016-08-0611:30:00RangersHamilton AcademicalHamilton AcademicalRightPass
41535689574ScoPr22424242016-08-0611:30:00RangersHamilton AcademicalRangersBoxRun
\n", "
" ], "text/plain": [ " True index competition gsm_id kickoffDate kickoffTime hometeam_team1 \\\n", "0 153564 9570 ScoPr 2242424 2016-08-06 11:30:00 Rangers \n", "1 153565 9571 ScoPr 2242424 2016-08-06 11:30:00 Rangers \n", "2 153566 9572 ScoPr 2242424 2016-08-06 11:30:00 Rangers \n", "3 153567 9573 ScoPr 2242424 2016-08-06 11:30:00 Rangers \n", "4 153568 9574 ScoPr 2242424 2016-08-06 11:30:00 Rangers \n", "\n", " awayteam_team2 team keyentryArea keyentryType \n", "0 Hamilton Academical Rangers Right Pass \n", "1 Hamilton Academical Rangers Box Pass \n", "2 Hamilton Academical Rangers Right Pass \n", "3 Hamilton Academical Hamilton Academical Right Pass \n", "4 Hamilton Academical Rangers Box Run " ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Display the first 5 rows of the raw DataFrame, df_stratabet_key_entries_raw \n", "df_stratabet_key_entries_raw.head()" ] }, { "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", "
Trueindexcompetitiongsm_idkickoffDatekickoffTimehometeam_team1awayteam_team2teamkeyentryAreakeyentryType
1956821112817814GreSL27014772018-03-1115:15:00LamiaLevadiakosLevadiakosRightTurnover
1956831112827815GreSL27014772018-03-1115:15:00LamiaLevadiakosLamiaLeftTurnover
1956841112837816GreSL27014772018-03-1115:15:00LamiaLevadiakosLamiaRightPass
1956851112847817GreSL27014772018-03-1115:15:00LamiaLevadiakosLamiaBoxPass
1956861112857818GreSL27014772018-03-1115:15:00LamiaLevadiakosLevadiakosBoxRun
\n", "
" ], "text/plain": [ " True index competition gsm_id kickoffDate kickoffTime \\\n", "195682 111281 7814 GreSL 2701477 2018-03-11 15:15:00 \n", "195683 111282 7815 GreSL 2701477 2018-03-11 15:15:00 \n", "195684 111283 7816 GreSL 2701477 2018-03-11 15:15:00 \n", "195685 111284 7817 GreSL 2701477 2018-03-11 15:15:00 \n", "195686 111285 7818 GreSL 2701477 2018-03-11 15:15:00 \n", "\n", " hometeam_team1 awayteam_team2 team keyentryArea keyentryType \n", "195682 Lamia Levadiakos Levadiakos Right Turnover \n", "195683 Lamia Levadiakos Lamia Left Turnover \n", "195684 Lamia Levadiakos Lamia Right Pass \n", "195685 Lamia Levadiakos Lamia Box Pass \n", "195686 Lamia Levadiakos Levadiakos Box Run " ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Display the last 5 rows of the raw DataFrame, df_stratabet_key_entries_raw \n", "df_stratabet_key_entries_raw.tail()" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(195687, 11)\n" ] } ], "source": [ "# Print the shape of the raw DataFrame, df_stratabet_key_entries_raw \n", "print(df_stratabet_key_entries_raw.shape)" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Index(['True', 'index', 'competition', 'gsm_id', 'kickoffDate', 'kickoffTime',\n", " 'hometeam_team1', 'awayteam_team2', 'team', 'keyentryArea',\n", " 'keyentryType'],\n", " dtype='object')\n" ] } ], "source": [ "# Print the column names of the raw DataFrame, df_stratabet_key_entries_raw \n", "print(df_stratabet_key_entries_raw.columns)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The dataset has six features (columns). Full details of these attributes can be found in the [Data Dictionary](section3.3.1)." ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "RangeIndex: 195687 entries, 0 to 195686\n", "Data columns (total 11 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", " 0 True 195687 non-null int64 \n", " 1 index 195687 non-null int64 \n", " 2 competition 195687 non-null object\n", " 3 gsm_id 195687 non-null int64 \n", " 4 kickoffDate 195687 non-null object\n", " 5 kickoffTime 195687 non-null object\n", " 6 hometeam_team1 195687 non-null object\n", " 7 awayteam_team2 195687 non-null object\n", " 8 team 195687 non-null object\n", " 9 keyentryArea 195687 non-null object\n", " 10 keyentryType 195687 non-null object\n", "dtypes: int64(3), object(8)\n", "memory usage: 16.4+ MB\n" ] } ], "source": [ "# Info for the raw DataFrame, df_stratabet_key_entries_raw \n", "df_stratabet_key_entries_raw.info()" ] }, { "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", "
Trueindexgsm_id
count195687.000000195687.0000001.956870e+05
mean97843.0000006453.8474142.354363e+06
std56490.1154015040.2883731.125099e+05
min0.0000000.0000002.237445e+06
25%48921.5000002675.0000002.246823e+06
50%97843.0000005401.0000002.360808e+06
75%146764.5000008928.0000002.467223e+06
max195686.00000025384.0000002.701477e+06
\n", "
" ], "text/plain": [ " True index gsm_id\n", "count 195687.000000 195687.000000 1.956870e+05\n", "mean 97843.000000 6453.847414 2.354363e+06\n", "std 56490.115401 5040.288373 1.125099e+05\n", "min 0.000000 0.000000 2.237445e+06\n", "25% 48921.500000 2675.000000 2.246823e+06\n", "50% 97843.000000 5401.000000 2.360808e+06\n", "75% 146764.500000 8928.000000 2.467223e+06\n", "max 195686.000000 25384.000000 2.701477e+06" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Description of the raw DataFrame, df_stratabet_key_entries_raw, showing some summary statistics for each numberical column in the DataFrame\n", "df_stratabet_key_entries_raw.describe()" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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JSQkKLQTEee15ssvv8TX15e//OUvBAQE0K5dO2JiYli3bh3t2rXj0Ucfxd3dnZ9//pk9e/YQGxurs9/LseLiYgBKSkr+8FpCQgJt27blww8/JCsri5iYGB577DHq1KnDRx99xH333ce8efO45557eOuttzAYDH/6HkakPFBwJyIi8m/kmMhw6NGjB8OHD8dqtbJnzx5KSkowmUzY7XaaNGnCO++8w/Hjx3n55Zc5efKki1otIncDi8UC8IeH0pMnT5KWlkatWrWIjIykoKCA06dP079/f3x9fRXICBaLhZs3b1JaWorZbObcuXP07NmTJk2aMHr0aHbu3Mmbb75JTk7OH65TUn7Z7XbMZjN5eXkMHDiQwYMH06NHD5YuXUpOTs6/fK9j8cDcuXMZOXIk169fvxPNljvIarX+qZ/93u+vUxaLRaGdSAVnt9t55plneOONNygqKiI5ORmAoKAgXn31VRo3bszJkycZOHAgo0eP5rHHHsNisfDSSy853y/ly549e7j33nu5du0a7u7uFBQUsG3bNn755Rfn7/Tt25fIyEgWL16MxWKhWrVqDB8+nIyMDMLDw6lSpQrvvPMOnp6eFBcXqxpTKhTTiy+++KKrGyEiIlIeOCYt7HY7FosFu92Oj48PDRs2JCcnh48//pjg4GBq166N0WjEbrcTFRVFQkICp06dYuDAgdqzXaSCstvtzJkzhwMHDlC/fn3nd0FBQQHvvvsu1atXp3379pw9e5auXbuSlpbGuHHjmDFjBkeOHKF9+/b6/qggrFbrHyYtjEYjmZmZ7N27l9jYWIYOHUpaWhovv/wyfn5+rF69mp9//plBgwZpnFQwNpuN0aNHU1hYSM+ePbl58yZLly7F09OT2NhY5/kxt7o1tPvkk094/fXX+c///M8yZ93J/323nkW1bt06jh49StWqVf/umPi9W6sxP//8c86cOUONGjU0oSpSwdhsNuf1wmAwEBcXx7fffsuJEyfw8/MjNTUVAF9fX1q2bIm/vz+//PILZrOZunXrMmXKFMxms8L/cmj//v089thjpKen0759e8xmM2+88QYvv/wyhw4dAiA6Oprg4GBOnz7Nzp076dOnD0ajEX9/f2rUqMHly5fZtm0b+fn5NGrUSNt1S4Wj4E5EROTfwGq1Yjabyc/PZ9KkSXzyyScsWbKE7777jrp169KhQwdy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C6tXryYjI4PLly8zd+5cwsPDS7tpUgZs376dUaNGkZiYqL5GfpdqRB7Gtm3bSEhI4Msvv9TqKfm/Krm6Tqsf5PfofUb+E/U18kdUIyLWTcHd/y89PZ2XXnqJY8eOASi4EykF2dnZmt0uIv8jJpOJw4cPM2fOHCIiIujQoQPVq1cv7WZJGaK+Rv6IakQehjmU0daHIiLyqKivkT+iGhGxXpryxS970E+dOpXc3FxiYmLYs2dPaTdJpFzSIJmI/E/Z2NjQoEEDZs2aVdpNkTJKfY38EdWIPAwNkomIyKOmvkb+iGpExHppTT6wZMkSqlSpwtKlS+nevXtpN0dERERERETKOA2SiYjIo6a+Rv6IakTEOmnFHfDOO+/QtGlTbG1tuXDhQmk3R0RERERERERERERERMohBXdAixYtSrsJIiIiIiIiIiIiIiIiUs4puPt/EBcXV9pNkDJuypQpAPzzn/8s5ZZIWaUakT+iGpE/ohqRP6IakT+iGpGHoTqRP6IakT+iGpE/ohqRh7V9+/bSboL8D40ePZqcnBymT59e2k0p03TGnYiIiIiIiIiIiIiIiEgZoOBOREREREREREREREREpAxQcCciIiIiIiIiIiIiIiJSBii4ExERERERERERERERESkDFNyJiIiIiIiIiIiIiIiIlAEK7kRERERERERERERERETKAAV3IiIiIiIiIiIiIiIiImWAsbQbUNb07NmTnj17lnYzREREREREREREREREpJzRijsRERERERERERERERGRMkDBnYiIiIiIiIiIiIiIiEgZoOBOREREREREREREREREpAxQcCciIiIiIiIiIiIiIiJSBii4ExERERERERERERERESkDFNyJiIiIiIiIiIiIiIiIlAEK7kRERERERERERERERETKAAV3IiIiIiIiIiIiIiIiImWAgjsRERERERERERERERGRMkDBnYiIiIiIiIiIiIiIiEgZoOBOREREREREREREREREpAxQcCciIiIiIiIiIiIiIiJSBii4ExERERERERERERERESkDFNyJiIiIiIiIiIiIiIiIlAEK7kRERERERERERERERETKAAV3IiIiIiIiIiIiIiIiImWAgjsRERERERERERERERGRMkDBnYiIiIiIiIiIiIiIiEgZoOBOREREREREREREREREpAxQcCciIiIiIiIiIiIiIiJSBii4ExERERERERERERERESkDFNyJiIiIiIiIiIiIiIiIlAEK7kRERERERERERERERETKAAV3IiIiIiIiIiIiIiIiImWAgjsRERERERERERERERGRMkDBnYiIiIiIiIiIiIiIiEgZoOBOREREREREREREREREpAxQcCciIiIiIiIiIiIiIiJSBii4ExERERERERERERERESkDFNyJiIiIiIiIiIiIiIiIlAEK7kRERERERERERERERETKAAV3IiIiIiIiIiIiIiIiImWAgjsRERERERERERERERGRMkDBnYiIiIiIiIiIiIiIiEgZoOBOREREREREREREREREpAxQcPf/tXf/sV7WdR/HX8fxywShhVmKqEtGK0QgTVJpouGPCFM5DbCENKPaRElGZssYYq4lodSmc5Q5FUtryIYmGlo5ctIvakJ2DPJImElATCU4h1/3H+6c+z47Iuh9jHf3/XhsZ2ff6/rse32+13X999x1fQAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAPMRH24AABLaSURBVAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAA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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Plot visualisation of the missing values for each feature of the raw DataFrame, df_stratabet_key_entries_raw \n", "msno.matrix(df_stratabet_key_entries_raw, figsize = (30, 7))" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Series([], dtype: int64)" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Counts of missing values\n", "tm_null_value_stats = df_stratabet_key_entries_raw.isnull().sum(axis=0)\n", "tm_null_value_stats[tm_null_value_stats != 0]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The visualisation shows us very quickly that there a few missing values in the `shotQuality` column, but otherwise the dataset is complete. This data is now ready for Data Engineering." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 3.3.4. Export Complete DataFrame" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [], "source": [ "df_stratabet_key_entries_raw.to_csv(data_dir_stratabet + '/raw/key_entries/' + 'stratabet_key_entries_all.csv', index=None, header=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 3.4. Match Info" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 3.4.1. Data Dictionary\n", "The [StrataBet]( http://www.stratagem.co/) Events dataset has twelve features (columns) with the following definitions and data types:\n", "\n", "| Feature | Data type |\n", "|------|-----|\n", "| `eventId` | int64 |\n", "| `subEventName` | object |\n", "| `tags` | object |\n", "| `playerId` | int64 |\n", "| `positions` | object |\n", "| `matchId` | int64 |\n", "| `eventName` | object |\n", "| `teamId` | int64 |\n", "| `matchPeriod` | object |\n", "| `eventSec` | float64 |\n", "| `subEventId` | object |\n", "| `id` | int64 |" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 3.4.2. Import Data" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [], "source": [ "# Combine individual csv files to form one DataFrame, df_raw, using glob\n", "lst_files_key_entries = glob.glob(data_dir_stratabet + '/raw/key_entries/individual_competitions' + \"/*.csv\") # Creates a list of all csv files\n", "\n", "li = [] # pd.concat takes a list of DataFrames as an argument\n", "\n", "for filename in lst_files_key_entries:\n", " df_raw_temp = pd.read_csv(filename, index_col=None, header=0)\n", " li.append(df_raw_temp)\n", "\n", "df_stratabet_key_entries_raw = pd.concat(li, axis=0, ignore_index=True) # ignore_index=True as we don't want pandas to try an align row indexes" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 3.4.3. Initial Data Handling\n", "Let's quality of the dataset by looking first and last rows in pandas using the [head()](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.head.html) and [tail()](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.tail.html) methods." ] }, { "cell_type": "code", "execution_count": 28, "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", "
Trueindexcompetitiongsm_idkickoffDatekickoffTimehometeam_team1awayteam_team2teamkeyentryAreakeyentryType
01535649570ScoPr22424242016-08-0611:30:00RangersHamilton AcademicalRangersRightPass
11535659571ScoPr22424242016-08-0611:30:00RangersHamilton AcademicalRangersBoxPass
21535669572ScoPr22424242016-08-0611:30:00RangersHamilton AcademicalRangersRightPass
31535679573ScoPr22424242016-08-0611:30:00RangersHamilton AcademicalHamilton AcademicalRightPass
41535689574ScoPr22424242016-08-0611:30:00RangersHamilton AcademicalRangersBoxRun
\n", "
" ], "text/plain": [ " True index competition gsm_id kickoffDate kickoffTime hometeam_team1 \\\n", "0 153564 9570 ScoPr 2242424 2016-08-06 11:30:00 Rangers \n", "1 153565 9571 ScoPr 2242424 2016-08-06 11:30:00 Rangers \n", "2 153566 9572 ScoPr 2242424 2016-08-06 11:30:00 Rangers \n", "3 153567 9573 ScoPr 2242424 2016-08-06 11:30:00 Rangers \n", "4 153568 9574 ScoPr 2242424 2016-08-06 11:30:00 Rangers \n", "\n", " awayteam_team2 team keyentryArea keyentryType \n", "0 Hamilton Academical Rangers Right Pass \n", "1 Hamilton Academical Rangers Box Pass \n", "2 Hamilton Academical Rangers Right Pass \n", "3 Hamilton Academical Hamilton Academical Right Pass \n", "4 Hamilton Academical Rangers Box Run " ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Display the first 5 rows of the raw DataFrame, df_stratabet_key_entries_raw \n", "df_stratabet_key_entries_raw.head()" ] }, { "cell_type": "code", "execution_count": 29, "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", "
Trueindexcompetitiongsm_idkickoffDatekickoffTimehometeam_team1awayteam_team2teamkeyentryAreakeyentryType
1956821112817814GreSL27014772018-03-1115:15:00LamiaLevadiakosLevadiakosRightTurnover
1956831112827815GreSL27014772018-03-1115:15:00LamiaLevadiakosLamiaLeftTurnover
1956841112837816GreSL27014772018-03-1115:15:00LamiaLevadiakosLamiaRightPass
1956851112847817GreSL27014772018-03-1115:15:00LamiaLevadiakosLamiaBoxPass
1956861112857818GreSL27014772018-03-1115:15:00LamiaLevadiakosLevadiakosBoxRun
\n", "
" ], "text/plain": [ " True index competition gsm_id kickoffDate kickoffTime \\\n", "195682 111281 7814 GreSL 2701477 2018-03-11 15:15:00 \n", "195683 111282 7815 GreSL 2701477 2018-03-11 15:15:00 \n", "195684 111283 7816 GreSL 2701477 2018-03-11 15:15:00 \n", "195685 111284 7817 GreSL 2701477 2018-03-11 15:15:00 \n", "195686 111285 7818 GreSL 2701477 2018-03-11 15:15:00 \n", "\n", " hometeam_team1 awayteam_team2 team keyentryArea keyentryType \n", "195682 Lamia Levadiakos Levadiakos Right Turnover \n", "195683 Lamia Levadiakos Lamia Left Turnover \n", "195684 Lamia Levadiakos Lamia Right Pass \n", "195685 Lamia Levadiakos Lamia Box Pass \n", "195686 Lamia Levadiakos Levadiakos Box Run " ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Display the last 5 rows of the raw DataFrame, df_stratabet_key_entries_raw \n", "df_stratabet_key_entries_raw.tail()" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(195687, 11)\n" ] } ], "source": [ "# Print the shape of the raw DataFrame, df_stratabet_key_entries_raw \n", "print(df_stratabet_key_entries_raw.shape)" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Index(['True', 'index', 'competition', 'gsm_id', 'kickoffDate', 'kickoffTime',\n", " 'hometeam_team1', 'awayteam_team2', 'team', 'keyentryArea',\n", " 'keyentryType'],\n", " dtype='object')\n" ] } ], "source": [ "# Print the column names of the raw DataFrame, df_stratabet_key_entries_raw \n", "print(df_stratabet_key_entries_raw.columns)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The dataset has six features (columns). Full details of these attributes can be found in the [Data Dictionary](section3.3.1)." ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "RangeIndex: 195687 entries, 0 to 195686\n", "Data columns (total 11 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", " 0 True 195687 non-null int64 \n", " 1 index 195687 non-null int64 \n", " 2 competition 195687 non-null object\n", " 3 gsm_id 195687 non-null int64 \n", " 4 kickoffDate 195687 non-null object\n", " 5 kickoffTime 195687 non-null object\n", " 6 hometeam_team1 195687 non-null object\n", " 7 awayteam_team2 195687 non-null object\n", " 8 team 195687 non-null object\n", " 9 keyentryArea 195687 non-null object\n", " 10 keyentryType 195687 non-null object\n", "dtypes: int64(3), object(8)\n", "memory usage: 16.4+ MB\n" ] } ], "source": [ "# Info for the raw DataFrame, df_stratabet_key_entries_raw \n", "df_stratabet_key_entries_raw.info()" ] }, { "cell_type": "code", "execution_count": 33, "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", "
Trueindexgsm_id
count195687.000000195687.0000001.956870e+05
mean97843.0000006453.8474142.354363e+06
std56490.1154015040.2883731.125099e+05
min0.0000000.0000002.237445e+06
25%48921.5000002675.0000002.246823e+06
50%97843.0000005401.0000002.360808e+06
75%146764.5000008928.0000002.467223e+06
max195686.00000025384.0000002.701477e+06
\n", "
" ], "text/plain": [ " True index gsm_id\n", "count 195687.000000 195687.000000 1.956870e+05\n", "mean 97843.000000 6453.847414 2.354363e+06\n", "std 56490.115401 5040.288373 1.125099e+05\n", "min 0.000000 0.000000 2.237445e+06\n", "25% 48921.500000 2675.000000 2.246823e+06\n", "50% 97843.000000 5401.000000 2.360808e+06\n", "75% 146764.500000 8928.000000 2.467223e+06\n", "max 195686.000000 25384.000000 2.701477e+06" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Description of the raw DataFrame, df_stratabet_key_entries_raw, showing some summary statistics for each numberical column in the DataFrame\n", "df_stratabet_key_entries_raw.describe()" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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JSQkKLQTEee15ssvv8TX15e//OUvBAQE0K5dO2JiYli3bh3t2rXj0Ucfxd3dnZ9//pk9e/YQGxurs9/LseLiYgBKSkr+8FpCQgJt27blww8/JCsri5iYGB577DHq1KnDRx99xH333ce8efO45557eOuttzAYDH/6HkakPFBwJyIi8m/kmMhw6NGjB8OHD8dqtbJnzx5KSkowmUzY7XaaNGnCO++8w/Hjx3n55Zc5efKki1otIncDi8UC8IeH0pMnT5KWlkatWrWIjIykoKCA06dP079/f3x9fRXICBaLhZs3b1JaWorZbObcuXP07NmTJk2aMHr0aHbu3Mmbb75JTk7OH65TUn7Z7XbMZjN5eXkMHDiQwYMH06NHD5YuXUpOTs6/fK9j8cDcuXMZOXIk169fvxPNljvIarX+qZ/93u+vUxaLRaGdSAVnt9t55plneOONNygqKiI5ORmAoKAgXn31VRo3bszJkycZOHAgo0eP5rHHHsNisfDSSy853y/ly549e7j33nu5du0a7u7uFBQUsG3bNn755Rfn7/Tt25fIyEgWL16MxWKhWrVqDB8+nIyMDMLDw6lSpQrvvPMOnp6eFBcXqxpTKhTTiy+++KKrGyEiIlIeOCYt7HY7FosFu92Oj48PDRs2JCcnh48//pjg4GBq166N0WjEbrcTFRVFQkICp06dYuDAgdqzXaSCstvtzJkzhwMHDlC/fn3nd0FBQQHvvvsu1atXp3379pw9e5auXbuSlpbGuHHjmDFjBkeOHKF9+/b6/qggrFbrHyYtjEYjmZmZ7N27l9jYWIYOHUpaWhovv/wyfn5+rF69mp9//plBgwZpnFQwNpuN0aNHU1hYSM+ePbl58yZLly7F09OT2NhY5/kxt7o1tPvkk094/fXX+c///M8yZ93J/323nkW1bt06jh49StWqVf/umPi9W6sxP//8c86cOUONGjU0oSpSwdhsNuf1wmAwEBcXx7fffsuJEyfw8/MjNTUVAF9fX1q2bIm/vz+//PILZrOZunXrMmXKFMxms8L/cmj//v089thjpKen0759e8xmM2+88QYvv/wyhw4dAiA6Oprg4GBOnz7Nzp076dOnD0ajEX9/f2rUqMHly5fZtm0b+fn5NGrUSNt1S4Wj4E5EROTfwGq1Yjabyc/PZ9KkSXzyyScsWbKE7777jrp169KhQwdycnJ47733CAgIcIZ3NpuN6OhoHnjgAefqZU2qilQ8paWlfP3116xduxYvLy8+/vhjgoKCiI6O5sKFC+zbt4/g4GCefPJJmjZtyssvv4yvry+bN2/m7NmzdO/eXRMeFYDj/Bj4bbL84MGDXLp0ifj4eFJSUvjyyy/59NNPadWqFVOmTMHLy4vs7GzWrFlDREQEbdq0wWg06jpTzjm2xzQYDBiNRrZs2cKAAQPo1q0bXbt25dSpUyxfvhwPD48/hHe/D+1eeeUVJkyYQO/evV3VHblNjEYj+fn59O7dm5UrV7JhwwbWrFlDs2bNCA4O/ofvu3WMfPrpp0ycOJH27ds7q2tEpHw7ceIEy5cvJyEhAXd3d+f2uVarlbCwMBo3bsy+ffv47rvvCAoKokaNGgB4e3tTu3ZtOnXqRMeOHUlLS8NoNDqfo6X8OHToEA899BD9+vVjzJgxzvuMFi1aEBMTw40bN5g1axb79+8nPz+fBx98kI8//hiTyUTdunUBCAgIoEaNGmRlZbFw4UKMRiMNGjRwZbdE7jgFdyIiIv8Dvz9k2Wg0UlBQQK9evbh27ZrzAWXXrl0sXbqUli1b0rVrV65fv86sWbMICgqiZs2af5ho12SqSMVkMpmIiooiMzOTpUuXcuzYMQYPHkxwcDDFxcVs2bKFFStWUK9ePWbOnImHhwc5OTl8/vnnxMbG0rZtW31/VACO/+MRI0awcOFC9u7dy1dffUVRURH33nsvVatW5cSJE1y7do3Q0FAyMzP57LPP2L17N6+++iphYWEaJ+WcI9x1LCRasWIFBw4coG/fvoSGhgLQoUMHvv/+e5YvX46npydxcXF4enqWqeZ0hHYTJ06kV69eruyS/Jvdukhs4cKFXL16lVdeeYUOHTpw4sQJPv30U9LS0pzj5VZ/L9idNGkSGRkZd7QPIuIaOTk59O3bl82bN7N27VquXr2Kt7c399xzj/P6ERgYSOPGjdmwYQOHDx/Gz8/P+WzsWFhyK1Xqli8HDx5k0KBB3HPPPUyfPt0Z2jmuPfHx8XTo0IFWrVrx448/snLlSlauXIm/vz9ZWVm0atXKeeZhQEAAsbGxWCwWMjIyCAwMdGXXRO44BXciIiL/A4WFhbi5uQH/NYkxc+ZMfv31V9566y26detGp06dqFOnDvv372fx4sVkZGTQrl07bt68yfTp06lRowZxcXEu7omI3A1sNhtBQUFs3bqVM2fOEBkZSWhoKHXq1CE2Nhaj0ciRI0cIDg7G19eXU6dOMXfuXA4ePMikSZMICQlxdRfkNrp1ov3UqVOsWrWKV199lYyMDIKDg5k1axZWq5U+ffrQsGFDDhw4wIYNGzhw4AAeHh5MnTrVOWkm5Zdj+8KioiK6d+/OTz/9RE5ODj///DM5OTnUr18fHx8f4Lfw7tSpU6xYsQKLxULNmjWdk2vz58/n1VdfVWhXDjm2oystLeXGjRvs3r2b2NhYOnfuTHR0NDVr1iQzM5MFCxbQtGnTMuHd3wvtNEZEKms8plgAACAASURBVBaLxcKPP/5IfHw8sbGx7N27lzlz5vDzzz9TXFxMfHw8AMHBwdSvX59169Zx+PBh/P39iY+PV0hXzu3fv5+HH36YpKQkzp8/T05ODi1btgRwVmY6dhmKjIykefPmdOnShcuXL3PhwgWOHDlC3bp1iYmJcX5mYGDgv6wEFymvFNyJiIj8Nx0/fpwnn3ySVq1a4evrW2a7IJPJRN++fTEYDBgMBipVqkT16tVZvXo1169fp1WrVtSuXZuIiAi6du2qhxeRCu73Z4PYbDbS09P56aef2Lt3LxaLhdTUVFJSUggICOD8+fN89NFHfPfdd1gsFqZNm6ZAppxznEMF8PPPP3Po0CHOnDnDQw89RNWqValevToeHh7MmjWL0tJSOnfuTPfu3WnZsiUPPfQQXbp0oVKlSi7uhdxuNpsNo9GIxWJh7dq1ZGVlMXXqVIYNG0ZOTg579+4lOzubmjVr4uXlBfwW3n3zzTdcuXKFnj17YjAY+Pzzz3nppZcUyJRDjmrMvLw8hgwZwtKlS9m4cSMJCQk0adIEk8lEaGgotWvXJjMzk4ULFzor7xzjCxTaiVRk7u7u5OfnM2/ePCZOnEj//v2JiIhg1apVbNq0iR07dmCxWAgJCSE6Opq0tDTWr1/Phg0bSExMpEqVKq7ugtwme/bs4dFHH2XAgAGMHz+e0NBQZs2axY0bN8qEd7f+6ebmhp+fH23atKFJkyYUFRWxfft22rVrh6enp/P3NGciFZWCOxERkf+mvXv3EhkZSatWrZyrxiwWCwsXLsTNzY1u3bphMBicW05FRUXxzTffcPHiRbp27Yq3tzcpKSnOCTbdiIpUTLcGMqdOncJqtZKQkEBiYiJJSUkcOnSIffv2UVpaSmpqKjVr1qRdu3ZkZGTQv39/unXrRuXKlV3cC7ndHNeIMWPG8O6777Jz504AunbtipeXFz4+PsTExODh4cH7779PUVERTZs2JSgoCC8vL9zd3V3ZfLlDDAYDJSUlvPTSS2zbtg0/Pz/nQqKWLVvy008/sWXLFq5fv14mvOvSpQudO3d2njO0evVq+vXrR48ePVzcI/l3clxvSktLefTRR7FaraSmpmIymdizZw9JSUlERUVhNBoJCQmhdu3aHDp0iLfffpsuXboQFBQE/Bbavfrqq0yYMEGhnUgFlZiYyN69e9m6dStdunShQYMG9OnTh5MnT7Jt2zYyMzNZuXIlAMnJyaSnp/PLL7/w8MMP67m3nLJarbz55pukpKTw3HPP4e/vT1xcHEFBQbz//vtkZ2c7w7vfcyxiDA4OxmKxsG7dOtLT0wkICLjDvRC5+yi4ExER+ZPy8vJwd3cnISGB+vXrU1RUxHPPPUd4eDiVK1fGZrMxb948wsPDqVmzZpkHk927dzsrIW79uR5eRCqmW0O78ePHM336dBYtWsTx48epV68e1apVIzExkUOHDrF//36sViuJiYmcPn2aatWq4evr6zz/Qcofu91e5ryxKVOmsH37dnr06EF4eDh79+4lNzeX1q1bAzjDO29vb95//30AGjVq5Krmi4sYjUY2bNhAZmYmBQUFZGRkOIPbVq1aOcO77OxsEhMT8fb2BnAuQDKbzTRv3pykpCRXdkNuA8cWqmfPnuXYsWOMGzeOzp0706ZNGw4dOsTixYtJTk6mUqVKzvDOUc39wAMPYDQa2bp1K88//7wq7USEgoICvv76a+rUqUNUVBSrV6/mgw8+YOTIkbRo0YLCwkI++eQT5s6dS2pqKk888YRzgYief8sfo9FI69atadOmjfP5xN3dnbi4OEJCQpg1a9Y/DO9uPXv53LlzLF26lKZNmxIdHX2nmi9y11JwJyIi8ifk5ubywQcfUFJS4ryJPH78OB9++CEHDhwgJSWFRo0aOc8e8vHxoVatWpSWlnLhwgXmzZtHamrqP1xpJiIVi2PSYsSIEezZs4eHH36YyMhIduzYweHDh0lLS3OGd4cPH2bjxo3MmzeP9evX07NnT+dZVFK+FBUVkZWVha+vr3OM7Nq1i+vXr3Pvvffy8MMP06hRI4KDg/nggw/KTIL4+PgQHR1NYGAgHTp00FkgFcCtE6COHQDatm3LzZs32b9/PxcuXKBBgwbO74tWrVpx4cIFPv/8c8LCwkhJSXF+luNzbp1Ak/Jl/PjxvPjii9y4cYNevXoRHByMj48PzZo1IzMzk88//7xMeBcREUGbNm0wGo3Y7XYCAwNJS0vjvvvuc3VXROQOclRE3bq9e2JiIl988QU3b97EYrHw7LPP8thjjzFs2DBSU1Pp1KkTiYmJBAcHl6m0U2hXPlmtVtzd3Z3HhTjuT9zd3YmNjf2X4R3AL7/8woIFC7h69SqPP/44fn5+d7gXIncfBXciIiJ/wrVr15g9ezY//PADfn5+TJ48mUGDBnHPPfdw8OBBvvrqK1q0aEHr1q05ffo0s2fP5sCBA6xZs4YlS5ZgMpl4++23nZMfmhgTkWXLlrFp0ybeeust7rvvPuLi4ti1axc//PADmZmZztWmSUlJeHh4EBgYyPjx44mKinJ10+U2KC0t5eGHHyYvL89ZLbdr1y4effRR9u3bR9OmTalTp84/nQTx9fWlbt26hIaGurIrcgc4KuQKCwuZPXs227ZtIzs7mxo1apCWlsa1a9fYtWsXFy5coF69es7wrmXLlnh5efHggw9qArWc+/39ZsOGDfnpp584evQocXFxxMTE4Obm5gzvDh48yKJFi4iNjaVq1apl3mswGPDy8qJq1aqu6IqIuJBjK+YBAwZQq1YtQkNDMZlM+Pr68u6777Jx40Yef/xxhgwZUmY3iJiYGFq2bKnjISoAo9HoHCM1a9YkPDzcGfT+2fDOz8+PoKAgBg0apLOZRf4/BXciIiL/xJkzZ/D19SUoKIioqCgWLFjA2rVryc3NZcCAASQmJuLl5cWhQ4dYt24dHTp0oGfPnlStWpVjx44REBBAamoqU6dOxWw2Y7FYnNvjiUjFc+tE6pYtW7h48SIPPfQQnp6erFq1inPnztGkSRO+/fZbDh8+TIsWLYiKiqJBgwa0bduW8PBwF/dAbofi4mLc3d3x8fGha9euuLu7k5OTQ3x8PBEREezbtw+z2Uzjxo2d59bFxsYSGhrKRx99xE8//UTbtm0BrWavCGw2GyaTiby8PHr37s2+ffs4efIky5cvx93dnQYNGtCiRQt+/vlnduzY8YfwLjU1VVuWlXOO+02LxUJBQQFWqxVfX19atmzJkSNHWL16NfHx8URFRWEymZzh3ebNmzl37hxdunRxdRdE5C5SWFjIZ599xq+//uoM47y9vfnqq69ITk5m4sSJ/3Q3CF1ryr/fj5Fb5zwc961hYWF88MEHnDt3jvbt2ztfdzwfVapUCX9/f1c0X+SupOBORETkH7h48SKDBw/G19eXmjVrUqVKFWbNmkVxcTE1atSgcuXKVKlShYSEBLy9vTl8+DDr1q2jfv36tGzZkgceeIBOnTrRtGlT5wSZ2Wx2dbdE5A6yWCxkZ2fz448/YjabsdvtuLu7Y7fb2bRpE1euXGHAgAHs37+fsWPHMnjwYB5//HEOHz7M1q1bWbFiBfXq1XNuXSblT15eHh06dKC0tJS+ffvi7u7Om2++yYIFC2jcuDGNGzfG19eXefPmUVhYSIMGDXB3d3dOgnh5ebF8+XK6devmPLNMyjdH9cPAgQPx8/Nj2rRp9OzZk3PnzrFo0aIy4d3FixfZtWsX3333HS1atHCeeQeaSC2vHNWY+fn5/Md//Acff/wxmZmZmM1mEhMT6dChA7t372bZsmXExMQ4wztvb2/S09PJyMjQzhAiUobZbCYrK4vdu3fToUMHfHx8CAgIwGg0smTJElq3bk1ERIR2lqnAbh0jHTt2xMfHp8z2qo77Vk9PT44ePUq3bt2cr2nMiPx9Cu5ERET+AZPJRExMDJ06daK4uBiz2UzlypVp0qQJGzdu5Pz584SHh5cJ744cOcKWLVuIi4v7w3Z2miATqVjy8/P561//yqxZs/joo49YtmwZJ06cwN/fn6pVq1K7dm0CAgKoUaMGQ4YMoWXLljz11FMA7NmzB4BatWrRvHlznVdWTuXl5dG1a1eio6N56qmn8PX1BWD79u0cPHiQM2fOkJKSQtOmTQkICGDWrFnk5uaWCe8SEhLo37+/xkgFs2/fPnbu3MmECROIj4+noKCAb7/9Fi8vL7788kvMZjMNGzakefPmnDp1iuLiYrp06aLJsXLObrc7qzF79OjhrNw9evQoBw4cIDAwkOTkZNLT09m1axfLly8nNjaWypUrYzab8fT0/MNZViJSsTiqse12O4Dz3LJatWoxa9YsioqKaN68OQBeXl7s3LmTq1evkpaWVmZxiJRf/2qMFBYW0rx58z9cR9zd3alVqxa9evXCaDTqWiPyLyi4ExER+Z0rV66QlZVFWFgY0dHRWCwWhgwZwoYNGxg+fDh16tQhKiqK5cuXc/78ecLCwpzhnZ+fH1999RU3b96kXbt2ru6K3CbXrl3DYrGUOcdB5FZ5eXn07NmT0tJS0tPT6dmzJ56ennz99dcsXryY4OBgGjZsSEJCApcvX2bx4sU8+uijREdHk5WVxapVq6hXrx7jxo0jLCzM1d2R26CgoICMjAxiY2N5+eWXiYyMdL7WvHlzcnNz2bp1698N7/Lz86lXr54zvPtn21NJ+XT06FGWLFlCz549CQ0N5f333+fo0aOMGTMGgLlz5+Lr60t8fDzp6emkp6drkqwCMBgMWCwWnn/+eTw9PZkyZQo9e/bEarWybds2Tp06hZ+fHzVr1iQ9PZ09e/bwwQcf0Lx58zJnCmmMiFRMjq2YCwoK+Otf/8r58+dJTk7Gzc3NGcp9/fXXpKamEhoaSkhICOfPn2fx4sV07dpVi4gqgD87RurWrUtISMgf3m82mzEYDNjtdi1sFvkXFNyJiIjcorS0lEWLFvH111/TrFkzzGYzJpOJM2fO8M0333Do0CHatm3r3Cpz+fLlXLx4keDgYIKDg4mMjKRRo0b0799fN6Ll1IULF+jcuTNubm7UqFFDE+byB44qqkqVKjF58mTuvfde4uPjad26NUlJSVy9epUFCxYQGhpKrVq1KC4uZvbs2RQVFWEwGJg/fz6ZmZmMHz9eEyDlVF5eHn379uXHH39k+PDh1K9fH/itWsaxzVSjRo3Izc3l66+/LhPeBQYG8s4772C1WmnatKkm2CuAW8M2x99zcnLIzs6mW7dubN68mcmTJ/Paa6+RlpZGbm4umzdvZufOnRQUFNCyZUtNklUgRUVFzJ07l/vvv5/mzZtz/fp1Nm7ciIeHB/n5+ezdu5fw8HDntpmOsxI1NkQqNqvVislkoqioiC+//JJVq1Zx/PhxPvvsM7y9vfH39ycxMZE5c+ZQvXp1atasCUBERATXr1+nb9+++h4p5/47YyQ6OpqaNWv+w+1Tdf8q8q8puBMREbmFyWQiMzOThQsXcvnyZZ588kkqVapEv379yMvLY/v27c7wLiEhwVl5t2/fPqZMmcL58+cZPHiw80w7PbyUPwEBARw+fJgVK1YQEBBA9erVFd6JU35+Pg888ABxcXG88sorVK5cGfhtUYDJZKJq1apUr16dS5cu8cknn5CSkkJSUhKBgYEsWLCAnTt3kp2dzcyZM4mNjXVxb+R2yMvL44EHHsDHx4fk5GQ+/vhjateuTbVq1ZzBiiOc+X14l5qaSlpaGuHh4bRt21bBbgVgsVgwmUxYLBby8vK4evUqAQEBVKpUiQYNGhAUFMRLL71Es2bNeOihh7BarezZswd/f38mT55M9+7dnfcimiQr/2w2G1euXOH999+nQ4cOJCYm8vHHH7Ny5UpmzJhBkyZN+PDDDzl58iS//vorrVq1olWrVrpvFangHFVURUVFZGRkEBwczAsvvEBaWhpXr15l6dKlrFy5kpiYGEwmE8uXLyc9PR1fX18CAgLo3LmzvkfKuf/NGBGR/xkFdyIiIr9Tv359rl69yrJlywgJCaF3795Uq1aNWrVqUVBQwI4dO8pU3kVHR1NcXExCQgKTJ0/GZDIBOtOuPHI8jHbq1IkzZ84wf/58goKCqFatGl5eXq5unriYxWLhww8/ZMuWLUyYMIHExETnayaTybniNDIyktDQUHbt2sWvv/5Ku3btqF27Nt27d6d9+/YMHDiQKlWquLAncrs4Qrtq1aoxY8YMUlJS+PXXX3nnnXeoXbs21atXx2az/d3wbufOnWRmZtKoUSMaN26s0K4CsFqtmM1m8vLyGDFiBB9++CHz589ny5YtBAYGUrVqVTw9PZk3bx4RERHUrVuXnJwcPvzwQ8LDw+nXrx9GoxGLxaJ7knLq95PkBoOBgIAAjEYjtWrV4tKlSzz//PO89tpr1K1bFx8fHxYvXkx4eDjZ2dllzj3UGBGpWG6thDIYDJSUlLBy5UrOnj3LwIEDiY+Pp1KlSnTs2JHk5GS8vb2ZOnUq+fn5XL58mfj4eOe9ruP7Q98j5cu/a4wo0BX5n1FwJyIicouSkhJMJhOLFy/mxo0bFBcXYzQaiYmJcW5r5wjvDh8+TNu2bYmLi6NJkyZ07NjRuSpeN6bl063bjNWoUYN169Zx9OhRPDw8iImJUeVdBZaXl8drr71GUlIS2dnZLFq0iBYtWhASEuJ86HVsVWcwGKhatSpXr15l06ZNZGRk4Ofnh6+vL2FhYQqByynH9piVK1dm8uTJhIWFERoaSmxsLFevXv2X4d3ly5c5efIkXbp00erlCsJoNFJUVETfvn0xm810796drl27cvLkSebPn4/dbqdJkyacPn2aL774gm+//ZaFCxdiMBiYMWMGRqMRu93uXFAk5YvFYsFsNlNcXMy3337L4cOHycrKokqVKtSvX5+IiAhWrVpFfn4+Y8eOpaSkhMOHD3Py5ElGjhzJ8OHDnWNE1ZgiFcuvv/7KoUOHCAkJwd3dHbvdzvPPP8+cOXPw9PTkySefxGQyOZ+No6KiSEtLo0OHDsBvZ8IfO3aMPn366Lm3nNIYEXE9BXciIiL815kxjsmttLQ0HnvsMW7cuMHKlSvJz88nJiaGsLAwatWqRWFhITt37mTbtm106tQJDw8P52fpxrT8cUxqGY1G8vPzuf/++zl8+LBzzKxfv57AwECio6MVulRAxcXF9OjRA3d3dwYOHEhSUhLfffcdc+fOpUWLFoSGhpYJ7xzbZnp6evLFF1/QrFkzqlat6upuyG1UXFxMnz59iIyM5K233iIkJMT5WmhoKHFxcf+y8q5Zs2Z06NCBsLAwF/ZE7oRbg5Tt27ezadMmJk6cSLt27YiNjcXDw4PVq1czcOBAvL29uf/++ykpKcFoNJKcnMzbb7+N2WzWCvdyzLFlmWNBwJYtW1i2bBk7duxg3bp1pKSkEBoaSmZmJitWrKBdu3ZcvHiR6dOn4+fnx7BhwxTaiVRgGzZs4J133iE1NRVPT08OHz7MAw88QGZmJsePH8fDw4P69euXuZbYbDaCg4OpV68eTZs2ZcmSJQQGBpbZYULKD40REdfTXbyIiFR4jgq5kpISTp48yTfffMO1a9cwm82MHTuWjIwMVq9ezdy5c7l06RK+vr4MHTqU9u3b4+fnp5Xs5diNGzeAsucCvfnmm/j5+TFx4kQWLlzI6tWreeCBB/j4449ZsWIFOTk5rmquuMjp06f59ddfad++PUFBQQQEBDBmzBiqVavGoEGD+P77753VdgBubm4AnD17lsjISOLi4lzZfLkDTp8+zcWLF+nSpQv+/v6cPXsWq9XqfD0hIYGnn36ae++9l2HDhrFt2zbnBIjjT0DbY5ZjV69e5fPPP6egoKDMNef8+fNkZ2dTq1YtjEYjK1asYNSoUYwaNYrAwEBeeOEF8vPzGTVqFG+88Qbjxo3DbDY7z8aT8sloNFJaWsrTTz+Nv78/r7/+Ohs3buS9997jhx9+YNy4cVy7do0WLVqQmJhIt27dePrppykqKnJWYzoWBYhIxdO2bVt8fX156qmn6NSpEwsXLiQsLIwpU6ZQq1Ytli5dyooVK4Dftnt33I/Y7XbMZjORkZF4enpy4cIFF/dEbheNERHXU8WdiIhUaLeuWB4wYABffvklc+fOZdOmTXz//fc0a9aM1q1bk52dzerVq8nOzsZqtXLgwAH69OlD9+7dNflRTh0/fpxnn32W2rVrExoa6vz5559/7jz70Gw2YzAYaNu2LWfPnmXu3LkEBgbqzLsKIj8/n+3bt+Pj48OePXv46aefmD9/PidOnKBv377Oyrv58+fTvHnzMuPo+vXrfPbZZ/j5+dG5c2fc3d1d2BO5XW4dI3v37uWnn37ik08+4ciRI7Rt2xY3NzdnxcvvK+9SUlKIjo4us0WvlF/79+9n9uzZ+Pn5ER4ezjfffEN0dDR5eXmsX7+eJk2acOjQIZ599llGjRrFY489RkFBAZMnT6Z+/fpER0eX+TyNmfKluLgYk8lUZsvlixcvsmDBAh5++GFatWqFn58f+/btY+PGjTz55JPY7Xbi4uJIT0+ndu3atGzZkrFjxyrYFRE8PT1p0qQJs2bNwm6388gjjxAdHU1QUBBNmzZly5YtHDhwAE9PT5KSkjAYDM5gBuDEiRMsW7aMoKAg7r33XgA9C5czGiMirqfgTkREKjTHIcuDBg3C3d2dMWPG0K9fP1JSUpg+fTpnz56lbdu2tGzZkqysLFauXMnq1as5duwYjz32mHNVmSbIyp/Tp0/j5+dHx44dywSzK1as4MqVK/Tp08c5fkwmE/feey/r16/n4MGDlJSUkJSUVGYLVSlfioqK6NSpE9evX2fQoEEEBQWxZMkSrl27Rv/+/albt66zms4R3jnOvMvLy+PNN99k+/btvPHGG0RGRrq6O3Ib/KMxcvXqVR5++GFSU1MBykzEO8K7rKws3n77berVq6dtVCuIwMBA1q9fz9atW3nvvfc4d+4cPXv2pLS0lC1btrBt2za++OILRo0axdChQ7Hb7c5zzR588EFVY5ZjWVlZfPjhh4SFhZU5NzUrK4t58+Zx7733kpCQwOrVqxkzZgyjRo2iU6dOTJgwgaysLNq0aUN8fDzx8fEYjUasVitms9nV3RIRFzt27BhXr17Fy8uLzZs3U6NGDSIiIggJCaFZs2Zs3LiRAwcO4O3tTWJiovNZyGq18u2333Lx4kWeeeYZQkJCFMiUUxojIq6lWUYREanwTp06xfXr1xk6dChpaWmkpqZSWloKQOvWrTl27BgAzz33HK+//jqvvvoqmzdvVqVdOde0aVOGDBlCcXExzz33HF9++SUAPXv2dJ4TAzgrpQoLC/H09CQnJ4fvv/8eX19fl7Vdbr+VK1dSUFDAwIEDAdiyZQulpaWEhoaybt06Dh06hMFgIDU1lbFjx1KlShUGDhzIkSNHmDZtGitXruSjjz7SNpnl2D8bI2vWrOHIkSPO3711K9WEhASGDRtG586diYiIcEXT5Q6z2WwEBgYydepUrly5gpubGy1btqS0tJS4uDiee+45zpw5Q7Vq1ahTpw6Ac0FATEwM1atXd3EP5Hby9vZm586d/PWvf+XkyZM899xznDx5koCAALy8vPjuu+/48ssvndWYQ4cOxWQycenSJYqKiv7weaq0E6mYLBYL8Ns5qlarlbS0NGbPns2cOXOoVKkS48eP55tvvqGwsJCoqCimT5+Oh4cHkydPZtu2bc7PMZlMpKenM2vWLN3HljMaIyJ3F1XciYhIhXf+/HkWLFhAjx49iIqKYvXq1Tz33HOMHj2a1q1b87e//Q2TyURSUhLR0dFlVixr8qP8O3bsGHPmzOHMmTOEh4fTsmVLfvjhB7Zt28b169dp0qQJVquVy5cvs23bNiZNmsSgQYOc1ZgKdsunnJwcFi9eTNWqVVmxYgX/j737jq6q2tu+/83OTkJIJSEVQkghEFooCUmogQDSQQRBUA8ozXMUD1JExaMiKhYQ6YSOoAeRptSACCShSRFCLwGBSCeU9LbfP3z3foL6HDnPfWPizvUZwyGDsPeYa+Q31lxrXrNkZWUxbdo0qlatSlJSEkeOHCEwMBB/f3/LyrsTJ04wdepUTp48yb///W9q165d2pchj9Af1cjhw4cJCgqyrLgsufLOy8uLuLg4vLy8Svkq5M9g/t0fPnyY27dvU7FiRX788UfLs0dYWBhhYWFs376dLVu2MHfuXLZv346dnR0LFy7EaDRqIpEVs7OzIyIigq+++orFixdTsWJFnnzySTw8PHBycmLGjBkkJiby6quvMmjQIAAuXbrE1q1badmyJXXr1i3lKxCR0mZeaZuVlcWnn37KqlWryMrKsmzPHB8fz86dO/nmm2+oU6cO3t7eeHh40KZNG27evMmzzz5r2WHGfIaZtnm3LqoRkbJHwZ2IWJWioiJtWSj/0e8NbGVkZLB69WoaN27M+fPnGTlyJK+88gpDhgzhzp07zJ49m0aNGllmuZup1soHX19fwsLCSElJYc+ePYSGhvLEE09w9uxZ1q1bx9q1a9m6dSvLly8nNzeXESNGPHBAt1if4uJiqlWrhqOjI1OmTOHMmTO8//77hIWFER4eToUKFUhOTiY1NfWB8K5q1aoUFBTw0UcfUatWrdK+DHmEHrZGjhw58pvwzkwTQ6xfyedWGxsbqlWrRteuXWnXrh07d+4kOTn5gfAuJibGcp5dly5dGDVqlM4rs3KFhYUYDAZcXFxYsmQJ9+7dw93dnfj4eNzc3PD398fOzo5Dhw4RFBSEwWDg6NGjTJ48GVtbW9566y09i4gIBoOB7OxsevXqxalTp8jIyGDVqlXcvn2b6tWrU7VqVdq2bcuOHTtYuXIlRUVFTJo0icDAQMuERHOfpUki1kk1IlL2KLgTEatifjH95JNPcHNzw9vbu5RbJGWJeWCrsLCQ27dvk5mZiZOTNX5bugAAIABJREFUE97e3ly/fp1p06axadMmxo4dy/PPPw/8MmM5KSmJdu3aERISUspXIH828+qXgIAAqlatyu7du0lKSiI8PJynn36a8PBwbt68ibu7O/Xr1+fTTz/FaDRqNaaVK3ne4alTpygoKMDX15cGDRpga2tL7dq1Hwjvqlevjp+fH1WqVKFVq1ba/rAc+G9q5MiRIwQHB+usw3KmsLAQo9FIdnY2X331Fd988w3nzp2jsLCQkJAQ4uPjSU5OJjk5GXt7e2rVqoWPjw9BQUE0atSI4OBgnVdWDhgMBrKyspg8eTL9+vWjc+fOJCYmkpSURGxsLL6+voSEhODv78/SpUvZtGkTqamp+Pn5sWDBAsszicI7kfKp5KTVbdu2ce7cOaZNm8Y//vEPqlatysKFC8nIyCAwMJCqVavSoUMHdu3axffff4+bmxsvv/yy5Z1G9xHrpBoRKbsU3ImI1UlLS2PkyJHEx8dTvXr10m6OlBHFxcXY2tqSmZnJ8OHDmT9/Pl999RXbtm2jfv361K1bl9zcXE6dOkXHjh0BOHPmDB9++CEVK1Zk1KhRehAth0puXVetWjVLeJecnIy/vz+tWrXiscceo23btsTGxmoLVStnfrEtLi4mLy+PnJwcnnvuOXx9fZk+fTq2trbUr18fo9FoCWb27NlDcnIy4eHh+Pr6aoDdyv2/1khSUhK1a9dWqFtOmEwmbG1tycrKolevXhw/fpyLFy9y+vRplixZQlFRES1btiQ+Pp6kpCSSkpJIS0tj2rRpuLi4EBYWZvkuPZtYvwMHDjB+/Hi6d+9O69atqV+/PmvXrmXnzp3Exsbi5+dHvXr16Nq1q+W//v37Wyarqd+xPtqKXR6WjY0N+fn5DBgwgIsXLxIYGEjXrl0BqFWrFt7e3ixatMgSzPj7+9OzZ09iY2MZNmyYZVW3+hrrpRoRKbsU3InIX96vZ5Hm5+ezdu1a6tWrR506dUqxZVJWmLcszM/PZ/DgweTk5NC9e3dCQ0M5cuQIy5cvp0GDBsTFxVFYWEhCQgLffPMN+/btw93dnUWLFmnGcjn2e+Hd3r172b9/Pw4ODtSsWfOBf68asU4lA9msrCzy8vJo0KABvr6+NGnShKKiImbOnImdnd0DwYzJZOL06dP07NkTFxeXUr4KeZRUI/KwzOHu22+/TU5ODh999BEvvfQSvXv35ocffmD16tW0bduWKlWq0KZNGw4cOMDp06extbVl7NixmhxSzlSoUIGTJ09y584dy9mX9evX55tvvmHXrl00btyY7Oxsrl+/Tnh4OO7u7pYaU61Yn5LvI/n5+fodyx+6e/cuO3fuZNu2bYSGhtKqVSvgl74oPDwcb29vFi9ezL179/Dx8cHHxwdvb2/dR8oR1YhI2aTgTv4SNKNM/hPzi8uFCxdwd3fH2dmZQ4cOcfnyZdq3b//AoLuUT+ZZZDt37mT37t28+uqrdO7cmSZNmtCuXTt+/PFH1qxZQ+/evenRowexsbG0b9+eTp06MWTIEMssMs1YLr9+L7xbt24dNjY2xMfHl3bz5BEr+UI6YcIEZs6cyaeffsqWLVvIzs4mNDSUli1bUlRUxIwZM7CzsyMiIgKj0Ui9evXo0KEDlStXLuWrkEdJNSL/rYKCAubPn0/9+vXp0aMHABs3bmTJkiWMGzeOwsJC0tPTqVmzJu3bt6dNmzYMGjRIM9ut3O/9bp2cnMjKyiIhIYEOHTrg6emJj48PERERrF69mlWrVvHtt99y+fJlOnToYHnn0buP9SnZ10yePJl58+Zx8uRJHB0d8ff3L+XWSVnx6zPdHR0dadKkCTdv3mTjxo0EBwc/sHI7PDwcHx8fZs6ciY+PD02aNLH8TPcR66QaEflrUHAnZdKvV7WoI5A/8uqrr/L++++zdetWLly4wJkzZ7CxsaFTp04Yjcbf1JCCvPLFZDIxYsQIli9fTm5uLsOHD8fe3p6ioiJcXFyIiYlh3bp1pKam0qVLF3x9falatSo+Pj6aRSYWJcO7gIAAGjZsSJ8+fTAYDLqnWDnz73bs2LGkpKTQoUMHunXrxoULF9i+fTsXLlwgOjqali1bYjKZmDNnDvn5+TRu3Bij0YiDg0MpX4E8aqoR+W9lZWXx9ddfExAQQIsWLfj2228ZNWoUw4cPp3///ixcuJDk5GTatWuHo6Mjrq6ueiYpBwwGA9nZ2axevRpbW1tLoF+nTh2Sk5NJS0ujZcuW2NnZ4efnR0xMDLdu3cLPz4+PPvpItWHlzH3NuHHj+Oabb/Dw8GDHjh2cOXMGNzc3goODS7mFUtrMZ7rn5+dz9uxZTp8+DYC/vz/NmjXj7NmzLFy4kJCQkAfObw8PD6devXr07NlTE0OsnGpE5K9DwZ2UOSW3GVqxYgXr1q1j7969ZGVlPdBpiJjl5eVRXFxMjRo1uHPnDhcuXODIkSNcunSJAwcO8MUXX3Dr1i3u3btHVlaWJYwR61ZyFpmNjQ0hISHs2bOH8+fP4+PjQ/369TEYDBQXF+Pi4sLVq1dJTU2lW7du2NvbP/Bdqhfr9OuZhg8TvpnDOwBfX1+FduVIamoqCxYs4PXXX+fJJ5+kTp06dOvWjVu3brFjxw5yc3Np3LgxERERFBQUsGLFCp588kkcHR1Lu+nyJ1GNyP/N762icnBwYN++fezatYuioiLGjx/Pyy+/zLBhw7C1teXrr7/G1taWnj17PvA59TfWb968eUycOJEdO3aQmZmJp6cnnp6eZGVl8d133/HYY4/h7OyMyWSicuXKtG3blnbt2mEwGLQa00qVnNicl5fHihUrGDVqFCNGjCA2NpZNmzZx9OhR3N3dFd6VYyXPdH/mmWdYs2YNS5Ys4fvvv+fAgQN06NCB5s2bc/78eebNm/ebYKZ69eq6j1g51YjIX4uCOylzzDf/4cOHs27dOjIyMkhPT2fJkiX89NNPBAQEaCuhcu7XKzKNRiM1atQgMjKSrl270qVLF5o3b8769esJCAigevXqbNq0ieXLl7Nz5066dOmCk5NTKV6BPGrmWWQFBQXcvXuXnJwcAgICiI6OZt++fVy6dAk/Pz8CAgIsA2CHDh0iPT2dxx9/HDs7u1K+AnnUSs40TE9Pp6Cg4L+6L5jrZu/eveTl5eHh4fGomiql5NfBbmpqKmvWrOHVV1/FycmJ/Px8jEYjMTExHDx4kKSkJHr16oWzszMNGjSgb9++qgsrpxqRh1FUVITRaCQrK4tPP/2UlJQUrly5Qp06dYiIiGD9+vWsW7eOoUOH8uKLLwJw/vx5Vq1aRaNGjYiNjS3lK5BH7dfvNlFRUURFRVGxYkXLysvz58/Tt29flixZQl5eHs2aNbOswDTfh0wmk1bcWaGSE5s3btxIWloaKSkpPP3007i4uODj40NoaChbtmzh2LFjCu/KMfPxEM8//zz29vaMHDmSQYMGERgYSEJCAqmpqXTv3p1mzZpx/vx5Fi1ahJ+fn87rLkdUIyJ/LQrupExavnw533zzDR9//DEvvPAC/fr1w8HBgYULF9KiRQsCAgL0UlJOlXxxWblyJYmJiSQlJeHg4ICnpydGoxGj0YirqytJSUm0bNmSMWPG0LFjR3r37k3v3r3x8/Mr5auQR8k8aJGZmcngwYNZtGgRK1asoEaNGtSrV48mTZqwZs0ajh49SlFREYGBgaSmprJo0SJCQkLo1KlTaV+CPGIla+TZZ59l8eLFLFq0CF9fX4KCgv5j/1Jydd2iRYsYNWoUXbp00X3FyhQXF1teSK9cuYKLiws3b95k9erVNGzYkODgYEvwa2dnR1hYGLNnzyYqKorAwEDs7Oy0isrKqUbkYRkMBnJycujVqxfHjx/n1KlTbNmyhaysLNq3b0+1atU4duwYx48fp6CggB07djBv3jyKi4uZNGmSVnZbOfMZyrm5uWzevJn9+/cTFBREcHAwsbGxdOrUicLCQjZv3szatWtxdnYmLS2NmJgYPDw8HqgL1Yj1MZlMlr7mxRdfZNGiRaxfv54bN24QGBhIvXr1AKhSpQphYWFs2bKFU6dOUaFCBWrUqFGaTZdScuLECVasWMErr7xC8+bNqVy5MidOnGD79u08//zzmEwmgoKCiI2N5cCBA5w4ccJyzqqUD6oRkb8OBXdSJq1du5acnBz+/ve/U6FCBc6fP8+4cePo3LkzjRs3Zu/evYSHh5d2M6UUlFyRuX79ei5dukR6ejoJCQlkZGTg6+uLl5cX9vb2bN68mXPnzvHEE0/g5OSEh4cHbm5upXwF8qjZ2NhQWFjIkCFDKCoqokmTJhQUFDBnzhyCg4Np0qQJ0dHRrF27lq+//ppVq1Zx9OhRXF1dmTRpEkajUQNkVs48Q/3ll1+muLiYrl274ubmxuzZs3FzcyM8PByj0fibz5Wsi88//5yPP/6Yf/3rX7Rr1+7PvgR5BMyrFkoGMiNHjuTChQs0bdqU/Px8duzYwdWrV6lZsyaenp7Y2tpiMpk4fPgwe/fu5W9/+xuVKlUq5SuRR0U1Iv+NkquofvzxR86dO8fUqVPp0qULrq6uzJ49m4KCAvr06UNcXBynTp1i3759XL9+nVq1ajFz5kyMRuNvVmOJ9TCvxszMzOSpp57i22+/ZcuWLWzevJmgoCC8vb3x9PSkcePGPPXUU2RmZnL37l2OHDlCSEgI9evX1zOrFSvZ12zfvp1NmzYxceJE2rZty7Vr19i9ezcuLi7UqlUL+OV8qrCwMFasWMG1a9do27btb7b/F+tj7iPMzyg//fQTy5cvp1evXlSpUoVvv/2WsWPHMmLECOLi4hg/fjx2dnZERETQqlUr+vTpo3uIlVONiPx1/XZUSuRPVnIFFfzygGoymcjOzsbe3p5Lly7Rp08fmjZtyhtvvMHmzZv55JNPiIyMfGCbOyk/li5dysGDB5kyZQqhoaG4u7szefJkEhISaNmyJYGBgVSsWJHIyEiWL1/OvXv3cHV1Le1myyNmnrEMv9xHqlSpQv/+/albty5Xrlzhk08+YfTo0djY2PDYY48xbdo0RowYwc2bN2nTpg1DhgwBID8/Xy+5VspcI+bZy76+vnTo0IGYmBgKCwupXLkyH374ITY2NvTp0wcHBwfLZ38d2r3//vuMHz+e3r17l9blyP+ivLw8BgwYwN///ndatGhhebE9ceKEZaJQUFAQw4cPZ9SoUTg4ONC3b19iYmK4fPky3333HZ6enri7u5fylcijohqR/4a5v8nLy+PMmTPs2LEDGxsbvL29sbOz48knn8RkMjFjxgwKCgoYM2YM06ZN4/bt2zg7O1ueQ0o+24j1sbW1JTc3l2eeeQYPDw/Gjh2Lh4cHw4YNY9KkSYwcOZLo6Gjs7OwwGo28+OKLZGRksHTpUubPn0/btm3x8fEp7cuQR8Qc2i1btoyUlBTCw8OJjIzEzs6OypUrM23aNObNmwdgWQ0TGRnJlClTqFy5so6GKCfM95EpU6bw3HPP4eHhgclk4ty5c9y/f5/Ro0czYsQIhgwZwpUrVzhx4gQZGRkAlu26S4bEYn1UIyJ/XXoLkFJnDu1WrFhB7969MRgMBAYG8tVXX7Fo0SJmzZpF06ZNmTBhAhUrVuTGjRs4ODj8ZmsQsT7Z2dmsX7/eMjBuHji/cOECoaGhNGjQAKPRyPnz51m5ciW9evWiUqVKbN++nU6dOlGlShUyMzMpKioq5SuRR808Yzk7O5sFCxZw5coVtm/fTr9+/QDw8/NjxIgRwC+rIwAee+wxJk2axEsvvcSGDRuoWrUqnTp1UmhnpUqeMTRlyhSuXr3Knj17aN++PfDLWZn//Oc/AZg4cSKAJbwrGdotWbKEDz74QKGdlUlLSyM3N5dRo0YxdepUoqOjycvLo6ioiIKCAsu/69KlC4WFhXz88cckJyfj6uqKg4MDGRkZLFq0SOeVWTHViPw3zKuo+vXrx7Vr18jPzyc8PJy8vDzs7Ozw9vamb9++AMyYMQOTycSrr776QH2YTCaFduXAd999h8FgYNy4cYSEhHDu3Dlq1arFgQMHeOedd3j77bdp0qQJdnZ2FBcXU6lSJVq1asXq1au5fPmygjsrl5aWxqZNmzh9+jTNmze3nMPdsGFDXnrpJUt4ZzAY6Natm+VnUr7s37+fRYsW0apVK2JjY+nbty/vvPMOxcXFvP3225b+5saNG3h5eeHr6/vA5xXIWD/ViMhfk7bKlDIhJSWFf/7zn/z000+0b9+eiIgIDh48yBdffEGDBg34+OOPcXFxISMjg9WrV1OhQgU6duyoAXYrt3z5ct555x2MRiORkZGWgfNNmzZx/vx5nn76adLT0+nVqxcxMTG8++677Nq1i0mTJtG9e3c8PT155pln8PLyKuUrkUfNYDCQnZ1N79692bt3Lzdv3uTatWtUq1aN8PBw7OzscHV1pU6dOty8eZOEhAR8fX2JjY2ladOmJCYm8t133+Hj46PzIKyQeYVdTk4OvXv35tixYxQWFpKeno6DgwO1a9fG2dkZo9FIkyZNyMvLY9asWRiNRiIiIiwDp0uXLtVKOyvl5eVFWFgYFy5cYP78+dStW5egoCDWrl1L1apViYmJAX6ppfDwcBo1akRYWBgVK1akVatWjB49mpCQkFK+CnmUVCPyMAoLCy2DW6NHj8ZoNDJw4ECqVavGli1buH37Nq1btwbAycmJkJAQnJycmDNnDu7u7tSvX9/yXZqgaJ3MNWKeFLR582b27dtnmVg2d+5crly5wvjx40lOTiY5OZmAgADc3d0t52KeOXOGL7/8ksjISB0fYWV+vTVupUqVqFatGunp6WzduhVvb2/q1KkD/DIxMTAwkBMnTrB27Vp8fHwICwsrraZLKapWrRppaWls2bKFzp07ExgYyP379zl79izNmzfHycmJY8eOMWnSJCpUqMDo0aMVxJQzqhGRvyYFd1ImuLq6UrlyZZYuXcrZs2d57LHHiImJIS0tjYMHD1JQUEBKSgorV65k165dTJ48GX9//9Jutjxi3t7eODg4MGPGDACaNGkCwMWLF0lKSsJoNDJ69GiaNWvGu+++S8WKFUlKSuLUqVMMHDgQT09PnJ2dS/MS5BEzb1VmMpnYvHkzly9fZtq0aXTu3BmABQsW4O/vT40aNbC1tbWEd2fOnCE1NZVu3brh4eFBZGQk+/bto3///joH0cqYB8aKi4vZunUrly5dYurUqfTv3x8nJyfmz5+Po6MjoaGhVKxYEVtbW6Kiorhx4waHDx+md+/e2NjYkJCQwIcffsiECRMU2lkZ8yCZn58f/v7+XLx4kUWLFtGsWTMuXbrEhg0bOHv2LOfOncNkMuHp6UlAQAD16tWjdevWRERE6L5h5VQj8rDME4nWrFlDVlYWPXr0oGPHjkRERFC5cmUSEhK4ceMGcXFxAFSsWJHAwEBCQ0Pp1auXBsnKAfNEoo8//pjY2FiKi4s5c+YM3bp1Y+XKlXz66ae8++67NGnShOvXr5OYmEhSUhIuLi40aNCA69evs379ei5evMhLL72ke4sVKXmEyI8//sjp06epUqUKVatWJSgoiKtXr7Jp0yZcXV0tga2vry/+/v5cu3aNnj17qh7KgV+Hu+bJAEVFRWzfvp2IiAjq1KmDv78/FSpUYPbs2axdu5a9e/fi4eHBokWLdH6qlVONiFgPG5PJZCrtRkj58n/bG/nevXusWrWKjz/+mK5du1q2KpswYQInTpzg/v37hIWFMXToUK2IKQfMLy4ZGRksX76cKVOmMHbsWAYMGEBxcTG9evXi+PHjNG3alKlTp+Ls7Mzdu3d5++23uX//PlOnTqVixYqlfRnyJ8jPz+e5556jQoUKVK1aFfN8lOzsbCZOnMiqVat466236N69u2WV7o0bN/D09MRgMFBQUICdnZ3l/2J9CgoKePrppzEajfj6+jJp0iTLz6ZPn8706dN54YUX6N+/P5UrV7Z8xmg0WlY8zJo1CxcXF55++ulSuQZ5NH59zi7A6dOneffddzl69KjlfJiwsDAOHjxIYWEhTk5O+Pr60qdPH8t2vGK9VCPy39q0aZNl6+WpU6datmTOzMxk7dq1fPDBBzz55JP861//+s1ndaZd+XD69Gm6devGe++9xxNPPMG5c+cICAigW7duPP744wwdOhSTycTEiRO5efMm4eHhDBw40HIvOnfuHM7Oztom04qU7GvGjBnDjh07uHv3LsHBwUyaNInw8HCOHDnCjBkzOHXqFMOHD6dnz56Wz+fl5T1wNrNYt5ycHD777DOeeuopqlSpYuk3Hn/8cby8vEhISLD823PnznHjxg1cXFwIDw/HYDCorykHVCMi1kEr7uRPZx4EnTZtGhcvXrRs9eDg4EBwcDAeHh4sXLiQS5cu0bZtW1q2bEl8fDz9+/cnPj4eb2/v0my+/AmKi4stLy4JCQn89NNPnD59muTkZAwGA02aNCEuLo59+/Zx8eJF7t69S2pqKsuWLWP37t1Mnjz5N3tyi/UyGAzs2bOHrVu34u7uTvPmzXF0dMTOzo7o6Ghu3bpFQkICfn5+hISEYDQacXJysqzCMj+QGgwGbUtlpWxtbTl79iwbN27EZDLRokULy4xk80remTNn4ujoSPXq1XF2dsbW1hYbGxvLTMOoqKgHtjCTv76Sg2Sff/45GzZsYNu2bcTExNCgQQNu3LjBsWPHePrpp5k4cSJPPPEEMTExuLm5WbZd9fT0LOWrkEdJNSIPo+Q5qABVqlShevXq7Nq1i8LCQmJiYqhQoQL29vYEBwfj5eXFvHnzOHfunCXUM9PMduv061ULnp6eZGVlkZiYSGRkJCEhIeTm5rJs2TLq1q1L48aNuXjxIosXLyY6OprBgwdbJpvZ2tri4eGhXUWsjLk+Ro4cyYEDByzB3M6dO9mxYwcRERHUrVuXwMBA0tLSSExMxN7enrp16wJogL2cMPc3y5Yt4/PPP+eLL77g1q1bAAQGBuLn58fmzZupXLkyISEhFBcX4+npSdWqVfH29ra8//56QpJYD9WIiHVRcCd/CpPJ9MBKu9TUVKZPn86JEydwcXGx7MXu4OBAYGAgAF988QW3b9+mVatWVKhQAVtbW3Ue5YR58GPMmDFs27aNNm3a0KZNGypUqMAXX3xBcXEx8fHx9OjRg/Pnz3PixAlSU1Px8vLiww8/1N7+Vs68PaaZjY0N7du35/bt26xfvx4vLy9CQ0Oxt7e3hHcZGRl89tlnREREEBQU9MBnf+/P8tf2e9t6tGjRAqPRyIYNG7CxsaFGjRqWQa8mTZpgMBiYPn06ISEhlgkloEFUa2b+3b788sts3bqVe/fuceHCBSpUqECHDh2oXLky169fZ/PmzdSrV49atWoRGBhI06ZN6dChgyYSlQOqEfkjhYWF2NraUlxcTHZ2Nnl5edjZ2VG3bl1cXV1ZvHgxd+/eJSoqCnt7e0t4Zz5LpkePHnr+KAcMBgO5ubns3r3b8q5rNBpJTEzEw8OD+vXrk5GRwY4dOzh16hR79+5l+fLlGAwGJkyYYLkX6V3YuqWkpLB27VrGjx/PY489hrOzMydPnuTIkSMkJSXRuHFjS3h36NAh9u/fT9euXbXSrhwwv/+a+4u6devSp08fbGxsSE5OZvny5fz888+4u7tz8eJFHB0dadKkyW8mloDeea2VakTEOim4k0eqZOdhfuEYM2YMlSpVolevXuzZs4e9e/fi7OxsCVscHR3x8/Nj3bp17N+/n/T0dNq2bVualyGl4NKlSyxcuJAhQ4bQr18/IiIiiI6OxtvbmylTpgDQtGlT2rZtS6dOnejduzcdO3bUIJmVMw+Q5efnc/DgQY4cOcL169epVq0arVq14saNG8yfPx8vLy+Cg4Mt4V1UVBSurq50795dQYyVM2/rkZ2dzZQpU/j66685fPgwzZs3JzIykuLiYubNm4eNjQ2hoaGW8C4qKgo/Pz969OihGrFSvw79Ab766ivWrl3LlClTGDhwIE899RSRkZEA+Pv7ExAQwMWLF1m6dCk1a9a0DLhq8NQ6qUbkv1FUVITRaCQzM5NXX32VJUuWsHDhQks4065dOypVqsScOXO4c+cOkZGRlvAuPDyc3r17YzAYfrfuxLqYTCaeeeYZ5s6dy82bN2nSpAlBQUHcv3+fGTNm0L17d3x9fQkKCuL06dNkZGQQGBjIrFmzdM5QObJ79262b9/OSy+9hKOjIxs3bmT//v288MILHD16lMTERBo2bEjdunWJiIjgiSee0KrucsD8/puXl8fhw4c5evQoOTk5BAYGEh0dTdOmTalduzarV6/m8uXLHDhwgEOHDtG6dWu8vLxKu/nyJ1CNiFgvBXfyyGRmZvLee+/h7e1tCVPWrVvHl19+SdOmTWnZsiXVq1dn37597Nu3DycnJ2rWrAnA5cuXuXjxImPGjKF9+/a4u7uX5qVIKbh58yazZs2iXbt2lsO3HR0dCQ0NJT8/n4SEBMsh7XZ2dtjb22uQzMqZt2zIzMykf//+bNy4ka+++orNmzezc+dOGjZsSM+ePbl69Spz5859ILyzt7enUaNGlv3aNfhhnUwmE7a2tmRlZdGrVy+uXLlCYWEhnp6ehISE4OLiQnR0NMXFxcydOxeDwfBAeFe7dm3ViJXKzMzk7bffJiQkhEqVKln+ftOmTdy+fZuhQ4fi6Oho2Wrq/v37fPHFF1SpUoXWrVuzb98+NmzYQJ8+fR44+1Csh2pE/lsGg4GcnBz69u1LTk4OrVq1IiAggFOnTjFv3jxq1qxJt27dcHNzIyEhgXv37tG4cWPLpCIbGxtMJpP6m3LAxsYGW1tb9u3bx8GDB/n+++9xdHSkefPmXLt2jd27d9O8eXMCAwNp06YNvXv3pn379tja2uqcoXLAHMzeunWLY8eO0bVrV86dO8fw4cN59tln6devH5mZmWzYsIFNmzZhZ2dHmzZtcHFxKe2myyNW8v23X780ryX/AAAgAElEQVR+bN68meXLl/P999+zfft2IiMjqVatGjVr1qRz586WcbNTp05Z3ntAK6ismWpExLopuJNHIjMzk06dOmFjY0OfPn2oUKECb775Jvv27aNRo0YMHToU+GWmclBQEPv27WPPnj2YTCbs7e358ssvuXHjBkOHDtUKqnLg92Ya5+XlkZKSQlFREQ0bNsTR0REAe3t7HB0dWbVqFcnJydjb29O4cePSaLb8yWxsbMjPz2fYsGHY29vz2muvMWTIEOrUqUNycjIbN26kRYsW9OjRg/T0dBYtWoSjoyO1a9fGzs7O8j0aILNe5j35x44dS1FREXPnzqV79+7Ex8eTm5vL8ePHLYMdBoOB2bNnk52dTUREhOUeA6oRa3TkyBESExPp16/fA/eDzZs3k5qaypAhQ4D/0x85ODgwc+ZMkpKSGDRoEGFhYfztb3/Dw8NDL7ZWSjUi/42SZ8icO3eOyZMn0759e1q0aEFUVBS3bt1ixowZtGrVivj4eDw9PZk2bRpubm40atTI8j2qFetkDmJKvuNUrFiRW7duERsbi62tLSkpKezduxdHR0dycnKoXr06vr6+2NjYWMJ/84QksS6/XkFp3qHIw8ODGjVqEBYWxiuvvEJERASvvvoqAPv27aO4uJhGjRrRvXt3PDw8Sqv58ieysbGhoKCAoUOHYmdnx5tvvsmgQYNo3rw5M2fO5MSJE8TFxeHo6IijoyM1atSgQ4cOFBYWsmbNGvr06aOtVK2cakTEumlkSv7XZWVl0b17d2rWrMmHH36Im5sb8MtqqV27dvHDDz9w8eJFy79v3LgxY8aMwcvLiw8++IABAwawbds2xo0bp1lk5UDJF5fTp09z5MgRAPz8/Gjbti2rVq0iMTGRu3fvWj5jMBiIjo5m7NixxMfHl0q7pXScO3eO69evM3jwYMs2Q507d+azzz6jqKiI119/HYD33nuPuLg4du7cSYUKFUq51fKoFRUVWf5sMBi4fv06rVu3xt3dnatXrzJt2jTatWvHwIED6dmzJ3v27OHvf/87Tz/9NKdOnXpgdY1YH5PJRGRkJIsXL8bR0ZFFixZx6NAhAOLi4igsLGTatGkUFBRgMBgwmUwA+Pr6WgKchg0b4u/vX2rXII+WakT+W+YwJi0tDZPJhI+Pj6UuQkNDeeGFFwgKCmL69OkUFBTQo0cPpk+fzt/+9rfSbLb8SWxtbcnJyWHs2LHMmTMHgMDAQKKiokhOTuall15i1KhReHt7s379erZt28ayZcsAHlhdp2DX+hQVFVnC2ISEBF577TUGDBjAsmXLyMjIIDY2FvhlVbd56+W7d+9y4sQJatasyYQJEwgJCSm19suf79KlS1y9epX+/fvTqFEjgoKCuHbtGjY2NnTr1o1z585RUFAAQH5+PgDDhw8nPz+fxMTE0my6/ElUIyLWS3suyP+qrKwsy1YOb7zxBr6+vpYZqa+//joeHh5MmTKFL7/8kiFDhlgGSxs1asS7777LTz/9xI0bN4iKitLgRzlhfnEZNWoUKSkpZGRkEBUVxYQJExg+fDg///wz48eP58KFC3To0AEbGxv+/e9/c//+fXr27Imrq2spX4E8SiVfbgFu3LjBzz//TMWKFR/4eUhICMOGDeOdd94hJSWFZs2a8emnn1ruP7936LJYB/P2IHl5eXzyySe88cYbVKhQgfXr13PlyhVSUlJIT0+nV69eNG/enNmzZzNjxgxiYmIYN26caqQcMJ9DZWtry7lz55g4cSItW7ZkzJgxNGvWjOjoaNasWUOFChUYPHgwNjY23L9/n3v37uHt7U1BQYG2PrRyqhF5GCX7CfPzR15eHrm5uZbZ6gUFBdjZ2REWFkZUVBTbt28nNzcXFxcXy5nd2vrQepV8br1x4wYXL17k4MGDJCUl8frrr/PEE09w5MgRRo4cyapVq4iJiaF58+a8+eabXLhwQc8iVsz8uzXXx/Dhwzly5Ai1atXC1dWVadOm8e233/Lss89a7hVJSUkUFRVx+fJlDh48yOLFi0vzEuRP8uv33/z8fG7cuGGZKLRu3TrGjBnDK6+8QqtWrRgxYgTx8fE899xz2NvbA/Ddd9+RlZVlmVAi1kU1IlJ+6I1B/tdkZmbSvXt3bty4gbe3N2vWrGHIkCFUrFiR4uJiDAYDw4YNIzc3l9mzZ+Pm5kbfvn0teyxXqVKFKlWqlPJVyJ+l5MPGZ599xsGDB/nnP/9JQUEBS5YsYfjw4UyePJmJEydSqVIlNm7cyMKFC/Hz88NkMjF79myFdlbOPLCVl5dHamoq9+/fp6ioiKKiIo4ePUrjxo2xsbGx1FLdunXJzc0lKysL+D/bzpjvP2J9zDVSWFjIli1b+PzzzykqKuKVV17hgw8+YMOGDTRq1Ij33nuPyMhIAPbs2cPly5ctn1VoZ92Ki4stA+SpqanUq1ePefPmMWzYMD744APeeecd3n//fV555RUWL17Mtm3bqF27NmlpaRw9epR///vfD2ybKNZHNSIPwxzImVd4m589evbsyYYNG5gwYQLjxo17oBZcXFzw8fH5zVaHCu2sk/m5Ijs7mxkzZuDi4kLz5s1p3LgxM2bM4B//+Afx8fF06dKFjIwMZs+ezbBhw+jSpQvh4eEEBQXpmcQKme8dJd9ZNmzYwMGDB5k6dSo1a9bEycmJZcuW8e6779K5c2fs7e35+OOPefnll9m4cSPOzs7MmzdPK+3KAfOExKysLI4fP05UVBTOzs7Y29tz8uRJcnJyGD16NCNGjGDIkCHcuHGDn376iZycHMt3ZGZmkp6ejtFo1JEiVkg1IlK+6Iw7+V+RmZlJ586dCQ0NZf78+Vy8eJEdO3Zw79496tevj4ODg2WP/5iYGAoKCpg5cyZOTk6EhYVpK7tyIj8/n7t37+Lo6GgJUrZt28b58+d57LHHePLJJ6lfvz5RUVGsW7eOrVu3Eh0dTdeuXWndurXlZff555+3bB0i1qnkIctPP/00mzZtYtmyZTg4OBAYGMiSJUuoW7cuQUFBllo6deoUhw8fpmvXrvj5+Vm+S4Mf1qlkjYwZM4adO3dy584dDh8+TH5+PlOnTmXIkCF07twZf39/TCYT165dY86cOdSoUYM2bdpYvks1Yl0KCgosfY35dzt+/Hi+/fZbHn/8cQIDA4mIiGDmzJmcOXOGpk2b0rNnTxwcHLh06RLp6en4+/vzwQcfEBoaWspXI4+CakQexrVr18jJycHJycnS37z55pt8/vnnHD16FDc3N6Kiorh9+zbr1q3j6tWrtGzZkuzsbC5dusS8efMsZ8mIdSv5TNK7d29OnjzJoUOHOHXqFABTpkzBzs6Offv2MX/+fAwGA3fu3KFBgwZUqlTJcjbmr88+k782k8nEkiVLSEpKIjo62vK7TUpK4uTJkwwbNgwXFxcuXLjAq6++SqdOnWjdujUrV66kY8eOdO7cmd69e9OzZ09NcLZiJfsa+GViyODBg7l27Rpt2rTB1dUVGxsbpk6dSmJiImPHjmXQoEEAXL58me+//564uDjCw8MBsLe3p3bt2vTp00e7WFkJ1YhI+aXgTv7HTCYTr7/+Oo6OjkyYMAF/f3/atGnDsWPH2LlzJ/fv3/9NeBcbG0tBQQEJCQkA1KlTRweiWrmioiLat29P5cqVqVOnDgCJiYm89dZb/PDDDzz++OMEBwdTVFSEt7c3TZo0sYR3UVFRBAcHExAQgK+vr+WBRayX+ZDlv//979jb2/PWW2/x3HPPERYWRnx8POfPn2fWrFk4OzuTm5vLmTNnmD59Oi4uLrzwwgsKYsoBGxsb8vPzefbZZyksLOSZZ57h+eefp6CggF27dnH48GE6duzI999/z2uvvcaPP/5o2WJo+vTplnOqVCvWpbi4mCeeeIKff/6Z8PBwS3/x5Zdf4u7uTocOHSgqKiIwMJAGDRowa9Yszp49S8OGDWndujU9evSge/fulv5KrI9qRB5GZmYmcXFxFBQUEBERgYODAz179uTWrVu4ubnxww8/cODAAYKDg+nevTsZGRksX76cNWvW8M033/DNN99ga2vLrFmz1N+UA+ZnkkGDBuHm5sbkyZMZOHAgR44cYePGjdy6dYsXX3yR9u3bY29vz86dOzl79ix+fn40atTI8j0K7axLUVERycnJrF+/HoD58+fj4eHBtWvX2LFjBy+//DI3btzg8ccfJzY2lg8//JAzZ87w7rvvEhcXR7Vq1XB0dNQ4iRUr2deYn0kMBgOff/45ISEhNGvWDMAS3KamphIREYGNjQ0nTpzgk08+wd7enjfeeOOB+4etra3laAn5a1ONiJRvCu7kf8zGxoYGDRrQuXNnvLy8LDMO27Rpw/Hjx/9jeJeRkcHKlSvp378/jo6OpX0p8ggZDAYaNWpEVFQUDg4O5OfnU6lSJQoLCzl69Ci2tra0bdsWg8FAcXExXl5eREdHs3HjRlavXk2zZs3w8PAo7cuQP9GFCxdYtmwZgwcPpnnz5lSqVAkfHx9cXV3x8/Pjp59+YtWqVaxbt479+/fj4eHBggULMBqNlvuMWLfU1FS+/vprxo4dS3x8PN7e3kRHR+Po6MjmzZs5dOgQ9evX59ixY9y7d49atWoxffp0y/aav96+TP76bGxs8PHx4cMPP8Te3p5q1arh4uJCSkoKAO3bt6e4uBiTyWQJZmbOnMnly5epWrUqvr6+2NraavDUiqlG5GHY29sTHh7OBx98gMFgIC0tjevXr/PRRx/x7LPPUqNGDX788Ue+++47wsPD6du3L5GRkdy+fZuAgACio6P54IMP1N+UI4cPH2bDhg2MGzeOWrVqkZWVxZ49e3BwcODHH3+07DASGRlJo0aNCA4OZsCAAbqXWDGDwUBISAipqamsXLmSkydPMmDAAKpWrUpiYiLHjx/n/fffp2XLlrz99ts4Ojpy/Phx9u/fT79+/XBzcyvtS5BHzNzXTJw4EaPRSGBgIC4uLiQmJuLn50dsbCzFxcW4uLhQvXp1PD09WbBgARs2bODQoUN4eXmxcOFCjEajVuxaKdWISPmmDfblf4WPj4/lzwaDgaKiIoxGI++//z6vv/66ZZbZkCFDcHJyspw59cYbb/DCCy9QqVKl0mq6/Inq168PwGuvvUbFihUZMWIEzz33HMXFxcydOxcXFxdef/11S3gXFhbGJ598whtvvKGZhuVQbm4ut27deuAsGJPJhMlk4vLly8AvK6fs7OxwcXGhbt26GAwGyxkjYv3y8vK4f/++ZbvlgoICXFxc6NmzJydPnmT16tW4ubkxb968B84WMfdRYp3atGnD3Llzef755ykuLmbYsGF4eHiwb98+rl279sAzS7NmzZg9ezZDhgzB3t7eMitVrJtqRB5GXFwcCQkJDBkyhFq1alG1alWqVasGQIsWLTCZTMycOZP33nuPESNG0KpVK6Kioh74DvU35cft27e5deuW5f6wePFiLly4wOuvv87KlStZsWIFxcXFjB49msaNG1vOFdJzq3Xz8vLCycmJwsJC/Pz82L17NwMGDKBdu3Z88cUX1KpVizfeeAM3Nzfu3LnDjh078Pb2VmhXjsTFxTFnzhwGDRpEcXExgwcPxsPDg1OnTvHzzz9bjoCoWrUqQ4YMoV27duTk5GBvb09wcLDef8sB1YhI+aUVd/JIlAzvWrdu/R9X3mmlXfljMBiYOHEiBoPBMusUYOnSpdy5c4cWLVpgY2NDcXEx3t7ePP7441ptVw6ZTCZWrFgBQNu2bS1/bzAYMBqNfPLJJzz11FNER0fj4+NjqRnNai8/TCYTX375JZUqVSImJgZbW1sKCgpwdHTEx8eH1atXc+nSJS5cuEB8fLxluzLNNLR+1apVo2HDhrz11ls4Ojpy5coVfvjhB9auXcuBAwc4e/YsAG5uboSFhREXF0fz5s3x8vIq5ZbLn0U1Ig+jWrVqNGrUiHnz5mE0GmnTpg3Ozs4ABAYG4u3tzeHDh9m1axcuLi7UqFHjgc+rvyk/7Ozs+PHHH+nduzdJSUm8//77vPfee8TGxuLm5sbq1as5ceIEly9ffuDcQ9WI9QsJCaFFixakp6ezY8cO7OzsePHFF7ly5QqnT58mJSWFQ4cO8eWXX7J//36mT5+uM+3KmV8/k5w5c4YDBw6wdOlSduzYwdGjR8nOzsbV1RUHBweqV69uORtT77/lg2pEpHxScCePzO+FdykpKVy7do1GjRppBVU5FhQURMOGDfnXv/6FjY0NkZGRNGzYkOLiYj7//HPu379P8+bNLVsd6iGjfHJ2dsbNzY3Zs2djZ2dH48aNLTWRlpbGkSNH6Nq16wNnDGl7zPLFzc2NoqIiZs6cSZUqVQgPD7fcL3744QeuXLlCixYt2LNnD3Xr1sXPz081Uo5Uq1aNiIgI3njjDTIzM3F3d6dHjx6cPn2aHTt2sHr1ambNmsWxY8d45plndF5ZOaQakYcREBBAZGQk8+fPx97entDQUMvZiObw7rvvviM/P/+BiUZSvri5uREfH4+7uzuffvopderUYfDgweTn5/P999+TmZnJZ599xjPPPKOwrpypVKmSZRJAamoqW7duxd7enpdffplKlSpx79490tPTqVmzJm+//TZhYWGl3WQpBeZnknHjxnH//n3q1KnDoEGDuH37Nj/88APffvst8+bNIzs7m9atW1vOTtW7TfmhGhEpf2xMJpOptBsh1s28NVlhYSHDhw/n559/ZsGCBVpBJSQnJzNo0CCGDh3K4MGDKSoqYsGCBcyZM4chQ4bwyiuvlHYTpZTl5OQwY8YMFixYQPfu3WnRogUAS5YswdbWls8//1yDH+VcRkYG7733HuvWrWPo0KE0bdqU3Nxcpk2bRt26dXnxxReJi4vjzTffpE+fPqXdXCkFu3fvZuDAgYSHh7N69WoA7ty5w6FDhzhx4gTt2rX7zSoZKV9UI/IwUlJSeP755xk6dCj9+/fH29vb8rPDhw9Tt25dTTYT8vPz6d+/P1WqVGHKlCmkpaXx1ltvERQUxDvvvPPA1t1S/qSnp/Puu++SlpbGM888w+OPP87Vq1fx8/OzTAiQ8m3Pnj0MGDCAZs2aMX/+fOCXIyTOnDnD2bNn6dq1q7Y8LOdUIyLlh4I7+VOUDO9u3br1wNkhUr79OrwrLCxk6dKldOzYkZCQkNJunpQBOTk5fPvtt3z22Wfk5ORQuXJlAgICLCvxzGdmSvl19+5dvvrqK+bOnUtRUREODg4EBQWxYMEC7t+/z8CBAxk5ciRxcXGl3VQpJeZgZujQoTz11FP4+vqWdpOkjFGNyMMwP7cOGzaM/v37/2brVAUyArBo0SImTpxIaGgo9+/fx8PDgxUrVmA0Gi0rIKT8Sk9P5/333+fw4cMUFBRgMBhYv369JjaLhfmZZNiwYfTt2/c3zyQ6r0xUIyLlg7bK/JVr167RqlUrHBwcaNCgQWk3x2qU3DbTfC6ECPyy3L9Bgwa88847ZGdn06xZM5o2bYqnp2dpN03KCDs7O+rUqUPXrl3p3Lkz3bt359lnn8VoNFJYWKgBMqFChQo0btyYzp0706FDBzp27Mg//vEPTCYTH374IWlpaQwdOlT9TzkWEBBAgwYNGD9+PEVFRYSHh1OxYsXSbpaUIaoReRglz5jJz8+nXr16D5zXrYlEAlCzZk2Cg4MpKioiOjqajz76SM+tYuHq6kqjRo0sZzKPGzeOgICA0m6WlCEBAQGWvqawsFB9jfyGakSkfNCKuxKysrIYOHAghw8f5rXXXmPAgAGl3SSRcmP79u2MHDmSLVu2aLahPBSttJPfYzKZ2LJlC6tXryYjI4PLly8zd+5cwsPDS7tpUgZs376dUaNGkZiYqL5GfpdqRB7Gtm3bSEhI4Msvv9TqKfm/Krm6Tqsf5PfofUb+E/U18kdUIyLWTcHd/y89PZ2XXnqJY8eOASi4EykF2dnZmt0uIv8jJpOJw4cPM2fOHCIiIujQoQPVq1cv7WZJGaK+Rv6IakQehjmU0daHIiLyqKivkT+iGhGxXpryxS970E+dOpXc3FxiYmLYs2dPaTdJpFzSIJmI/E/Z2NjQoEEDZs2aVdpNkTJKfY38EdWIPAwNkomIyKOmvkb+iGpExHppTT6wZMkSqlSpwtKlS+nevXtpN0dERERERETKOA2SiYjIo6a+Rv6IakTEOmnFHfDOO+/QtGlTbG1tuXDhQmk3R0RERERERERERERERMohBXdAixYtSrsJIiIiIiIiIiIiIiIiUs4puPt/EBcXV9pNkDJuypQpAPzzn/8s5ZZIWaUakT+iGpE/ohqRP6IakT+iGpGHoTqRP6IakT+iGpE/ohqRh7V9+/bSboL8D40ePZqcnBymT59e2k0p03TGnYiIiIiIiIiIiIiIiEgZoOBOREREREREREREREREpAxQcCciIiIiIiIiIiIiIiJSBii4ExERERERERERERERESkDFNyJiIiIiIiIiIiIiIiIlAEK7kRERERERERERERERETKAAV3IiIiIiIiIiIiIiIiImWAsbQbUNb07NmTnj17lnYzREREREREREREREREpJzRijsRERERERERERERERGRMkDBnYiIiIiIiIiIiIiIiEgZoOBOREREREREREREREREpAxQcCciIiIiIiIiIiIiIiJSBii4ExERERERERERERERESkDFNyJiIiIiIiIiIiIiIiIlAEK7kRERERERERERERERETKAAV3IiIiIiIiIiIiIiIiImWAgjsRERERERERERERERGRMkDBnYiIiIiIiIiIiIiIiEgZoOBOREREREREREREREREpAxQcCciIiIiIiIiIiIiIiJSBii4ExERERERERERERERESkDFNyJiIiIiIiIiIiIiIiIlAEK7kRERERERERERERERETKAAV3IiIiIiIiIiIiIiIiImWAgjsRERERERERERERERGRMkDBnYiIiIiIiIiIiIiIiEgZoOBOREREREREREREREREpAxQcCciIiIiIiIiIiIiIiJSBii4ExERERERERERERERESkDFNyJiIiIiIiIiIiIiIiIlAEK7kRERERERERERERERETKAAV3IiIiIiIiIiIiIiIiImWAgjsRERERERERERERERGRMkDBnYiIiIiIiIiIiIiIiEgZoOBOREREREREREREREREpAxQcCciIiIiIiIiIiIiIiJSBii4ExERERERERERERERESkDFNyJiIiIiIiIiIiIiIiIlAEK7kRERERERERERERERETKAAV3IiIiIiIiIiIiIiIiImWAgjsRERERERERERERERGRMkDBnYiIiIiIiIiIiIiIiEgZoOBOREREREREREREREREpAxQcPf/tXf/sV7WdR/HX8fxywShhVmKqEtGK0QgTVJpouGPCFM5DbCENKPaRElGZssYYq4lodSmc5Q5FUtryIYmGlo5ctIvakJ2DPJImElATCU4h1/3H+6c+z47Iuh9jHf3/XhsZ2ff6/rse32+13X999x1fQAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAPMRH24AABLaSURBVAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAA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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Plot visualisation of the missing values for each feature of the raw DataFrame, df_stratabet_key_entries_raw \n", "msno.matrix(df_stratabet_key_entries_raw, figsize = (30, 7))" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Series([], dtype: int64)" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Counts of missing values\n", "tm_null_value_stats = df_stratabet_key_entries_raw.isnull().sum(axis=0)\n", "tm_null_value_stats[tm_null_value_stats != 0]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The visualisation shows us very quickly that there a few missing values in the `shotQuality` column, but otherwise the dataset is complete. This data is now ready for Data Engineering." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 3.2.4. Export Complete DataFrame" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [], "source": [ "df_stratabet_key_entries_raw.to_csv(data_dir_stratabet + '/raw/key_entries/' + 'stratabet_key_entries_all.csv', index=None, header=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 3.5. Minutes Played" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 3.5.1. Data Dictionary\n", "The [StrataBet]( http://www.stratagem.co/) Events dataset has twelve features (columns) with the following definitions and data types:\n", "\n", "| Feature | Data type |\n", "|------|-----|\n", "| `eventId` | int64 |\n", "| `subEventName` | object |\n", "| `tags` | object |\n", "| `playerId` | int64 |\n", "| `positions` | object |\n", "| `matchId` | int64 |\n", "| `eventName` | object |\n", "| `teamId` | int64 |\n", "| `matchPeriod` | object |\n", "| `eventSec` | float64 |\n", "| `subEventId` | object |\n", "| `id` | int64 |" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 3.5.2. Import Data" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [], "source": [ "# Combine individual csv files to form one DataFrame, df_raw, using glob\n", "lst_files_key_entries = glob.glob(data_dir_stratabet + '/raw/key_entries/individual_competitions' + \"/*.csv\") # Creates a list of all csv files\n", "\n", "li = [] # pd.concat takes a list of DataFrames as an argument\n", "\n", "for filename in lst_files_key_entries:\n", " df_raw_temp = pd.read_csv(filename, index_col=None, header=0)\n", " li.append(df_raw_temp)\n", "\n", "df_stratabet_key_entries_raw = pd.concat(li, axis=0, ignore_index=True) # ignore_index=True as we don't want pandas to try an align row indexes" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 3.5.3. Initial Data Handling\n", "Let's quality of the dataset by looking first and last rows in pandas using the [head()](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.head.html) and [tail()](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.tail.html) methods." ] }, { "cell_type": "code", "execution_count": 38, "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", "
Trueindexcompetitiongsm_idkickoffDatekickoffTimehometeam_team1awayteam_team2teamkeyentryAreakeyentryType
01535649570ScoPr22424242016-08-0611:30:00RangersHamilton AcademicalRangersRightPass
11535659571ScoPr22424242016-08-0611:30:00RangersHamilton AcademicalRangersBoxPass
21535669572ScoPr22424242016-08-0611:30:00RangersHamilton AcademicalRangersRightPass
31535679573ScoPr22424242016-08-0611:30:00RangersHamilton AcademicalHamilton AcademicalRightPass
41535689574ScoPr22424242016-08-0611:30:00RangersHamilton AcademicalRangersBoxRun
\n", "
" ], "text/plain": [ " True index competition gsm_id kickoffDate kickoffTime hometeam_team1 \\\n", "0 153564 9570 ScoPr 2242424 2016-08-06 11:30:00 Rangers \n", "1 153565 9571 ScoPr 2242424 2016-08-06 11:30:00 Rangers \n", "2 153566 9572 ScoPr 2242424 2016-08-06 11:30:00 Rangers \n", "3 153567 9573 ScoPr 2242424 2016-08-06 11:30:00 Rangers \n", "4 153568 9574 ScoPr 2242424 2016-08-06 11:30:00 Rangers \n", "\n", " awayteam_team2 team keyentryArea keyentryType \n", "0 Hamilton Academical Rangers Right Pass \n", "1 Hamilton Academical Rangers Box Pass \n", "2 Hamilton Academical Rangers Right Pass \n", "3 Hamilton Academical Hamilton Academical Right Pass \n", "4 Hamilton Academical Rangers Box Run " ] }, "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Display the first 5 rows of the raw DataFrame, df_stratabet_key_entries_raw \n", "df_stratabet_key_entries_raw.head()" ] }, { "cell_type": "code", "execution_count": 39, "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", "
Trueindexcompetitiongsm_idkickoffDatekickoffTimehometeam_team1awayteam_team2teamkeyentryAreakeyentryType
1956821112817814GreSL27014772018-03-1115:15:00LamiaLevadiakosLevadiakosRightTurnover
1956831112827815GreSL27014772018-03-1115:15:00LamiaLevadiakosLamiaLeftTurnover
1956841112837816GreSL27014772018-03-1115:15:00LamiaLevadiakosLamiaRightPass
1956851112847817GreSL27014772018-03-1115:15:00LamiaLevadiakosLamiaBoxPass
1956861112857818GreSL27014772018-03-1115:15:00LamiaLevadiakosLevadiakosBoxRun
\n", "
" ], "text/plain": [ " True index competition gsm_id kickoffDate kickoffTime \\\n", "195682 111281 7814 GreSL 2701477 2018-03-11 15:15:00 \n", "195683 111282 7815 GreSL 2701477 2018-03-11 15:15:00 \n", "195684 111283 7816 GreSL 2701477 2018-03-11 15:15:00 \n", "195685 111284 7817 GreSL 2701477 2018-03-11 15:15:00 \n", "195686 111285 7818 GreSL 2701477 2018-03-11 15:15:00 \n", "\n", " hometeam_team1 awayteam_team2 team keyentryArea keyentryType \n", "195682 Lamia Levadiakos Levadiakos Right Turnover \n", "195683 Lamia Levadiakos Lamia Left Turnover \n", "195684 Lamia Levadiakos Lamia Right Pass \n", "195685 Lamia Levadiakos Lamia Box Pass \n", "195686 Lamia Levadiakos Levadiakos Box Run " ] }, "execution_count": 39, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Display the last 5 rows of the raw DataFrame, df_stratabet_key_entries_raw \n", "df_stratabet_key_entries_raw.tail()" ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(195687, 11)\n" ] } ], "source": [ "# Print the shape of the raw DataFrame, df_stratabet_key_entries_raw \n", "print(df_stratabet_key_entries_raw.shape)" ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Index(['True', 'index', 'competition', 'gsm_id', 'kickoffDate', 'kickoffTime',\n", " 'hometeam_team1', 'awayteam_team2', 'team', 'keyentryArea',\n", " 'keyentryType'],\n", " dtype='object')\n" ] } ], "source": [ "# Print the column names of the raw DataFrame, df_stratabet_key_entries_raw \n", "print(df_stratabet_key_entries_raw.columns)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The dataset has six features (columns). Full details of these attributes can be found in the [Data Dictionary](section3.3.1)." ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "RangeIndex: 195687 entries, 0 to 195686\n", "Data columns (total 11 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", " 0 True 195687 non-null int64 \n", " 1 index 195687 non-null int64 \n", " 2 competition 195687 non-null object\n", " 3 gsm_id 195687 non-null int64 \n", " 4 kickoffDate 195687 non-null object\n", " 5 kickoffTime 195687 non-null object\n", " 6 hometeam_team1 195687 non-null object\n", " 7 awayteam_team2 195687 non-null object\n", " 8 team 195687 non-null object\n", " 9 keyentryArea 195687 non-null object\n", " 10 keyentryType 195687 non-null object\n", "dtypes: int64(3), object(8)\n", "memory usage: 16.4+ MB\n" ] } ], "source": [ "# Info for the raw DataFrame, df_stratabet_key_entries_raw \n", "df_stratabet_key_entries_raw.info()" ] }, { "cell_type": "code", "execution_count": 43, "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", "
Trueindexgsm_id
count195687.000000195687.0000001.956870e+05
mean97843.0000006453.8474142.354363e+06
std56490.1154015040.2883731.125099e+05
min0.0000000.0000002.237445e+06
25%48921.5000002675.0000002.246823e+06
50%97843.0000005401.0000002.360808e+06
75%146764.5000008928.0000002.467223e+06
max195686.00000025384.0000002.701477e+06
\n", "
" ], "text/plain": [ " True index gsm_id\n", "count 195687.000000 195687.000000 1.956870e+05\n", "mean 97843.000000 6453.847414 2.354363e+06\n", "std 56490.115401 5040.288373 1.125099e+05\n", "min 0.000000 0.000000 2.237445e+06\n", "25% 48921.500000 2675.000000 2.246823e+06\n", "50% 97843.000000 5401.000000 2.360808e+06\n", "75% 146764.500000 8928.000000 2.467223e+06\n", "max 195686.000000 25384.000000 2.701477e+06" ] }, "execution_count": 43, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Description of the raw DataFrame, df_stratabet_key_entries_raw, showing some summary statistics for each numberical column in the DataFrame\n", "df_stratabet_key_entries_raw.describe()" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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JSQkKLQTEee15ssvv8TX15e//OUvBAQE0K5dO2JiYli3bh3t2rXj0Ucfxd3dnZ9//pk9e/YQGxurs9/LseLiYgBKSkr+8FpCQgJt27blww8/JCsri5iYGB577DHq1KnDRx99xH333ce8efO45557eOuttzAYDH/6HkakPFBwJyIi8m/kmMhw6NGjB8OHD8dqtbJnzx5KSkowmUzY7XaaNGnCO++8w/Hjx3n55Zc5efKki1otIncDi8UC8IeH0pMnT5KWlkatWrWIjIykoKCA06dP079/f3x9fRXICBaLhZs3b1JaWorZbObcuXP07NmTJk2aMHr0aHbu3Mmbb75JTk7OH65TUn7Z7XbMZjN5eXkMHDiQwYMH06NHD5YuXUpOTs6/fK9j8cDcuXMZOXIk169fvxPNljvIarX+qZ/93u+vUxaLRaGdSAVnt9t55plneOONNygqKiI5ORmAoKAgXn31VRo3bszJkycZOHAgo0eP5rHHHsNisfDSSy853y/ly549e7j33nu5du0a7u7uFBQUsG3bNn755Rfn7/Tt25fIyEgWL16MxWKhWrVqDB8+nIyMDMLDw6lSpQrvvPMOnp6eFBcXqxpTKhTTiy+++KKrGyEiIlIeOCYt7HY7FosFu92Oj48PDRs2JCcnh48//pjg4GBq166N0WjEbrcTFRVFQkICp06dYuDAgdqzXaSCstvtzJkzhwMHDlC/fn3nd0FBQQHvvvsu1atXp3379pw9e5auXbuSlpbGuHHjmDFjBkeOHKF9+/b6/qggrFbrHyYtjEYjmZmZ7N27l9jYWIYOHUpaWhovv/wyfn5+rF69mp9//plBgwZpnFQwNpuN0aNHU1hYSM+ePbl58yZLly7F09OT2NhY5/kxt7o1tPvkk094/fXX+c///M8yZ93J/323nkW1bt06jh49StWqVf/umPi9W6sxP//8c86cOUONGjU0oSpSwdhsNuf1wmAwEBcXx7fffsuJEyfw8/MjNTUVAF9fX1q2bIm/vz+//PILZrOZunXrMmXKFMxms8L/cmj//v089thjpKen0759e8xmM2+88QYvv/wyhw4dAiA6Oprg4GBOnz7Nzp076dOnD0ajEX9/f2rUqMHly5fZtm0b+fn5NGrUSNt1S4Wj4E5EROTfwGq1Yjabyc/PZ9KkSXzyyScsWbKE7777jrp169KhQwdy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C6tXryYjI4PLly8zd+5cwsPDS7tpUgZs376dUaNGkZiYqL5GfpdqRB7Gtm3bSEhI4Msvv9TqKfm/Krm6Tqsf5PfofUb+E/U18kdUIyLWTcHd/y89PZ2XXnqJY8eOASi4EykF2dnZmt0uIv8jJpOJw4cPM2fOHCIiIujQoQPVq1cv7WZJGaK+Rv6IakQehjmU0daHIiLyqKivkT+iGhGxXpryxS970E+dOpXc3FxiYmLYs2dPaTdJpFzSIJmI/E/Z2NjQoEEDZs2aVdpNkTJKfY38EdWIPAwNkomIyKOmvkb+iGpExHppTT6wZMkSqlSpwtKlS+nevXtpN0dERERERETKOA2SiYjIo6a+Rv6IakTEOmnFHfDOO+/QtGlTbG1tuXDhQmk3R0RERERERERERERERMohBXdAixYtSrsJIiIiIiIiIiIiIiIiUs4puPt/EBcXV9pNkDJuypQpAPzzn/8s5ZZIWaUakT+iGpE/ohqRP6IakT+iGpGHoTqRP6IakT+iGpE/ohqRh7V9+/bSboL8D40ePZqcnBymT59e2k0p03TGnYiIiIiIiIiIiIiIiEgZoOBOREREREREREREREREpAxQcCciIiIiIiIiIiIiIiJSBii4ExERERERERERERERESkDFNyJiIiIiIiIiIiIiIiIlAEK7kRERERERERERERERETKAAV3IiIiIiIiIiIiIiIiImWAsbQbUNb07NmTnj17lnYzREREREREREREREREpJzRijsRERERERERERERERGRMkDBnYiIiIiIiIiIiIiIiEgZoOBOREREREREREREREREpAxQcCciIiIiIiIiIiIiIiJSBii4ExERERERERERERERESkDFNyJiIiIiIiIiIiIiIiIlAEK7kRERERERERERERERETKAAV3IiIiIiIiIiIiIiIiImWAgjsRERERERERERERERGRMkDBnYiIiIiIiIiIiIiIiEgZoOBOREREREREREREREREpAxQcCciIiIiIiIiIiIiIiJSBii4ExERERERERERERERESkDFNyJiIiIiIiIiIiIiIiIlAEK7kRERERERERERERERETKAAV3IiIiIiIiIiIiIiIiImWAgjsRERERERERERERERGRMkDBnYiIiIiIiIiIiIiIiEgZoOBOREREREREREREREREpAxQcCciIiIiIiIiIiIiIiJSBii4ExERERERERERERERESkDFNyJiIiIiIiIiIiIiIiIlAEK7kRERERERERERERERETKAAV3IiIiIiIiIiIiIiIiImWAgjsRERERERERERERERGRMkDBnYiIiIiIiIiIiIiIiEgZoOBOREREREREREREREREpAxQcCciIiIiIiIiIiIiIiJSBii4ExERERERERERERERESkDFNyJiIiIiIiIiIiIiIiIlAEK7kRERERERERERERERETKAAV3IiIiIiIiIiIiIiIiImWAgjsRERERERERERERERGRMkDBnYiIiIiIiIiIiIiIiEgZoOBOREREREREREREREREpAxQcPf/tXf/sV7WdR/HX8fxywShhVmKqEtGK0QgTVJpouGPCFM5DbCENKPaRElGZssYYq4lodSmc5Q5FUtryIYmGlo5ctIvakJ2DPJImElATCU4h1/3H+6c+z47Iuh9jHf3/XhsZ2ff6/rse32+13X999x1fQAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAPMRH24AABLaSURBVAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAAChDuAAAAAAAAoADhDgAAAAAAAAoQ7gAAAAAAAKAA4Q4AAAAAAAAKEO4AAAAAAACgAOEOAAAAAAAA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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Plot visualisation of the missing values for each feature of the raw DataFrame, df_stratabet_key_entries_raw \n", "msno.matrix(df_stratabet_key_entries_raw, figsize = (30, 7))" ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Series([], dtype: int64)" ] }, "execution_count": 45, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Counts of missing values\n", "tm_null_value_stats = df_stratabet_key_entries_raw.isnull().sum(axis=0)\n", "tm_null_value_stats[tm_null_value_stats != 0]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The visualisation shows us very quickly that there a few missing values in the `shotQuality` column, but otherwise the dataset is complete. This data is now ready for Data Engineering." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 3.5.4. Export Complete DataFrame" ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [], "source": [ "df_stratabet_key_entries_raw.to_csv(data_dir_stratabet + '/raw/key_entries/' + 'stratabet_key_entries_all.csv', index=None, header=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 4. Data Engineering" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 4.1. Chances" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 4.1.1. Assign Raw DataFrame to Engineered DataFrame" ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [], "source": [ "# Assign Raw DataFrame to Engineered DataFrame\n", "df_stratabet_chances = df_stratabet_chances_raw" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 4.1.2. Create `Full_Fixture_Date` Attribute" ] }, { "cell_type": "code", "execution_count": 48, "metadata": { "scrolled": true }, "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", "
indexcompetitiongsm_idkickoffDatekickoffTimehometeam_team1awayteam_team2iconchanceRatingteamtypetimeplayerlocation_xlocation_ybodyPartshotQualitydefPressurenumDefPlayersnumAttPlayersoutcomeprimaryPlayerprimaryTypeprimaryLocation_xprimaryLocation_ysecondaryPlayersecondaryType
04684GreSL235559110/09/201613:00:00KerkyraPlataniaspoorchancepoorchanceKerkyraOpen Play24:43:00D. Epstein8148Left3520Saved------
14685GreSL235559110/09/201613:00:00KerkyraPlataniasgoodchancegoodchanceKerkyraOpen Play45:29:00D. Epstein2760Left2220DefendedThuramOpen Play Pass-2982--
24686GreSL235559110/09/201613:00:00KerkyraPlataniaspoorchancepoorchanceKerkyraOpen Play44:34:00S. Siontis23117Right2141Missed------
34687GreSL235559110/09/201613:00:00KerkyraPlataniaspoorchancepoorchancePlataniasOpen Play42:39:00O. Gnjatic-9118Left1131MissedG. ManousosOpen Play Pass7792--
44688GreSL235559110/09/201613:00:00KerkyraPlataniasgoodchancegoodchanceKerkyraOpen Play40:46:00D. Epstein4215Left2520Saved------
\n", "
" ], "text/plain": [ " index competition gsm_id kickoffDate kickoffTime hometeam_team1 \\\n", "0 4684 GreSL 2355591 10/09/2016 13:00:00 Kerkyra \n", "1 4685 GreSL 2355591 10/09/2016 13:00:00 Kerkyra \n", "2 4686 GreSL 2355591 10/09/2016 13:00:00 Kerkyra \n", "3 4687 GreSL 2355591 10/09/2016 13:00:00 Kerkyra \n", "4 4688 GreSL 2355591 10/09/2016 13:00:00 Kerkyra \n", "\n", " awayteam_team2 icon chanceRating team type time \\\n", "0 Platanias poorchance poorchance Kerkyra Open Play 24:43:00 \n", "1 Platanias goodchance goodchance Kerkyra Open Play 45:29:00 \n", "2 Platanias poorchance poorchance Kerkyra Open Play 44:34:00 \n", "3 Platanias poorchance poorchance Platanias Open Play 42:39:00 \n", "4 Platanias goodchance goodchance Kerkyra Open Play 40:46:00 \n", "\n", " player location_x location_y bodyPart shotQuality defPressure \\\n", "0 D. Epstein 81 48 Left 3 5 \n", "1 D. Epstein 27 60 Left 2 2 \n", "2 S. Siontis 23 117 Right 2 1 \n", "3 O. Gnjatic -9 118 Left 1 1 \n", "4 D. Epstein 42 15 Left 2 5 \n", "\n", " numDefPlayers numAttPlayers outcome primaryPlayer primaryType \\\n", "0 2 0 Saved - - \n", "1 2 0 Defended Thuram Open Play Pass \n", "2 4 1 Missed - - \n", "3 3 1 Missed G. Manousos Open Play Pass \n", "4 2 0 Saved - - \n", "\n", " primaryLocation_x primaryLocation_y secondaryPlayer secondaryType \n", "0 - - - - \n", "1 -29 82 - - \n", "2 - - - - \n", "3 77 92 - - \n", "4 - - - - " ] }, "execution_count": 48, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_stratabet_chances.head()" ] }, { "cell_type": "code", "execution_count": 49, "metadata": {}, "outputs": [], "source": [ "df_stratabet_chances['Full_Fixture_Date'] = df_stratabet_chances['kickoffDate'].astype(str) + ' ' + df_stratabet_chances['hometeam_team1'].astype(str) + ' vs. ' + df_stratabet_chances['awayteam_team2'].astype(str)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 4.1.3. Convert Data Types" ] }, { "cell_type": "code", "execution_count": 50, "metadata": {}, "outputs": [], "source": [ "df_stratabet_chances['location_x'] = df_stratabet_chances['location_x'].apply(pd.to_numeric, errors='coerce')\n", "df_stratabet_chances['location_y'] = df_stratabet_chances['location_y'].apply(pd.to_numeric, errors='coerce')\n", "df_stratabet_chances['primaryLocation_x'] = df_stratabet_chances['primaryLocation_x'].apply(pd.to_numeric, errors='coerce')\n", "df_stratabet_chances['primaryLocation_y'] = df_stratabet_chances['primaryLocation_y'].apply(pd.to_numeric, errors='coerce')\n", "df_stratabet_chances['shotQuality'] = df_stratabet_chances['shotQuality'].apply(pd.to_numeric, errors='coerce')\n", "df_stratabet_chances['defPressure'] = df_stratabet_chances['defPressure'].apply(pd.to_numeric, errors='coerce')\n", "df_stratabet_chances['numDefPlayers'] = df_stratabet_chances['numDefPlayers'].apply(pd.to_numeric, errors='coerce')\n", "df_stratabet_chances['numAttPlayers'] = df_stratabet_chances['numAttPlayers'].apply(pd.to_numeric, errors='coerce')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 4.1.4. Convert X, Y Coordinates to Standardised Coordiantes\n", "\n", "From the documenation, the XY coordinates in addition to grid locations, with (0,0) representing the absolute centre of the defended goal line. The pitch length runs from 0 to 420, while the width runs from 136 to -136 (left to right).\n", "\n", "Some key reference points of note:\n", "* Left Goalpost (15, 0)\n", "* Right Goalpost (-15, 0)\n", "* 6-Yard Box Left Corner: (37, 22)\n", "* 6-Yard Box Right Corner: (-37, 22)\n", "* Penalty Spot: (0, 44)\n", "* 18-Yard Box Left Corner: (81, 66)\n", "* 18-Yard Box Right Corner: (-81, 66)\n", "* Centre Spot: (0, 210) " ] }, { "cell_type": "code", "execution_count": 51, "metadata": {}, "outputs": [], "source": [ "df_stratabet_chances['location_y_120'] = ((df_stratabet_chances['location_y'] / 480) * 120).round(2)\n", "df_stratabet_chances['location_x_80'] = (((df_stratabet_chances['location_x'] + 136) / 272) * 80).round(2)\n", "df_stratabet_chances['primaryLocation_y_120'] = ((df_stratabet_chances['primaryLocation_y'] / 480) * 120).round(2)\n", "df_stratabet_chances['primaryLocation_x_80'] = (((df_stratabet_chances['primaryLocation_x'] + 136) / 272) * 80).round(2)" ] }, { "cell_type": "code", "execution_count": 52, "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", "
indexcompetitiongsm_idkickoffDatekickoffTimehometeam_team1awayteam_team2iconchanceRatingteamtypetimeplayerlocation_xlocation_ybodyPartshotQualitydefPressurenumDefPlayersnumAttPlayersoutcomeprimaryPlayerprimaryTypeprimaryLocation_xprimaryLocation_ysecondaryPlayersecondaryTypeFull_Fixture_Datelocation_y_120location_x_80primaryLocation_y_120primaryLocation_x_80
04684GreSL235559110/09/201613:00:00KerkyraPlataniaspoorchancepoorchanceKerkyraOpen Play24:43:00D. Epstein81.048.0Left3.05.02.00.0Saved--NaNNaN--10/09/2016 Kerkyra vs. Platanias12.0063.82NaNNaN
14685GreSL235559110/09/201613:00:00KerkyraPlataniasgoodchancegoodchanceKerkyraOpen Play45:29:00D. Epstein27.060.0Left2.02.02.00.0DefendedThuramOpen Play Pass-29.082.0--10/09/2016 Kerkyra vs. Platanias15.0047.9420.531.47
24686GreSL235559110/09/201613:00:00KerkyraPlataniaspoorchancepoorchanceKerkyraOpen Play44:34:00S. Siontis23.0117.0Right2.01.04.01.0Missed--NaNNaN--10/09/2016 Kerkyra vs. Platanias29.2546.76NaNNaN
34687GreSL235559110/09/201613:00:00KerkyraPlataniaspoorchancepoorchancePlataniasOpen Play42:39:00O. Gnjatic-9.0118.0Left1.01.03.01.0MissedG. ManousosOpen Play Pass77.092.0--10/09/2016 Kerkyra vs. Platanias29.5037.3523.062.65
44688GreSL235559110/09/201613:00:00KerkyraPlataniasgoodchancegoodchanceKerkyraOpen Play40:46:00D. Epstein42.015.0Left2.05.02.00.0Saved--NaNNaN--10/09/2016 Kerkyra vs. Platanias3.7552.35NaNNaN
\n", "
" ], "text/plain": [ " index competition gsm_id kickoffDate kickoffTime hometeam_team1 \\\n", "0 4684 GreSL 2355591 10/09/2016 13:00:00 Kerkyra \n", "1 4685 GreSL 2355591 10/09/2016 13:00:00 Kerkyra \n", "2 4686 GreSL 2355591 10/09/2016 13:00:00 Kerkyra \n", "3 4687 GreSL 2355591 10/09/2016 13:00:00 Kerkyra \n", "4 4688 GreSL 2355591 10/09/2016 13:00:00 Kerkyra \n", "\n", " awayteam_team2 icon chanceRating team type time \\\n", "0 Platanias poorchance poorchance Kerkyra Open Play 24:43:00 \n", "1 Platanias goodchance goodchance Kerkyra Open Play 45:29:00 \n", "2 Platanias poorchance poorchance Kerkyra Open Play 44:34:00 \n", "3 Platanias poorchance poorchance Platanias Open Play 42:39:00 \n", "4 Platanias goodchance goodchance Kerkyra Open Play 40:46:00 \n", "\n", " player location_x location_y bodyPart shotQuality defPressure \\\n", "0 D. Epstein 81.0 48.0 Left 3.0 5.0 \n", "1 D. Epstein 27.0 60.0 Left 2.0 2.0 \n", "2 S. Siontis 23.0 117.0 Right 2.0 1.0 \n", "3 O. Gnjatic -9.0 118.0 Left 1.0 1.0 \n", "4 D. Epstein 42.0 15.0 Left 2.0 5.0 \n", "\n", " numDefPlayers numAttPlayers outcome primaryPlayer primaryType \\\n", "0 2.0 0.0 Saved - - \n", "1 2.0 0.0 Defended Thuram Open Play Pass \n", "2 4.0 1.0 Missed - - \n", "3 3.0 1.0 Missed G. Manousos Open Play Pass \n", "4 2.0 0.0 Saved - - \n", "\n", " primaryLocation_x primaryLocation_y secondaryPlayer secondaryType \\\n", "0 NaN NaN - - \n", "1 -29.0 82.0 - - \n", "2 NaN NaN - - \n", "3 77.0 92.0 - - \n", "4 NaN NaN - - \n", "\n", " Full_Fixture_Date location_y_120 location_x_80 \\\n", "0 10/09/2016 Kerkyra vs. Platanias 12.00 63.82 \n", "1 10/09/2016 Kerkyra vs. Platanias 15.00 47.94 \n", "2 10/09/2016 Kerkyra vs. Platanias 29.25 46.76 \n", "3 10/09/2016 Kerkyra vs. Platanias 29.50 37.35 \n", "4 10/09/2016 Kerkyra vs. Platanias 3.75 52.35 \n", "\n", " primaryLocation_y_120 primaryLocation_x_80 \n", "0 NaN NaN \n", "1 20.5 31.47 \n", "2 NaN NaN \n", "3 23.0 62.65 \n", "4 NaN NaN " ] }, "execution_count": 52, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_stratabet_chances.head()" ] }, { "cell_type": "code", "execution_count": 53, "metadata": {}, "outputs": [], "source": [ "df_stratabet_chances['location_y_120_inv'] = 120 - ((df_stratabet_chances['location_y'] / 480) * 120).round(2)\n", "df_stratabet_chances['location_x_80_inv'] = 80 - (((df_stratabet_chances['location_x'] + 136) / 272) * 80).round(2)\n", "df_stratabet_chances['primaryLocation_y_120_inv'] = 120 - ((df_stratabet_chances['primaryLocation_y'] / 480) * 120).round(2)\n", "df_stratabet_chances['primaryLocation_x_80_inv'] = 80 - (((df_stratabet_chances['primaryLocation_x'] + 136) / 272) * 80).round(2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 4.1.5. Renaming" ] }, { "cell_type": "code", "execution_count": 54, "metadata": {}, "outputs": [], "source": [ "df_stratabet_chances = df_stratabet_chances.rename(columns = {'index':'id'})" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 4.1.6. Assign New Attributes" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "##### Season" ] }, { "cell_type": "code", "execution_count": 55, "metadata": {}, "outputs": [], "source": [ "df_stratabet_chances['Season'] = 'TO ADD'" ] }, { "cell_type": "code", "execution_count": 56, "metadata": {}, "outputs": [], "source": [ "# Write code here to add seasons for each match per 'competition' and 'kickoffDate' - varies per league" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 4.1.7. Create DataFrame of Teams and Leagues" ] }, { "cell_type": "code", "execution_count": 68, "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", "
competitionteam
77137AusALAdelaide United
77053AusALBrisbane Roar
77104AusALCentral Coast Mariners
77066AusALMelbourne City
77052AusALMelbourne Victory
\n", "
" ], "text/plain": [ " competition team\n", "77137 AusAL Adelaide United\n", "77053 AusAL Brisbane Roar\n", "77104 AusAL Central Coast Mariners\n", "77066 AusAL Melbourne City\n", "77052 AusAL Melbourne Victory" ] }, "execution_count": 68, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Create DataFrame of Teams and Leagues\n", "\n", "## Select columns of interest\n", "cols = ['competition', 'team']\n", "df_stratabet_teams_leagues = df_stratabet_chances[cols]\n", "\n", "## Drop duplicates\n", "df_stratabet_teams_leagues = df_stratabet_teams_leagues.drop_duplicates()\n", "\n", "## Order columns by league and team\n", "df_stratabet_teams_leagues = df_stratabet_teams_leagues.sort_values(['competition', 'team'], ascending=[True, True])\n", "\n", "## Display DataFrame\n", "df_stratabet_teams_leagues.head()" ] }, { "cell_type": "code", "execution_count": 69, "metadata": {}, "outputs": [], "source": [ "# Export DataFrame\n", "df_stratabet_teams_leagues.to_csv(data_dir_stratabet + '/reference/teams_leagues.csv', index=None, header=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 4.1.8. Export DataFrame" ] }, { "cell_type": "code", "execution_count": 64, "metadata": {}, "outputs": [], "source": [ "df_stratabet_chances.to_csv(data_dir_stratabet + '/engineered/chances/stratabet_chances_all.csv', index=None, header=True)" ] }, { "cell_type": "code", "execution_count": 65, "metadata": {}, "outputs": [], "source": [ "df_stratabet_chances.to_csv(data_dir + '/export/stratabet_events_chances.csv', index=None, header=True)" ] }, { "cell_type": "code", "execution_count": 66, "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", "
idcompetitiongsm_idkickoffDatekickoffTimehometeam_team1awayteam_team2iconchanceRatingteamtypetimeplayerlocation_xlocation_ybodyPartshotQualitydefPressurenumDefPlayersnumAttPlayersoutcomeprimaryPlayerprimaryTypeprimaryLocation_xprimaryLocation_ysecondaryPlayersecondaryTypeFull_Fixture_Datelocation_y_120location_x_80primaryLocation_y_120primaryLocation_x_80location_y_120_invlocation_x_80_invprimaryLocation_y_120_invprimaryLocation_x_80_invSeason
04684GreSL235559110/09/201613:00:00KerkyraPlataniaspoorchancepoorchanceKerkyraOpen Play24:43:00D. Epstein81.048.0Left3.05.02.00.0Saved--NaNNaN--10/09/2016 Kerkyra vs. Platanias12.0063.82NaNNaN108.0016.18NaNNaNTO ADD
14685GreSL235559110/09/201613:00:00KerkyraPlataniasgoodchancegoodchanceKerkyraOpen Play45:29:00D. Epstein27.060.0Left2.02.02.00.0DefendedThuramOpen Play Pass-29.082.0--10/09/2016 Kerkyra vs. Platanias15.0047.9420.531.47105.0032.0699.548.53TO ADD
24686GreSL235559110/09/201613:00:00KerkyraPlataniaspoorchancepoorchanceKerkyraOpen Play44:34:00S. Siontis23.0117.0Right2.01.04.01.0Missed--NaNNaN--10/09/2016 Kerkyra vs. Platanias29.2546.76NaNNaN90.7533.24NaNNaNTO ADD
34687GreSL235559110/09/201613:00:00KerkyraPlataniaspoorchancepoorchancePlataniasOpen Play42:39:00O. Gnjatic-9.0118.0Left1.01.03.01.0MissedG. ManousosOpen Play Pass77.092.0--10/09/2016 Kerkyra vs. Platanias29.5037.3523.062.6590.5042.6597.017.35TO ADD
44688GreSL235559110/09/201613:00:00KerkyraPlataniasgoodchancegoodchanceKerkyraOpen Play40:46:00D. Epstein42.015.0Left2.05.02.00.0Saved--NaNNaN--10/09/2016 Kerkyra vs. Platanias3.7552.35NaNNaN116.2527.65NaNNaNTO ADD
\n", "
" ], "text/plain": [ " id competition gsm_id kickoffDate kickoffTime hometeam_team1 \\\n", "0 4684 GreSL 2355591 10/09/2016 13:00:00 Kerkyra \n", "1 4685 GreSL 2355591 10/09/2016 13:00:00 Kerkyra \n", "2 4686 GreSL 2355591 10/09/2016 13:00:00 Kerkyra \n", "3 4687 GreSL 2355591 10/09/2016 13:00:00 Kerkyra \n", "4 4688 GreSL 2355591 10/09/2016 13:00:00 Kerkyra \n", "\n", " awayteam_team2 icon chanceRating team type time \\\n", "0 Platanias poorchance poorchance Kerkyra Open Play 24:43:00 \n", "1 Platanias goodchance goodchance Kerkyra Open Play 45:29:00 \n", "2 Platanias poorchance poorchance Kerkyra Open Play 44:34:00 \n", "3 Platanias poorchance poorchance Platanias Open Play 42:39:00 \n", "4 Platanias goodchance goodchance Kerkyra Open Play 40:46:00 \n", "\n", " player location_x location_y bodyPart shotQuality defPressure \\\n", "0 D. Epstein 81.0 48.0 Left 3.0 5.0 \n", "1 D. Epstein 27.0 60.0 Left 2.0 2.0 \n", "2 S. Siontis 23.0 117.0 Right 2.0 1.0 \n", "3 O. Gnjatic -9.0 118.0 Left 1.0 1.0 \n", "4 D. Epstein 42.0 15.0 Left 2.0 5.0 \n", "\n", " numDefPlayers numAttPlayers outcome primaryPlayer primaryType \\\n", "0 2.0 0.0 Saved - - \n", "1 2.0 0.0 Defended Thuram Open Play Pass \n", "2 4.0 1.0 Missed - - \n", "3 3.0 1.0 Missed G. Manousos Open Play Pass \n", "4 2.0 0.0 Saved - - \n", "\n", " primaryLocation_x primaryLocation_y secondaryPlayer secondaryType \\\n", "0 NaN NaN - - \n", "1 -29.0 82.0 - - \n", "2 NaN NaN - - \n", "3 77.0 92.0 - - \n", "4 NaN NaN - - \n", "\n", " Full_Fixture_Date location_y_120 location_x_80 \\\n", "0 10/09/2016 Kerkyra vs. Platanias 12.00 63.82 \n", "1 10/09/2016 Kerkyra vs. Platanias 15.00 47.94 \n", "2 10/09/2016 Kerkyra vs. Platanias 29.25 46.76 \n", "3 10/09/2016 Kerkyra vs. Platanias 29.50 37.35 \n", "4 10/09/2016 Kerkyra vs. Platanias 3.75 52.35 \n", "\n", " primaryLocation_y_120 primaryLocation_x_80 location_y_120_inv \\\n", "0 NaN NaN 108.00 \n", "1 20.5 31.47 105.00 \n", "2 NaN NaN 90.75 \n", "3 23.0 62.65 90.50 \n", "4 NaN NaN 116.25 \n", "\n", " location_x_80_inv primaryLocation_y_120_inv primaryLocation_x_80_inv \\\n", "0 16.18 NaN NaN \n", "1 32.06 99.5 48.53 \n", "2 33.24 NaN NaN \n", "3 42.65 97.0 17.35 \n", "4 27.65 NaN NaN \n", "\n", " Season \n", "0 TO ADD \n", "1 TO ADD \n", "2 TO ADD \n", "3 TO ADD \n", "4 TO ADD " ] }, "execution_count": 66, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_stratabet_chances.head()" ] }, { "cell_type": "code", "execution_count": 67, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(119148, 37)" ] }, "execution_count": 67, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_stratabet_chances.shape" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# All code below here is old and needs to be sorted" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 4.2. Key Entries" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Add code here" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 4.3. Match Info" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Add code here" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 4.4. Minutes Played" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Add code here" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Old code from here" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 4.3. String Cleaning" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "##### Split `Label` column into seperate `Fixture` and `Score` columns" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Break down 'Label' column into constituent parts - Fixtures, Score, Date, Home Goals, Away Goals, etc.\n", "df_stratabet['fixture'] = df_stratabet['label'].str.split(', ').str[0]\n", "df_stratabet['score_home_away'] = df_stratabet['label'].str.split(', ').str[1]\n", "df_stratabet['team_home'] = df_stratabet['fixture'].str.split(' - ').str[0]\n", "df_stratabet['team_away'] = df_stratabet['fixture'].str.split(' - ').str[1]\n", "df_stratabet['goals_home'] = df_stratabet['score_home_away'].str.split(' - ').str[0]\n", "df_stratabet['goals_away'] = df_stratabet['score_home_away'].str.split(' - ').str[1]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "##### Split `date` column into seperate `date_isolated` and `time_isolated` columns" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "df_stratabet['date_isolated'] = df_stratabet['date'].str.split(' at').str[0]\n", "df_stratabet['time_isolated'] = df_stratabet['date'].str.split(' at ').str[1]\n", "df_stratabet['date_time_isolated'] = df_stratabet['date'].str.split(' GMT').str[0].str.replace(' at ', ' ', regex=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 4.4. Drop columns\n", "As this is a large dataset with >3mil rows, we will remove every column that is not required at this stage." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Display columns\n", "df_stratabet.columns" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "scrolled": true }, "outputs": [], "source": [ "# df_stratabet = df_stratabet.drop(['tags', 'dateutc', 'wyId_x', 'label', 'date', 'referees', 'wyId_y', 'date_isolated', 'time_isolated', 'date_time_isolated'])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 4.5. Create New Attributes" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "##### Create full fixture data from broken down attributes created in section 4.2." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "df_stratabet['full_fixture_date'] = df_stratabet['date_date'].astype(str) + ' ' + df_stratabet['team_home'].astype(str) + ' ' + df_stratabet['goals_home'].astype(str) + ' ' + ' v ' + ' ' + df_stratabet['goals_away'].astype(str) + ' ' + df_stratabet['team_away'].astype(str) " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "##### Create 'season' attribute" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "df_stratabet['season'] = '17/18'" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 4.5. Reorder DataFrame\n", "Correctly order all the rows in the DataFrame by date, time, country, fixture, half, and time in the match. Important when looking at events and the following event e.g. is possession retains? Which player receives the pass, etc." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "scrolled": true }, "outputs": [], "source": [ "df_stratabet = df_stratabet.sort_values(['date_date', 'time_time', 'country', 'league_name', 'full_fixture_date', 'matchPeriod', 'eventSec'], ascending=[True, True, True, True, True, True, True])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 4.6. Create New Attributes" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "##### Create `followingPossession` column\n", "'teamIdNext' = following 'teamId'" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "df_stratabet['teamIdNext'] = df_stratabet['teamId'].shift(-1)\n", "df_stratabet['teamNameNext'] = df_stratabet['teamName'].shift(-1)\n", "df_stratabet['fullNameNext'] = df_stratabet['fullName'].shift(-1)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "df_stratabet.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "##### Create `player2player` column" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "df_stratabet['player2player'] = df_stratabet['fullName'] + ' - ' + df_stratabet['fullNameNext']" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "##### Create `isPossessionRetained` column\n", "When `teamId` is not followed by the same `teamId` in the following row, possession is lost. We want to creat a column that stats this." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "df_stratabet['isPossessionRetained'] = np.where(df_stratabet['teamId'] == df_stratabet['teamIdNext'], True, False)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "##### Clean Positions data" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# CODE HERE" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 4.7. Export DataFrame" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "##### Break down data into individual matches" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "lst_results = list(df_stratabet['full_fixture_date'].unique())" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "for i, g in df_stratabet.groupby('full_fixture_date'):\n", " g.to_csv(data_dir_wyscout + '/engineered/individual_matches/{}.csv'.format(i), header=True, index_label=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "##### Complete dataset" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "df_stratabet.to_csv(data_dir_wyscout + '/engineered/combined/wyscout_events_big5_1718.csv', index=None, header=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 4.8. Aggregate Data" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 4.8.1. Fixture Level" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Select columns of interest\n", "\n", "## Define columns\n", "cols = ['season',\n", " 'date_time_timestamp',\n", " 'fixture',\n", " 'team_home',\n", " 'team_away',\n", " 'teamName',\n", " 'goals_home',\n", " 'goals_away',\n", " 'eventName',\n", " 'subEventName'\n", " ]\n", "\n", "## Streamline DataFrame with columns of interest\n", "df_stratabet_select = df_stratabet[cols]\n", "\n", "## \n", "df_stratabet_select['Opponent'] = np.where(df_stratabet_select['team_home'] == df_stratabet_select['teamName'], df_stratabet_select['team_away'], df_stratabet_select['team_home'])" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "#\n", "\n", "## Group DataFrame and Aggregate on 'eventName'\n", "df_stratabet_fixture_grouped = (df_stratabet_select\n", " .groupby(['season', 'date_time_timestamp', 'fixture', 'teamName', 'Opponent', 'goals_home', 'goals_away', 'eventName'])\n", " .agg({'eventName': ['count']})\n", " )\n", "\n", "## Drop level\n", "df_stratabet_fixture_grouped.columns = df_stratabet_fixture_grouped.columns.droplevel(level=0)\n", "\n", "\n", "## Reset index\n", "df_stratabet_fixture_grouped = df_stratabet_fixture_grouped.reset_index()\n", "\n", "## Rename columns\n", "df_stratabet_fixture_grouped = df_stratabet_fixture_grouped.rename(columns={'season': 'Season',\n", " 'date_time_timestamp': 'Date',\n", " 'fixture': 'Fixture',\n", " 'teamName': 'Team',\n", " 'Opponent': 'Opponent',\n", " 'goals_home': 'Goals_Home',\n", " 'goals_away': 'Goals_Away',\n", " 'eventName': 'Event',\n", " 'count': 'Team_Value'\n", " }\n", " )\n", "\n", "## Display DataFrame\n", "df_stratabet_fixture_grouped.head()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Select columns of interest\n", "\n", "## Define columns\n", "cols = ['Season',\n", " 'Date',\n", " 'Fixture',\n", " 'Team',\n", " 'Opponent',\n", " 'Event',\n", " 'Team_Value'\n", " ]\n", "\n", "## Streamline DataFrame with columns of interest\n", "df_stratabet_fixture_grouped_select = df_stratabet_fixture_grouped[cols]" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Join DataFrame to itself on 'Date', 'Fixture', 'Team'/'Opponent', and 'Event', to join Team and Opponent together\n", "df_stratabet_fixture_grouped = pd.merge(df_stratabet_fixture_grouped, df_stratabet_fixture_grouped, how='left', left_on=['Season', 'Date', 'Fixture', 'Opponent', 'Event'], right_on = ['Season', 'Date', 'Fixture', 'Team', 'Event'])" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Clean Data\n", "\n", "## Drop columns\n", "df_stratabet_fixture_grouped = df_stratabet_fixture_grouped.drop(columns=['Team_y', 'Opponent_y', 'Goals_Home_y', 'Goals_Away_y'])\n", "\n", "## Rename columns\n", "df_stratabet_fixture_grouped = df_stratabet_fixture_grouped.rename(columns={'Season_x': 'Season',\n", " 'Team_x': 'Team',\n", " 'Opponent_x': 'Opponent',\n", " 'Goals_Home_x': 'Goals_Home',\n", " 'Goals_Away_x': 'Goals_Away',\n", " 'Team_Value_x': 'Team_Value',\n", " 'Team_Value_y': 'Opponent_Value',\n", " }\n", " )\n", "\n", "## Replace null values with zeros\n", "df_stratabet_fixture_grouped['Team_Value'] = df_stratabet_fixture_grouped['Team_Value'].replace(np.nan, 0)\n", "df_stratabet_fixture_grouped['Opponent_Value'] = df_stratabet_fixture_grouped['Opponent_Value'].replace(np.nan, 0)\n", "\n", "## Convert Opponent_Value' from Float64 to Int64 type\n", "df_stratabet_fixture_grouped['Opponent_Value'] = df_stratabet_fixture_grouped['Opponent_Value'].astype('Int64')\n", "\n", "## Display DataFrame\n", "df_stratabet_fixture_grouped.head()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "#\n", "\n", "##\n", "df_fixture_gw = (df_stratabet_fixture_grouped\n", " .groupby(['Date', 'Team'])\n", " .agg({'Team': ['nunique']})\n", " )\n", "\n", "##\n", "df_fixture_gw.columns = df_fixture_gw.columns.droplevel(level=0)\n", "\n", "\n", "##\n", "df_fixture_gw = df_fixture_gw.reset_index()\n", "\n", "##\n", "df_fixture_gw = df_fixture_gw.rename(columns={'Date': 'Date',\n", " 'nunique': 'Gameweek',\n", " }\n", " )\n", "\n", "## Groupby. See: https://stackoverflow.com/questions/18554920/pandas-aggregate-count-distinct\n", "df_fixture_gw = (df_fixture_gw.groupby(['Team', 'Date']).sum()\n", " .groupby(level=0).cumsum().reset_index()\n", " )\n", "\n", "## Display DataFrame\n", "df_fixture_gw.head()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Join DataFrame \n", "df_stratabet_fixture_grouped = pd.merge(df_stratabet_fixture_grouped, df_fixture_gw, how='left', left_on=['Date', 'Team'], right_on = ['Date', 'Team'])\n", "\n", "# Display DataFrame\n", "df_stratabet_fixture_grouped.head(50)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "##### Export DataFrame" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "df_stratabet_fixture_grouped.to_csv(data_dir_wyscout + '/engineered/combined/wyscout_aggregated_fixtures_big5_1718.csv', index=None, header=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 4.8.2. Team Level" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Group DataFrame by Team\n", "\n", "##\n", "df_stratabet_team_grouped = (df_stratabet_fixture_grouped\n", " .groupby(['Team', 'Event'])\n", " .agg({'Team_Value': ['sum'],\n", " 'Opponent_Value': ['sum']\n", " }\n", " )\n", " )\n", "\n", "##\n", "df_stratabet_team_grouped.columns = df_stratabet_team_grouped.columns.droplevel(level=0)\n", "\n", "##\n", "df_stratabet_team_grouped = df_stratabet_team_grouped.reset_index()\n", "\n", "## Rename columns\n", "df_stratabet_team_grouped.columns = ['Team', 'Event', 'Team_Value', 'Opponent_Value']\n", "\n", "## Display columns\n", "df_stratabet_team_grouped.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "##### Export DataFrame" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "df_stratabet_team_grouped.to_csv(data_dir_wyscout + '/engineered/combined/wyscout_aggregated_team_big5_1718.csv', index=None, header=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 5. Exploratory Data Analysis\n", "..." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 6. Summary\n", "This notebook scrapes data for player valuations using [Beautifulsoup](https://pypi.org/project/beautifulsoup4/) from [TransferMarkt](https://www.transfermarkt.co.uk/) using [pandas](http://pandas.pydata.org/) for data maniuplation through DataFrames and [Beautifulsoup](https://pypi.org/project/beautifulsoup4/) for webscraping." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 7. Next Steps\n", "..." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 8. References\n", "..." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---\n", "This article was written with the aid of StrataData, which is property of [Stratagem Technologies](http://www.stratagem.co/). StrataData powers the [StrataBet Sports Trading Platform](http://www.stratabet.com/), in addition to [StrataBet Premium Recommendations](http://app.stratabet.com/recommendations).\n", "\n", "***Visit my website [EddWebster.com](https://www.eddwebster.com) or my [GitHub Repository](https://github.com/eddwebster) for more projects. If you'd like to get in contact, my Twitter handle is [@eddwebster](http://www.twitter.com/eddwebster) and my email is: edd.j.webster@gmail.com.***" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "[Back to the top](#top)" ] } ], "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.6" }, "varInspector": { "cols": { "lenName": 16, "lenType": 16, "lenVar": 40 }, "kernels_config": { "python": { "delete_cmd_postfix": "", "delete_cmd_prefix": "del ", "library": "var_list.py", "varRefreshCmd": "print(var_dic_list())" }, "r": { "delete_cmd_postfix": ") ", "delete_cmd_prefix": "rm(", "library": "var_list.r", "varRefreshCmd": "cat(var_dic_list()) " } }, "oldHeight": 642, "position": { "height": "664px", "left": "1119px", "right": "20px", "top": "-7px", "width": "489px" }, "types_to_exclude": [ "module", "function", "builtin_function_or_method", "instance", "_Feature" ], "varInspector_section_display": "block", "window_display": false } }, "nbformat": 4, "nbformat_minor": 2 }