{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"
\n",
"
\n",
"
Loading BokehJS ...\n",
"
"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/javascript": [
"\n",
"(function(global) {\n",
" function now() {\n",
" return new Date();\n",
" }\n",
"\n",
" var force = \"1\";\n",
"\n",
" if (typeof (window._bokeh_onload_callbacks) === \"undefined\" || force !== \"\") {\n",
" window._bokeh_onload_callbacks = [];\n",
" window._bokeh_is_loading = undefined;\n",
" }\n",
"\n",
"\n",
" \n",
" if (typeof (window._bokeh_timeout) === \"undefined\" || force !== \"\") {\n",
" window._bokeh_timeout = Date.now() + 5000;\n",
" window._bokeh_failed_load = false;\n",
" }\n",
"\n",
" var NB_LOAD_WARNING = {'data': {'text/html':\n",
" \"\\n\"+\n",
" \"
\\n\"+\n",
" \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n",
" \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n",
" \"
\\n\"+\n",
" \"
\\n\"+\n",
" \"- re-rerun `output_notebook()` to attempt to load from CDN again, or
\\n\"+\n",
" \"- use INLINE resources instead, as so:
\\n\"+\n",
" \"
\\n\"+\n",
" \"
\\n\"+\n",
" \"from bokeh.resources import INLINE\\n\"+\n",
" \"output_notebook(resources=INLINE)\\n\"+\n",
" \"
\\n\"+\n",
" \"
\"}};\n",
"\n",
" function display_loaded() {\n",
" if (window.Bokeh !== undefined) {\n",
" Bokeh.$(\"#748050dd-d0f2-4f57-97dc-803846c11b8f\").text(\"BokehJS successfully loaded.\");\n",
" } else if (Date.now() < window._bokeh_timeout) {\n",
" setTimeout(display_loaded, 100)\n",
" }\n",
" }\n",
"\n",
" function run_callbacks() {\n",
" window._bokeh_onload_callbacks.forEach(function(callback) { callback() });\n",
" delete window._bokeh_onload_callbacks\n",
" console.info(\"Bokeh: all callbacks have finished\");\n",
" }\n",
"\n",
" function load_libs(js_urls, callback) {\n",
" window._bokeh_onload_callbacks.push(callback);\n",
" if (window._bokeh_is_loading > 0) {\n",
" console.log(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n",
" return null;\n",
" }\n",
" if (js_urls == null || js_urls.length === 0) {\n",
" run_callbacks();\n",
" return null;\n",
" }\n",
" console.log(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n",
" window._bokeh_is_loading = js_urls.length;\n",
" for (var i = 0; i < js_urls.length; i++) {\n",
" var url = js_urls[i];\n",
" var s = document.createElement('script');\n",
" s.src = url;\n",
" s.async = false;\n",
" s.onreadystatechange = s.onload = function() {\n",
" window._bokeh_is_loading--;\n",
" if (window._bokeh_is_loading === 0) {\n",
" console.log(\"Bokeh: all BokehJS libraries loaded\");\n",
" run_callbacks()\n",
" }\n",
" };\n",
" s.onerror = function() {\n",
" console.warn(\"failed to load library \" + url);\n",
" };\n",
" console.log(\"Bokeh: injecting script tag for BokehJS library: \", url);\n",
" document.getElementsByTagName(\"head\")[0].appendChild(s);\n",
" }\n",
" };var element = document.getElementById(\"748050dd-d0f2-4f57-97dc-803846c11b8f\");\n",
" if (element == null) {\n",
" console.log(\"Bokeh: ERROR: autoload.js configured with elementid '748050dd-d0f2-4f57-97dc-803846c11b8f' but no matching script tag was found. \")\n",
" return false;\n",
" }\n",
"\n",
" var js_urls = ['https://cdn.pydata.org/bokeh/release/bokeh-0.12.3.min.js', 'https://cdn.pydata.org/bokeh/release/bokeh-widgets-0.12.3.min.js'];\n",
"\n",
" var inline_js = [\n",
" function(Bokeh) {\n",
" Bokeh.set_log_level(\"info\");\n",
" },\n",
" \n",
" function(Bokeh) {\n",
" \n",
" Bokeh.$(\"#748050dd-d0f2-4f57-97dc-803846c11b8f\").text(\"BokehJS is loading...\");\n",
" },\n",
" function(Bokeh) {\n",
" console.log(\"Bokeh: injecting CSS: https://cdn.pydata.org/bokeh/release/bokeh-0.12.3.min.css\");\n",
" Bokeh.embed.inject_css(\"https://cdn.pydata.org/bokeh/release/bokeh-0.12.3.min.css\");\n",
" console.log(\"Bokeh: injecting CSS: https://cdn.pydata.org/bokeh/release/bokeh-widgets-0.12.3.min.css\");\n",
" Bokeh.embed.inject_css(\"https://cdn.pydata.org/bokeh/release/bokeh-widgets-0.12.3.min.css\");\n",
" }\n",
" ];\n",
"\n",
" function run_inline_js() {\n",
" \n",
" if ((window.Bokeh !== undefined) || (force === \"1\")) {\n",
" for (var i = 0; i < inline_js.length; i++) {\n",
" inline_js[i](window.Bokeh);\n",
" }if (force === \"1\") {\n",
" display_loaded();\n",
" }} else if (Date.now() < window._bokeh_timeout) {\n",
" setTimeout(run_inline_js, 100);\n",
" } else if (!window._bokeh_failed_load) {\n",
" console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n",
" window._bokeh_failed_load = true;\n",
" } else if (!force) {\n",
" var cell = $(\"#748050dd-d0f2-4f57-97dc-803846c11b8f\").parents('.cell').data().cell;\n",
" cell.output_area.append_execute_result(NB_LOAD_WARNING)\n",
" }\n",
"\n",
" }\n",
"\n",
" if (window._bokeh_is_loading === 0) {\n",
" console.log(\"Bokeh: BokehJS loaded, going straight to plotting\");\n",
" run_inline_js();\n",
" } else {\n",
" load_libs(js_urls, function() {\n",
" console.log(\"Bokeh: BokehJS plotting callback run at\", now());\n",
" run_inline_js();\n",
" });\n",
" }\n",
"}(this));"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import pandas as pd\n",
"from bokeh.layouts import gridplot\n",
"from bokeh.plotting import figure, show, output_file\n",
"from bokeh.charts import Bar\n",
"import numpy as np\n",
"import bokeh.plotting as bk\n",
"bk.output_notebook()"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# Columns Definition\n",
"\n",
"k_columns = (\"Div\", \"Date\", \"HomeTeam\", \"AwayTeam\")\n",
"\n",
"p_columns = k_columns + (\"FTHG\", \"FTAG\", \"FTR\", \"HTHG\", \"HTAG\", \"HTR\")\n",
"\n",
"s_columns = k_columns + (\"Attendance\", \"HS\", \"AS\", \"HST\", \"AST\", \"HC\", \"AC\", \"HF\", \"AF\", \"HY\", \"AY\", \"HR\", \"AR\")"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"d1_1516 = pd.read_csv(\"./data/D1_1516.csv\")\n",
"sp1_1516 = pd.read_csv(\"./data/SP1_1516.csv\")"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Div | \n",
" Date | \n",
" HomeTeam | \n",
" AwayTeam | \n",
" FTHG | \n",
" FTAG | \n",
" FTR | \n",
" HTHG | \n",
" HTAG | \n",
" HTR | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" D1 | \n",
" 14/08/15 | \n",
" Bayern Munich | \n",
" Hamburg | \n",
" 5 | \n",
" 0 | \n",
" H | \n",
" 1 | \n",
" 0 | \n",
" H | \n",
"
\n",
" \n",
" 1 | \n",
" D1 | \n",
" 15/08/15 | \n",
" Augsburg | \n",
" Hertha | \n",
" 0 | \n",
" 1 | \n",
" A | \n",
" 0 | \n",
" 0 | \n",
" D | \n",
"
\n",
" \n",
" 2 | \n",
" D1 | \n",
" 15/08/15 | \n",
" Darmstadt | \n",
" Hannover | \n",
" 2 | \n",
" 2 | \n",
" D | \n",
" 1 | \n",
" 0 | \n",
" H | \n",
"
\n",
" \n",
" 3 | \n",
" D1 | \n",
" 15/08/15 | \n",
" Dortmund | \n",
" M'gladbach | \n",
" 4 | \n",
" 0 | \n",
" H | \n",
" 3 | \n",
" 0 | \n",
" H | \n",
"
\n",
" \n",
" 4 | \n",
" D1 | \n",
" 15/08/15 | \n",
" Leverkusen | \n",
" Hoffenheim | \n",
" 2 | \n",
" 1 | \n",
" H | \n",
" 1 | \n",
" 1 | \n",
" D | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Div Date HomeTeam AwayTeam FTHG FTAG FTR HTHG HTAG HTR\n",
"0 D1 14/08/15 Bayern Munich Hamburg 5 0 H 1 0 H\n",
"1 D1 15/08/15 Augsburg Hertha 0 1 A 0 0 D\n",
"2 D1 15/08/15 Darmstadt Hannover 2 2 D 1 0 H\n",
"3 D1 15/08/15 Dortmund M'gladbach 4 0 H 3 0 H\n",
"4 D1 15/08/15 Leverkusen Hoffenheim 2 1 H 1 1 D"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"d1_1516.ix[:, p_columns].head()"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Div | \n",
" Date | \n",
" HomeTeam | \n",
" AwayTeam | \n",
" Attendance | \n",
" HS | \n",
" AS | \n",
" HST | \n",
" AST | \n",
" HC | \n",
" AC | \n",
" HF | \n",
" AF | \n",
" HY | \n",
" AY | \n",
" HR | \n",
" AR | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" D1 | \n",
" 14/08/15 | \n",
" Bayern Munich | \n",
" Hamburg | \n",
" NaN | \n",
" 23 | \n",
" 5 | \n",
" 9 | \n",
" 1 | \n",
" 7 | \n",
" 0 | \n",
" 10 | \n",
" 12 | \n",
" 2 | \n",
" 2 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 1 | \n",
" D1 | \n",
" 15/08/15 | \n",
" Augsburg | \n",
" Hertha | \n",
" NaN | \n",
" 20 | \n",
" 11 | \n",
" 3 | \n",
" 4 | \n",
" 7 | \n",
" 4 | \n",
" 20 | \n",
" 22 | \n",
" 1 | \n",
" 2 | \n",
" 1 | \n",
" 1 | \n",
"
\n",
" \n",
" 2 | \n",
" D1 | \n",
" 15/08/15 | \n",
" Darmstadt | \n",
" Hannover | \n",
" NaN | \n",
" 11 | \n",
" 14 | \n",
" 4 | \n",
" 5 | \n",
" 5 | \n",
" 9 | \n",
" 21 | \n",
" 22 | \n",
" 1 | \n",
" 2 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 3 | \n",
" D1 | \n",
" 15/08/15 | \n",
" Dortmund | \n",
" M'gladbach | \n",
" NaN | \n",
" 17 | \n",
" 5 | \n",
" 7 | \n",
" 1 | \n",
" 3 | \n",
" 5 | \n",
" 13 | \n",
" 14 | \n",
" 0 | \n",
" 1 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 4 | \n",
" D1 | \n",
" 15/08/15 | \n",
" Leverkusen | \n",
" Hoffenheim | \n",
" NaN | \n",
" 25 | \n",
" 6 | \n",
" 9 | \n",
" 2 | \n",
" 13 | \n",
" 5 | \n",
" 12 | \n",
" 18 | \n",
" 1 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Div Date HomeTeam AwayTeam Attendance HS AS HST AST HC \\\n",
"0 D1 14/08/15 Bayern Munich Hamburg NaN 23 5 9 1 7 \n",
"1 D1 15/08/15 Augsburg Hertha NaN 20 11 3 4 7 \n",
"2 D1 15/08/15 Darmstadt Hannover NaN 11 14 4 5 5 \n",
"3 D1 15/08/15 Dortmund M'gladbach NaN 17 5 7 1 3 \n",
"4 D1 15/08/15 Leverkusen Hoffenheim NaN 25 6 9 2 13 \n",
"\n",
" AC HF AF HY AY HR AR \n",
"0 0 10 12 2 2 0 0 \n",
"1 4 20 22 1 2 1 1 \n",
"2 9 21 22 1 2 0 0 \n",
"3 5 13 14 0 1 0 0 \n",
"4 5 12 18 1 0 0 0 "
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"d1_1516.ix[:, s_columns].head()"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"
\n",
" \n",
" \n",
" | \n",
" FTHG | \n",
" FTAG | \n",
" HTHG | \n",
" HTAG | \n",
"
\n",
" \n",
" \n",
" \n",
" count | \n",
" 306.000000 | \n",
" 306.000000 | \n",
" 306.000000 | \n",
" 306.000000 | \n",
"
\n",
" \n",
" mean | \n",
" 1.565359 | \n",
" 1.264706 | \n",
" 0.696078 | \n",
" 0.549020 | \n",
"
\n",
" \n",
" std | \n",
" 1.363689 | \n",
" 1.130151 | \n",
" 0.815295 | \n",
" 0.676938 | \n",
"
\n",
" \n",
" min | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" 25% | \n",
" 1.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" 50% | \n",
" 1.000000 | \n",
" 1.000000 | \n",
" 1.000000 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" 75% | \n",
" 2.000000 | \n",
" 2.000000 | \n",
" 1.000000 | \n",
" 1.000000 | \n",
"
\n",
" \n",
" max | \n",
" 6.000000 | \n",
" 5.000000 | \n",
" 4.000000 | \n",
" 3.000000 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" FTHG FTAG HTHG HTAG\n",
"count 306.000000 306.000000 306.000000 306.000000\n",
"mean 1.565359 1.264706 0.696078 0.549020\n",
"std 1.363689 1.130151 0.815295 0.676938\n",
"min 0.000000 0.000000 0.000000 0.000000\n",
"25% 1.000000 0.000000 0.000000 0.000000\n",
"50% 1.000000 1.000000 1.000000 0.000000\n",
"75% 2.000000 2.000000 1.000000 1.000000\n",
"max 6.000000 5.000000 4.000000 3.000000"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"d1_1516.ix[:, p_columns].describe()"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Attendance | \n",
" HS | \n",
" AS | \n",
" HST | \n",
" AST | \n",
" HC | \n",
" AC | \n",
" HF | \n",
" AF | \n",
" HY | \n",
" AY | \n",
" HR | \n",
" AR | \n",
"
\n",
" \n",
" \n",
" \n",
" count | \n",
" 0.0 | \n",
" 306.000000 | \n",
" 306.000000 | \n",
" 306.000000 | \n",
" 306.000000 | \n",
" 306.000000 | \n",
" 306.000000 | \n",
" 306.000000 | \n",
" 306.000000 | \n",
" 306.000000 | \n",
" 306.000000 | \n",
" 306.000000 | \n",
" 306.000000 | \n",
"
\n",
" \n",
" mean | \n",
" NaN | \n",
" 14.035948 | \n",
" 11.598039 | \n",
" 5.173203 | \n",
" 4.333333 | \n",
" 5.287582 | \n",
" 4.218954 | \n",
" 14.183007 | \n",
" 14.862745 | \n",
" 1.790850 | \n",
" 2.003268 | \n",
" 0.052288 | \n",
" 0.075163 | \n",
"
\n",
" \n",
" std | \n",
" NaN | \n",
" 5.655870 | \n",
" 4.557667 | \n",
" 2.831799 | \n",
" 2.337155 | \n",
" 3.042159 | \n",
" 2.413303 | \n",
" 4.053637 | \n",
" 4.290376 | \n",
" 1.234231 | \n",
" 1.299428 | \n",
" 0.222971 | \n",
" 0.264087 | \n",
"
\n",
" \n",
" min | \n",
" NaN | \n",
" 1.000000 | \n",
" 2.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 4.000000 | \n",
" 2.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" 25% | \n",
" NaN | \n",
" 10.000000 | \n",
" 8.000000 | \n",
" 3.000000 | \n",
" 3.000000 | \n",
" 3.000000 | \n",
" 2.250000 | \n",
" 11.000000 | \n",
" 12.000000 | \n",
" 1.000000 | \n",
" 1.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" 50% | \n",
" NaN | \n",
" 14.000000 | \n",
" 11.000000 | \n",
" 5.000000 | \n",
" 4.000000 | \n",
" 5.000000 | \n",
" 4.000000 | \n",
" 14.000000 | \n",
" 15.000000 | \n",
" 2.000000 | \n",
" 2.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" 75% | \n",
" NaN | \n",
" 17.000000 | \n",
" 15.000000 | \n",
" 7.000000 | \n",
" 6.000000 | \n",
" 7.000000 | \n",
" 6.000000 | \n",
" 17.000000 | \n",
" 18.000000 | \n",
" 3.000000 | \n",
" 3.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" max | \n",
" NaN | \n",
" 36.000000 | \n",
" 24.000000 | \n",
" 14.000000 | \n",
" 12.000000 | \n",
" 18.000000 | \n",
" 13.000000 | \n",
" 26.000000 | \n",
" 29.000000 | \n",
" 6.000000 | \n",
" 6.000000 | \n",
" 1.000000 | \n",
" 1.000000 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Attendance HS AS HST AST HC \\\n",
"count 0.0 306.000000 306.000000 306.000000 306.000000 306.000000 \n",
"mean NaN 14.035948 11.598039 5.173203 4.333333 5.287582 \n",
"std NaN 5.655870 4.557667 2.831799 2.337155 3.042159 \n",
"min NaN 1.000000 2.000000 0.000000 0.000000 0.000000 \n",
"25% NaN 10.000000 8.000000 3.000000 3.000000 3.000000 \n",
"50% NaN 14.000000 11.000000 5.000000 4.000000 5.000000 \n",
"75% NaN 17.000000 15.000000 7.000000 6.000000 7.000000 \n",
"max NaN 36.000000 24.000000 14.000000 12.000000 18.000000 \n",
"\n",
" AC HF AF HY AY HR \\\n",
"count 306.000000 306.000000 306.000000 306.000000 306.000000 306.000000 \n",
"mean 4.218954 14.183007 14.862745 1.790850 2.003268 0.052288 \n",
"std 2.413303 4.053637 4.290376 1.234231 1.299428 0.222971 \n",
"min 0.000000 4.000000 2.000000 0.000000 0.000000 0.000000 \n",
"25% 2.250000 11.000000 12.000000 1.000000 1.000000 0.000000 \n",
"50% 4.000000 14.000000 15.000000 2.000000 2.000000 0.000000 \n",
"75% 6.000000 17.000000 18.000000 3.000000 3.000000 0.000000 \n",
"max 13.000000 26.000000 29.000000 6.000000 6.000000 1.000000 \n",
"\n",
" AR \n",
"count 306.000000 \n",
"mean 0.075163 \n",
"std 0.264087 \n",
"min 0.000000 \n",
"25% 0.000000 \n",
"50% 0.000000 \n",
"75% 0.000000 \n",
"max 1.000000 "
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"d1_1516.ix[:, s_columns].describe()"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"def create_plot(title, hist, edges, fill_color=\"#00BCD4\"):\n",
" \"\"\"Create a plot object.\n",
" \n",
" Keyword arguments:\n",
" title -- A caption of plot.\n",
" hist -- \n",
" edges -- \n",
"\"\"\"\n",
" plot = figure(title=title,tools=\"save\", background_fill_color=\"#E8DDCB\")\n",
" plot.quad(top=hist, bottom=0, left=edges[:-1], right=edges[1:], fill_color=fill_color, line_color=\"#424242\")\n",
" \n",
" return plot\n",
"\n",
"def show_single_plot(plot):\n",
" \"\"\"Show a plot.\n",
" \n",
" Keyword arguments:\n",
" plot -- plot object\n",
" \"\"\"\n",
" show(gridplot(plot, ncols=1, plot_width=400, plot_height=400, toolbar_location=None))"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# Creating plots\n",
"hist_home, edges_home = np.histogram(d1_1516[\"FTHG\"], bins=7)\n",
"plot_d1_hg = create_plot(\"Bundesliga D1 15/16 Home Team Goal\", hist_home, edges_home)\n",
"\n",
"hist_away, edges_away = np.histogram(d1_1516[\"FTAG\"], bins=6)\n",
"plot_d1_ag = create_plot(\"Bundesliga D115/16 Away Team Goal\", hist_away, edges_away)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
" \n",
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Goals\n",
"show(gridplot(plot_d1_hg, plot_d1_ag, ncols=2, plot_width=400, plot_height=400))"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
" \n",
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"p = Bar(d1_1516, \"FTHG\", values=\"FTHG\", agg=\"count\", title=\"Bundesliga D1 15/16 Game Results\" , legend=\"\")\n",
"show_single_plot(p)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# ポアソン分布\n",
"\n",
"# $f(X;\\lambda) = \\frac{\\lambda ^{X}}{X!}e^{-\\lambda}$"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
" \n",
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Poisson Distribution\n",
"\n",
"samples = np.random.poisson(lam=1.5, size=10000)\n",
"hist_dummy, edges_dummy = np.histogram(samples, density=True, bins=max(samples))\n",
"p3 = create_plot(\"Poisson Distribution\", hist_dummy, edges_dummy)\n",
"show(gridplot(p3, ncols=1, plot_width=400, plot_height=400, toolbar_location=None))"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
" \n",
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Shots\n",
"hist_shot, edges_shot = np.histogram(d1_1516[\"HS\"], bins=15)\n",
"plot_shot = create_plot(\"Bundesliga D1 15/16 Shots\", hist_shot, edges_shot)\n",
"show_single_plot(plot_shot)"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
" \n",
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"p = Bar(d1_1516, \"FTR\", values=\"FTR\", agg=\"count\", title=\"Bundesliga D1 15/16 Game Results\")\n",
"show_single_plot(p)"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
" \n",
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Creating plots\n",
"hist_home, edges_home = np.histogram(sp1_1516[\"FTHG\"], bins=10)\n",
"plot_sp1_hg = create_plot(\"Liga Española D1 15/16 Home Team Goal\", hist_home, edges_home, \"#FF9800\")\n",
"\n",
"hist_away, edges_away = np.histogram(sp1_1516[\"FTAG\"], bins=9)\n",
"plot_sp1_ag = create_plot(\"Liga Española D1 15/16 Away Team Goal\", hist_away, edges_away, \"#FF9800\")\n",
"\n",
"show(gridplot(plot_d1_hg, plot_d1_ag, plot_sp1_hg, plot_sp1_ag , ncols=2, plot_width=400, plot_height=400))"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"
\n",
" \n",
" \n",
" | \n",
" FTHG | \n",
" FTAG | \n",
" HTHG | \n",
" HTAG | \n",
" HS | \n",
" AS | \n",
" HST | \n",
" AST | \n",
" HF | \n",
" AF | \n",
" ... | \n",
" BbAv<2.5 | \n",
" BbAH | \n",
" BbAHh | \n",
" BbMxAHH | \n",
" BbAvAHH | \n",
" BbMxAHA | \n",
" BbAvAHA | \n",
" PSCH | \n",
" PSCD | \n",
" PSCA | \n",
"
\n",
" \n",
" \n",
" \n",
" count | \n",
" 380.000000 | \n",
" 380.000000 | \n",
" 380.000000 | \n",
" 380.000000 | \n",
" 380.000000 | \n",
" 380.000000 | \n",
" 380.000000 | \n",
" 380.000000 | \n",
" 380.000000 | \n",
" 380.000000 | \n",
" ... | \n",
" 380.000000 | \n",
" 380.000000 | \n",
" 380.000000 | \n",
" 380.000000 | \n",
" 380.000000 | \n",
" 380.000000 | \n",
" 380.000000 | \n",
" 380.000000 | \n",
" 380.000000 | \n",
" 380.000000 | \n",
"
\n",
" \n",
" mean | \n",
" 1.618421 | \n",
" 1.126316 | \n",
" 0.742105 | \n",
" 0.505263 | \n",
" 13.236842 | \n",
" 10.526316 | \n",
" 4.863158 | \n",
" 3.757895 | \n",
" 13.602632 | \n",
" 13.594737 | \n",
" ... | \n",
" 2.095368 | \n",
" 27.331579 | \n",
" -0.403289 | \n",
" 1.994000 | \n",
" 1.935158 | \n",
" 1.994263 | \n",
" 1.936579 | \n",
" 3.108974 | \n",
" 4.817711 | \n",
" 6.026421 | \n",
"
\n",
" \n",
" std | \n",
" 1.450749 | \n",
" 1.148518 | \n",
" 0.899613 | \n",
" 0.709880 | \n",
" 4.784177 | \n",
" 4.448099 | \n",
" 2.670509 | \n",
" 2.107736 | \n",
" 4.290567 | \n",
" 4.346955 | \n",
" ... | \n",
" 0.746049 | \n",
" 2.341673 | \n",
" 1.033264 | \n",
" 0.163487 | \n",
" 0.152572 | \n",
" 0.161801 | \n",
" 0.150245 | \n",
" 3.567728 | \n",
" 3.080678 | \n",
" 6.712190 | \n",
"
\n",
" \n",
" min | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 2.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 4.000000 | \n",
" 2.000000 | \n",
" ... | \n",
" 1.450000 | \n",
" 21.000000 | \n",
" -3.500000 | \n",
" 1.630000 | \n",
" 1.590000 | \n",
" 1.620000 | \n",
" 1.580000 | \n",
" 1.050000 | \n",
" 2.990000 | \n",
" 1.090000 | \n",
"
\n",
" \n",
" 25% | \n",
" 1.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 10.000000 | \n",
" 7.000000 | \n",
" 3.000000 | \n",
" 2.000000 | \n",
" 11.000000 | \n",
" 11.000000 | \n",
" ... | \n",
" 1.660000 | \n",
" 26.000000 | \n",
" -1.000000 | \n",
" 1.880000 | \n",
" 1.837500 | \n",
" 1.880000 | \n",
" 1.830000 | \n",
" 1.597500 | \n",
" 3.417500 | \n",
" 2.640000 | \n",
"
\n",
" \n",
" 50% | \n",
" 1.000000 | \n",
" 1.000000 | \n",
" 1.000000 | \n",
" 0.000000 | \n",
" 13.000000 | \n",
" 10.000000 | \n",
" 4.500000 | \n",
" 4.000000 | \n",
" 13.000000 | \n",
" 13.000000 | \n",
" ... | \n",
" 1.820000 | \n",
" 28.000000 | \n",
" -0.250000 | \n",
" 1.980000 | \n",
" 1.920000 | \n",
" 1.990000 | \n",
" 1.930000 | \n",
" 2.120000 | \n",
" 3.690000 | \n",
" 3.850000 | \n",
"
\n",
" \n",
" 75% | \n",
" 2.000000 | \n",
" 2.000000 | \n",
" 1.000000 | \n",
" 1.000000 | \n",
" 16.000000 | \n",
" 13.000000 | \n",
" 6.000000 | \n",
" 5.000000 | \n",
" 16.000000 | \n",
" 16.000000 | \n",
" ... | \n",
" 2.125000 | \n",
" 29.000000 | \n",
" 0.062500 | \n",
" 2.090000 | \n",
" 2.020000 | \n",
" 2.080000 | \n",
" 2.020000 | \n",
" 2.915000 | \n",
" 4.525000 | \n",
" 6.390000 | \n",
"
\n",
" \n",
" max | \n",
" 10.000000 | \n",
" 8.000000 | \n",
" 5.000000 | \n",
" 4.000000 | \n",
" 31.000000 | \n",
" 28.000000 | \n",
" 15.000000 | \n",
" 11.000000 | \n",
" 29.000000 | \n",
" 27.000000 | \n",
" ... | \n",
" 6.220000 | \n",
" 33.000000 | \n",
" 2.750000 | \n",
" 2.550000 | \n",
" 2.440000 | \n",
" 2.550000 | \n",
" 2.420000 | \n",
" 35.500000 | \n",
" 24.500000 | \n",
" 46.000000 | \n",
"
\n",
" \n",
"
\n",
"
8 rows × 58 columns
\n",
"
"
],
"text/plain": [
" FTHG FTAG HTHG HTAG HS AS \\\n",
"count 380.000000 380.000000 380.000000 380.000000 380.000000 380.000000 \n",
"mean 1.618421 1.126316 0.742105 0.505263 13.236842 10.526316 \n",
"std 1.450749 1.148518 0.899613 0.709880 4.784177 4.448099 \n",
"min 0.000000 0.000000 0.000000 0.000000 2.000000 0.000000 \n",
"25% 1.000000 0.000000 0.000000 0.000000 10.000000 7.000000 \n",
"50% 1.000000 1.000000 1.000000 0.000000 13.000000 10.000000 \n",
"75% 2.000000 2.000000 1.000000 1.000000 16.000000 13.000000 \n",
"max 10.000000 8.000000 5.000000 4.000000 31.000000 28.000000 \n",
"\n",
" HST AST HF AF ... BbAv<2.5 \\\n",
"count 380.000000 380.000000 380.000000 380.000000 ... 380.000000 \n",
"mean 4.863158 3.757895 13.602632 13.594737 ... 2.095368 \n",
"std 2.670509 2.107736 4.290567 4.346955 ... 0.746049 \n",
"min 0.000000 0.000000 4.000000 2.000000 ... 1.450000 \n",
"25% 3.000000 2.000000 11.000000 11.000000 ... 1.660000 \n",
"50% 4.500000 4.000000 13.000000 13.000000 ... 1.820000 \n",
"75% 6.000000 5.000000 16.000000 16.000000 ... 2.125000 \n",
"max 15.000000 11.000000 29.000000 27.000000 ... 6.220000 \n",
"\n",
" BbAH BbAHh BbMxAHH BbAvAHH BbMxAHA BbAvAHA \\\n",
"count 380.000000 380.000000 380.000000 380.000000 380.000000 380.000000 \n",
"mean 27.331579 -0.403289 1.994000 1.935158 1.994263 1.936579 \n",
"std 2.341673 1.033264 0.163487 0.152572 0.161801 0.150245 \n",
"min 21.000000 -3.500000 1.630000 1.590000 1.620000 1.580000 \n",
"25% 26.000000 -1.000000 1.880000 1.837500 1.880000 1.830000 \n",
"50% 28.000000 -0.250000 1.980000 1.920000 1.990000 1.930000 \n",
"75% 29.000000 0.062500 2.090000 2.020000 2.080000 2.020000 \n",
"max 33.000000 2.750000 2.550000 2.440000 2.550000 2.420000 \n",
"\n",
" PSCH PSCD PSCA \n",
"count 380.000000 380.000000 380.000000 \n",
"mean 3.108974 4.817711 6.026421 \n",
"std 3.567728 3.080678 6.712190 \n",
"min 1.050000 2.990000 1.090000 \n",
"25% 1.597500 3.417500 2.640000 \n",
"50% 2.120000 3.690000 3.850000 \n",
"75% 2.915000 4.525000 6.390000 \n",
"max 35.500000 24.500000 46.000000 \n",
"\n",
"[8 rows x 58 columns]"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sp1_1516.describe()"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Div | \n",
" Date | \n",
" HomeTeam | \n",
" AwayTeam | \n",
" FTHG | \n",
" FTAG | \n",
" FTR | \n",
" HTHG | \n",
" HTAG | \n",
" HTR | \n",
"
\n",
" \n",
" \n",
" \n",
" 157 | \n",
" SP1 | \n",
" 20/12/15 | \n",
" Real Madrid | \n",
" Vallecano | \n",
" 10 | \n",
" 2 | \n",
" H | \n",
" 4 | \n",
" 2 | \n",
" H | \n",
"
\n",
" \n",
" 272 | \n",
" SP1 | \n",
" 05/03/16 | \n",
" Real Madrid | \n",
" Celta | \n",
" 7 | \n",
" 1 | \n",
" H | \n",
" 1 | \n",
" 0 | \n",
" H | \n",
"
\n",
" \n",
" 333 | \n",
" SP1 | \n",
" 20/04/16 | \n",
" La Coruna | \n",
" Barcelona | \n",
" 0 | \n",
" 8 | \n",
" A | \n",
" 0 | \n",
" 2 | \n",
" A | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Div Date HomeTeam AwayTeam FTHG FTAG FTR HTHG HTAG HTR\n",
"157 SP1 20/12/15 Real Madrid Vallecano 10 2 H 4 2 H\n",
"272 SP1 05/03/16 Real Madrid Celta 7 1 H 1 0 H\n",
"333 SP1 20/04/16 La Coruna Barcelona 0 8 A 0 2 A"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"threshold = 6\n",
"sp1_1516[(sp1_1516.FTHG > threshold) | (sp1_1516.FTAG > threshold)].ix[:, p_columns]"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"
\n",
" \n",
" \n",
" | \n",
" FTHG | \n",
" FTAG | \n",
" HTHG | \n",
" HTAG | \n",
"
\n",
" \n",
" \n",
" \n",
" count | \n",
" 19.000000 | \n",
" 19.000000 | \n",
" 19.000000 | \n",
" 19.000000 | \n",
"
\n",
" \n",
" mean | \n",
" 3.526316 | \n",
" 0.736842 | \n",
" 1.210526 | \n",
" 0.368421 | \n",
"
\n",
" \n",
" std | \n",
" 1.806421 | \n",
" 0.805682 | \n",
" 1.031662 | \n",
" 0.597265 | \n",
"
\n",
" \n",
" min | \n",
" 1.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" 25% | \n",
" 2.000000 | \n",
" 0.000000 | \n",
" 0.500000 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" 50% | \n",
" 4.000000 | \n",
" 1.000000 | \n",
" 1.000000 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" 75% | \n",
" 5.000000 | \n",
" 1.000000 | \n",
" 2.000000 | \n",
" 1.000000 | \n",
"
\n",
" \n",
" max | \n",
" 6.000000 | \n",
" 2.000000 | \n",
" 4.000000 | \n",
" 2.000000 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" FTHG FTAG HTHG HTAG\n",
"count 19.000000 19.000000 19.000000 19.000000\n",
"mean 3.526316 0.736842 1.210526 0.368421\n",
"std 1.806421 0.805682 1.031662 0.597265\n",
"min 1.000000 0.000000 0.000000 0.000000\n",
"25% 2.000000 0.000000 0.500000 0.000000\n",
"50% 4.000000 1.000000 1.000000 0.000000\n",
"75% 5.000000 1.000000 2.000000 1.000000\n",
"max 6.000000 2.000000 4.000000 2.000000"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sp1_1516[(sp1_1516.HomeTeam == \"Barcelona\")].ix[:, p_columns].describe()"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"
\n",
" \n",
" \n",
" | \n",
" FTHG | \n",
"
\n",
" \n",
" HomeTeam | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" Real Madrid | \n",
" 70 | \n",
"
\n",
" \n",
" Barcelona | \n",
" 67 | \n",
"
\n",
" \n",
" Sevilla | \n",
" 38 | \n",
"
\n",
" \n",
" Ath Bilbao | \n",
" 35 | \n",
"
\n",
" \n",
" Ath Madrid | \n",
" 33 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" FTHG\n",
"HomeTeam \n",
"Real Madrid 70\n",
"Barcelona 67\n",
"Sevilla 38\n",
"Ath Bilbao 35\n",
"Ath Madrid 33"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sp1_1516.groupby(\"HomeTeam\").sum().ix[:, (\"FTHG\", )].sort_values(by=\"FTHG\", ascending=False).head()"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"
\n",
" \n",
" \n",
" | \n",
" FTAG | \n",
"
\n",
" \n",
" AwayTeam | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" Barcelona | \n",
" 45 | \n",
"
\n",
" \n",
" Real Madrid | \n",
" 40 | \n",
"
\n",
" \n",
" Ath Madrid | \n",
" 30 | \n",
"
\n",
" \n",
" Ath Bilbao | \n",
" 23 | \n",
"
\n",
" \n",
" Vallecano | \n",
" 23 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" FTAG\n",
"AwayTeam \n",
"Barcelona 45\n",
"Real Madrid 40\n",
"Ath Madrid 30\n",
"Ath Bilbao 23\n",
"Vallecano 23"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sp1_1516.groupby(\"AwayTeam\").sum().ix[:, (\"FTAG\", )].sort_values(by=\"FTAG\", ascending=False).head()"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# ranking = sp1_1516.groupby(\"HomeTeam\").sum().ix[:, (\"FTHG\",)].sort_values(by=\"FTHG\", ascending=False).index"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
" \n",
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"p = Bar(sp1_1516, label=\"HomeTeam\", values=\"FTHG\", agg=\"sum\",\n",
" title=\"Liga Española D1 15/16 HomeTeam Goals\", height=400, plot_width=900, legend=\"\")\n",
"\n",
"show(p)"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.5.2"
}
},
"nbformat": 4,
"nbformat_minor": 0
}