{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"<center><h1>Kansas City Chiefs Special Plays</h1></center>","metadata":{}},{"cell_type":"markdown","source":"<center><h2>Table of Contents</h2></center>\n\n* [Importing Libraries](#0)\n* [Function to Load Video File](#1)\n* [Data Loading](#2)\n\n<h3>Kickoff Return Analysis</h3>\n\n* [Data Preparation: Kickoff Return](#3)\n* [Merging Data with Pro Football Focus Data for more insights](#4)\n* [Grouping Data by Below, Above 25 Yards & Lossing Yrads](#5)\n\n    <h3>Kickoff Return Below, Above - 25 Yards & Lossing Yrads Analysis</h3>\n    \n    * [Kickoff Return Below 25 Yards](#6)\n        * [Below 25 Yards 2018](#7)\n            * [Below 25 Yards 2018 More Insights](#8)\n                * [Video Model For Clear View](#9)\n        * [Below 25 Yards 2019](#10)\n            * [Below 25 Yards 2019 More Insights](#11)\n                * [Video Model For Clear View](#12)\n        * [Below 25 Yards 2020](#13)\n            * [Below 25 Yards 2020 More Insights](#14)\n                * [Video Model For Clear View](#15)\n    * [Kickoff Return Above 25 Yards](#16)\n        * [Above 25 Yards 2018](#17)\n            * [Above 25 Yards 2018 More Insights](#18)\n                * [Video Model For Clear View](#19)\n        * [Above 25 Yards 2019](#20)\n            * [Above 25 Yards 2019 More Insights](#21)\n                * [Video Model For Clear View](#22)\n        * [Above 25 Yards 2020](#23)\n            * [Above 25 Yards 2020 More Insights](#24)\n                * [Video Model For Clear View](#25)\n    * [Kickoff Return Lossing Yards](#26)\n        * [Lossing Yards](#27)\n            * [Lossing Yards. More Insights](#28)\n                * [Video Model For Clear View](#29)\n        \n        \n <h3>Stats of 32 NFL Teams</h3>\n \n* [Special Team Play Stats for 32 NFL Teams](https://www.kaggle.com/kushtrivedi14728/python-nfl-bigdatabowl-2022-eda) \n        \n <h3>Vanquishing Playoffs Teams 2021 - 2022</h3>\n \n   * [Green Bay Packers Special Plays](https://www.kaggle.com/kushtrivedi14728/green-bay-packers-special-plays)\n   * [Tampa Bay Buccaneers Special Plays](https://www.kaggle.com/kushtrivedi14728/tampa-bay-buccaneers-special-plays)\n   * [Los Angeles Rams Special Plays](https://www.kaggle.com/kushtrivedi14728/los-angeles-rams-special-plays)\n   * [Dallas Cowboys Special Plays](https://www.kaggle.com/kushtrivedi14728/dallas-cowboys-special-plays)\n   * [Tennessee Titans Special Plays](https://www.kaggle.com/kushtrivedi14728/tennessee-titans-special-plays)","metadata":{}},{"cell_type":"markdown","source":"<a id=\"0\"></a> <br>\n# Import Libraries","metadata":{}},{"cell_type":"code","source":"# This Python 3 environment comes with many helpful analytics libraries installed\n# It is defined by the kaggle/python Docker image: https://github.com/kaggle/docker-python\n# For example, here's several helpful packages to load\n\nimport numpy as np # linear algebra\nimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\nfrom IPython.display import HTML\nfrom base64 import b64encode\n\n# Input data files are available in the read-only \"../input/\" directory\n# For example, running this (by clicking run or pressing Shift+Enter) will list all files under the input directory\n\nimport os\nfor dirname, _, filenames in os.walk('/kaggle/input'):\n    for filename in filenames:\n        print(os.path.join(dirname, filename))\n\n# You can write up to 20GB to the current directory (/kaggle/working/) that gets preserved as output when you create a version using \"Save & Run All\" \n# You can also write temporary files to /kaggle/temp/, but they won't be saved outside of the current session","metadata":{"_kg_hide-input":false,"_kg_hide-output":true,"execution":{"iopub.status.busy":"2022-01-02T03:39:01.170463Z","iopub.execute_input":"2022-01-02T03:39:01.170953Z","iopub.status.idle":"2022-01-02T03:39:01.235569Z","shell.execute_reply.started":"2022-01-02T03:39:01.170784Z","shell.execute_reply":"2022-01-02T03:39:01.234422Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"**<p id='1'><li>Function to Load Video File</li></p>**","metadata":{}},{"cell_type":"code","source":"def playVideo(videoFile):\n    html = ''\n    video = open(videoFile,'rb').read()\n    src = 'data:video/mp4;base64,' + b64encode(video).decode()\n    html += '<video width=1100 controls autoplay loop><source src=\"%s\" type=\"video/mp4\"></video>' % src \n    return HTML(html)","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2022-01-02T03:39:01.238126Z","iopub.execute_input":"2022-01-02T03:39:01.238387Z","iopub.status.idle":"2022-01-02T03:39:01.244113Z","shell.execute_reply.started":"2022-01-02T03:39:01.238358Z","shell.execute_reply":"2022-01-02T03:39:01.243137Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"<a id=\"2\"></a> <br>\n# Data Loading","metadata":{}},{"cell_type":"code","source":"extraPointsKC2018 = pd.read_csv('../input/kansas-city-chiefs-special-plays-2018-to-2020/KC_ExtraPoint_2018.csv')\nextraPointsKC2019 = pd.read_csv('../input/kansas-city-chiefs-special-plays-2018-to-2020/KC_ExtraPoint_2019.csv')\nextraPointsKC2020 = pd.read_csv('../input/kansas-city-chiefs-special-plays-2018-to-2020/KC_ExtraPoint_2020.csv')\n\nfieldGoalsKC2018 = pd.read_csv('../input/kansas-city-chiefs-special-plays-2018-to-2020/KC_FiledGoals_2018.csv')\nfieldGoalsKC2019 = pd.read_csv('../input/kansas-city-chiefs-special-plays-2018-to-2020/KC_FiledGoals_2019.csv')\nfieldGoalsKC2020 = pd.read_csv('../input/kansas-city-chiefs-special-plays-2018-to-2020/KC_FiledGoals_2020.csv')\n\nkickoffsKC2018 = pd.read_csv('../input/kansas-city-chiefs-special-plays-2018-to-2020/KC_Kickoffs_2018.csv')\nkickoffsKC2019 = pd.read_csv('../input/kansas-city-chiefs-special-plays-2018-to-2020/KC_Kickoffs_2019.csv')\nkickoffsKC2020 = pd.read_csv('../input/kansas-city-chiefs-special-plays-2018-to-2020/KC_Kickoffs_2020.csv')\n\npuntsKC2018 = pd.read_csv('../input/kansas-city-chiefs-special-plays-2018-to-2020/KC_Punts_2018.csv')\npuntsKC2019 = pd.read_csv('../input/kansas-city-chiefs-special-plays-2018-to-2020/KC_Punts_2019.csv')\npuntsKC2020 = pd.read_csv('../input/kansas-city-chiefs-special-plays-2018-to-2020/KC_Punts_2020.csv')\n\npFFData = pd.read_csv('../input/nfl-big-data-bowl-2022/PFFScoutingData.csv')\npd.options.display.max_rows = 99999999","metadata":{"execution":{"iopub.status.busy":"2022-01-02T03:39:01.24627Z","iopub.execute_input":"2022-01-02T03:39:01.246913Z","iopub.status.idle":"2022-01-02T03:39:01.622059Z","shell.execute_reply.started":"2022-01-02T03:39:01.246865Z","shell.execute_reply":"2022-01-02T03:39:01.621397Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"<a id=\"3\"></a> <br>\n# Data Preparation for Kick of Return","metadata":{}},{"cell_type":"code","source":"KCKickoffReturn2018Above25Yards = kickoffsKC2018[(kickoffsKC2018.Result == 'Kickoff - Return') & (kickoffsKC2018.kickReturnYardage > 25)]\nKCKickoffReturn2019Above25Yards = kickoffsKC2019[(kickoffsKC2019.Result == 'Kickoff - Return') & (kickoffsKC2019.kickReturnYardage > 25)]\nKCKickoffReturn2020Above25Yards = kickoffsKC2020[(kickoffsKC2020.Result == 'Kickoff - Return') & (kickoffsKC2020.kickReturnYardage > 25) & (kickoffsKC2020.playResult > 0)]\n\nKCKickoffReturn2018Below25Yards = kickoffsKC2018[(kickoffsKC2018.Result == 'Kickoff - Return') & (kickoffsKC2018.kickReturnYardage <= 25)]\nKCKickoffReturn2019Below25Yards = kickoffsKC2019[(kickoffsKC2019.Result == 'Kickoff - Return') & (kickoffsKC2019.kickReturnYardage <= 25)]\nKCKickoffReturn2020Below25Yards = kickoffsKC2020[(kickoffsKC2020.Result == 'Kickoff - Return') & (kickoffsKC2020.kickReturnYardage <= 25)]\n\nKCKickoffReturn2020LossYards = kickoffsKC2020[(kickoffsKC2020.Result == 'Kickoff - Return') & (kickoffsKC2020.playResult < 0)]","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2022-01-02T03:39:01.623974Z","iopub.execute_input":"2022-01-02T03:39:01.624593Z","iopub.status.idle":"2022-01-02T03:39:01.659932Z","shell.execute_reply.started":"2022-01-02T03:39:01.624549Z","shell.execute_reply":"2022-01-02T03:39:01.658677Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"<a id=\"4\"></a> <br>\n# Merging Kickoff Return Data with Pro Football Focus Data","metadata":{}},{"cell_type":"code","source":"# Merged Data with Kickoff Return Above 25 Yards.\nmergedKCKickoffReturn2018Above25Yards = pd.merge(KCKickoffReturn2018Above25Yards, \n                                                 pFFData,  \n                                                 how='left', \n                                                 left_on=['gameId','playId'], \n                                                 right_on = ['gameId','playId']\n                                                )\n\nmergedKCKickoffReturn2019Above25Yards = pd.merge(KCKickoffReturn2019Above25Yards, \n                                                 pFFData,  \n                                                 how='left', \n                                                 left_on=['gameId','playId'], \n                                                 right_on = ['gameId','playId']\n                                                )\n\nmergedKCKickoffReturn2020Above25Yards = pd.merge(KCKickoffReturn2020Above25Yards, \n                                                 pFFData,  \n                                                 how='left', \n                                                 left_on=['gameId','playId'], \n                                                 right_on = ['gameId','playId']\n                                                )\n\n# Merged Data with Kickoff Return Below 25 Yards.\nmergedKCKickoffReturn2018Below25Yards = pd.merge(KCKickoffReturn2018Below25Yards, \n                                                 pFFData,  \n                                                 how='left', \n                                                 left_on=['gameId','playId'], \n                                                 right_on = ['gameId','playId']\n                                                )\n\nmergedKCKickoffReturn2019Below25Yards = pd.merge(KCKickoffReturn2019Below25Yards, \n                                                 pFFData,  \n                                                 how='left', \n                                                 left_on=['gameId','playId'], \n                                                 right_on = ['gameId','playId']\n                                                )\n\nmergedKCKickoffReturn2020Below25Yards = pd.merge(KCKickoffReturn2020Below25Yards, \n                                                 pFFData,  \n                                                 how='left', \n                                                 left_on=['gameId','playId'], \n                                                 right_on = ['gameId','playId']\n                                                )\n\n# Merged Data with Kickoff Return Lossing Yards.\nmergedKCKickoffReturn2020LossYards = pd.merge(KCKickoffReturn2020LossYards, \n                                                 pFFData,  \n                                                 how='left', \n                                                 left_on=['gameId','playId'], \n                                                 right_on = ['gameId','playId']\n                                                )","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2022-01-02T03:39:01.662687Z","iopub.execute_input":"2022-01-02T03:39:01.662963Z","iopub.status.idle":"2022-01-02T03:39:01.797372Z","shell.execute_reply.started":"2022-01-02T03:39:01.662932Z","shell.execute_reply":"2022-01-02T03:39:01.796417Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"<a id=\"5\"></a> <br>\n# Grouping DataFrames","metadata":{}},{"cell_type":"code","source":"# Above 25 Yards 2018\nKCKickoffReturn2018Above25YardsSeries = KCKickoffReturn2018Above25Yards.groupby(\n    ['season','possessionTeam','gameId','playId','quarter','down','yardsToGo','yardlineSide','Result',\n     'gameClock','yardlineNumber','kickReturnYardage','playResult','preSnapHomeScore','preSnapVisitorScore',\n     'event','homeTeamAbbr','visitorTeamAbbr','week'],as_index=True).size()\nKCKickoffReturn2018Above25YardsFrame = pd.DataFrame(KCKickoffReturn2018Above25YardsSeries)\n\nmergedKCKickoffReturn2018Above25YardsSeries = mergedKCKickoffReturn2018Above25Yards.groupby(\n    ['season','kickoffReturnFormation','tackler','gameId','playId','returnDirectionIntended',\n     'returnDirectionActual','kickReturnYardage','homeTeamAbbr','visitorTeamAbbr','week'],as_index=True).size()\nmergedKCKickoffReturn2018Above25YardsFrame = pd.DataFrame(mergedKCKickoffReturn2018Above25YardsSeries)\n\n# Above 25 Yards 2019\nKCKickoffReturn2019Above25YardsSeries = KCKickoffReturn2019Above25Yards.groupby(['season','possessionTeam','gameId','playId','quarter','down','yardsToGo','yardlineSide','Result','gameClock',\n                                   'yardlineNumber','kickReturnYardage','playResult','preSnapHomeScore','preSnapVisitorScore','event','homeTeamAbbr','visitorTeamAbbr',\n                                   'week'],as_index=True).size()\nKCKickoffReturn2019Above25YardsFrame = pd.DataFrame(KCKickoffReturn2019Above25YardsSeries)\n\nmergedKCKickoffReturn2019Above25YardsSeries = mergedKCKickoffReturn2019Above25Yards.groupby(\n    ['season','kickoffReturnFormation','tackler','gameId','playId','returnDirectionIntended',\n     'returnDirectionActual','kickReturnYardage','homeTeamAbbr','visitorTeamAbbr','week'],as_index=True).size()\nmergedKCKickoffReturn2019Above25YardsFrame = pd.DataFrame(mergedKCKickoffReturn2019Above25YardsSeries)\n\n# Above 25 Yards 2020\nKCKickoffReturn2020Above25YardsSeries = KCKickoffReturn2020Above25Yards.groupby(['season','possessionTeam','gameId','playId','quarter','down','yardsToGo','yardlineSide','Result','gameClock',\n                                   'yardlineNumber','kickReturnYardage','playResult','preSnapHomeScore','preSnapVisitorScore','event','homeTeamAbbr','visitorTeamAbbr',\n                                   'week'],as_index=True).size()\nKCKickoffReturn2020Above25YardsFrame = pd.DataFrame(KCKickoffReturn2020Above25YardsSeries)\n\nmergedKCKickoffReturn2020Above25YardsSeries = mergedKCKickoffReturn2020Above25Yards.groupby(\n    ['season','kickoffReturnFormation','tackler','gameId','playId','returnDirectionIntended',\n     'returnDirectionActual','kickReturnYardage','homeTeamAbbr','visitorTeamAbbr','week'],as_index=True).size()\nmergedKCKickoffReturn2020Above25YardsFrame = pd.DataFrame(mergedKCKickoffReturn2020Above25YardsSeries)\n\n# Below 25 Yards 2018\nKCKickoffReturn2018Below25YardsSeries = KCKickoffReturn2018Below25Yards.groupby(['season','possessionTeam','gameId','playId','quarter','down','yardsToGo','yardlineSide','Result','gameClock',\n                                   'yardlineNumber','kickReturnYardage','playResult','preSnapHomeScore','preSnapVisitorScore','event','homeTeamAbbr','visitorTeamAbbr',\n                                   'week'],as_index=True).size()\nKCKickoffReturn2018Below25YardsFrame = pd.DataFrame(KCKickoffReturn2018Below25YardsSeries)\n\nmergedKCKickoffReturn2018Below25YardsSeries = mergedKCKickoffReturn2018Below25Yards.groupby(\n    ['season','kickoffReturnFormation','tackler','gameId','playId','returnDirectionIntended',\n     'returnDirectionActual','kickReturnYardage','homeTeamAbbr','visitorTeamAbbr','week'],as_index=True).size()\nmergedKCKickoffReturn2018Below25YardsFrame = pd.DataFrame(mergedKCKickoffReturn2018Below25YardsSeries)\n\n# Below 25 Yards 2019\nKCKickoffReturn2019Below25YardsSeries = KCKickoffReturn2019Below25Yards.groupby(['season','possessionTeam','gameId','playId','quarter','down','yardsToGo','yardlineSide','Result','gameClock',\n                                   'yardlineNumber','kickReturnYardage','playResult','preSnapHomeScore','preSnapVisitorScore','event','homeTeamAbbr','visitorTeamAbbr',\n                                   'week'],as_index=True).size()\nKCKickoffReturn2019Below25YardsFrame = pd.DataFrame(KCKickoffReturn2019Below25YardsSeries)\n\nmergedKCKickoffReturn2019Below25YardsSeries = mergedKCKickoffReturn2019Below25Yards.groupby(\n    ['season','kickoffReturnFormation','tackler','gameId','playId','returnDirectionIntended',\n     'returnDirectionActual','kickReturnYardage','homeTeamAbbr','visitorTeamAbbr','week'],as_index=True).size()\nmergedKCKickoffReturn2019Below25YardsFrame = pd.DataFrame(mergedKCKickoffReturn2019Below25YardsSeries)\n\n# Below 25 Yards 2020\nKCKickoffReturn2020Below25YardsSeries = KCKickoffReturn2020Below25Yards.groupby(['season','possessionTeam','gameId','playId','quarter','down','yardsToGo','yardlineSide','Result','gameClock',\n                                   'yardlineNumber','kickReturnYardage','playResult','preSnapHomeScore','preSnapVisitorScore','event','homeTeamAbbr','visitorTeamAbbr',\n                                   'week'],as_index=True).size()\nKCKickoffReturn2020Below25YardsFrame = pd.DataFrame(KCKickoffReturn2020Below25YardsSeries)\n\nmergedKCKickoffReturn2020Below25YardsSeries = mergedKCKickoffReturn2020Below25Yards.groupby(\n    ['season','kickoffReturnFormation','tackler','gameId','playId','returnDirectionIntended',\n     'returnDirectionActual','kickReturnYardage','homeTeamAbbr','visitorTeamAbbr','week'],as_index=True).size()\nmergedKCKickoffReturn2020Below25YardsFrame = pd.DataFrame(mergedKCKickoffReturn2020Below25YardsSeries)\n\n# Loosing Yards 2020\nKCKickoffReturn2020LossYardsSeries = KCKickoffReturn2020LossYards.groupby(['season','possessionTeam','gameId','playId','quarter','down','yardsToGo','yardlineSide','Result','gameClock',\n                                   'yardlineNumber','kickReturnYardage','playResult','preSnapHomeScore','preSnapVisitorScore','event','homeTeamAbbr','visitorTeamAbbr',\n                                   'week'],as_index=True).size()\nKCKickoffReturn2020LossYardsFrame = pd.DataFrame(KCKickoffReturn2020LossYardsSeries)\n\nmergedKCKickoffReturn2020LossYardsSeires = mergedKCKickoffReturn2020LossYards.groupby(\n    ['season','kickoffReturnFormation','specialTeamsSafeties','gameId','playId','returnDirectionIntended',\n     'returnDirectionActual','kickReturnYardage','homeTeamAbbr','visitorTeamAbbr','week'],as_index=True).size()\nmergedKCKickoffReturn2020LossYardsFrame = pd.DataFrame(mergedKCKickoffReturn2020LossYardsSeires)","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2022-01-02T03:39:01.798808Z","iopub.execute_input":"2022-01-02T03:39:01.799066Z","iopub.status.idle":"2022-01-02T03:39:01.89983Z","shell.execute_reply.started":"2022-01-02T03:39:01.79902Z","shell.execute_reply":"2022-01-02T03:39:01.899192Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"<a id=\"6\"></a> <br>\n# Kickoff Return Below 25 Yards (Good Strategy)\n\n**<p id='7'><li>Below 25 Yards 2018</li></p>**","metadata":{}},{"cell_type":"code","source":"KCKickoffReturn2018Below25YardsFrame","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2022-01-02T03:39:01.900746Z","iopub.execute_input":"2022-01-02T03:39:01.901219Z","iopub.status.idle":"2022-01-02T03:39:01.950598Z","shell.execute_reply.started":"2022-01-02T03:39:01.901185Z","shell.execute_reply":"2022-01-02T03:39:01.949782Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"**<p id='8'><li>Below 25 Yards 2018. More Kickoff Return Insights</li></p>**","metadata":{}},{"cell_type":"code","source":"mergedKCKickoffReturn2018Below25YardsFrame","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2022-01-02T03:39:01.951933Z","iopub.execute_input":"2022-01-02T03:39:01.952457Z","iopub.status.idle":"2022-01-02T03:39:01.972899Z","shell.execute_reply.started":"2022-01-02T03:39:01.952414Z","shell.execute_reply":"2022-01-02T03:39:01.972132Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"**<p id='9'><li>Video Model For Clear View</li></p>**","metadata":{}},{"cell_type":"code","source":"playVideo('../input/kc-special-play-videos/KC-Best-Kickoff-Return-Below-25-Yards-2018.mp4')","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2022-01-02T03:39:01.974163Z","iopub.execute_input":"2022-01-02T03:39:01.974379Z","iopub.status.idle":"2022-01-02T03:39:02.00977Z","shell.execute_reply.started":"2022-01-02T03:39:01.974352Z","shell.execute_reply":"2022-01-02T03:39:02.009134Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"**<p id='10'><li>Below 25 Yards 2019</li></p>**","metadata":{}},{"cell_type":"code","source":"KCKickoffReturn2019Below25YardsFrame","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2022-01-02T03:39:02.010586Z","iopub.execute_input":"2022-01-02T03:39:02.010786Z","iopub.status.idle":"2022-01-02T03:39:02.071785Z","shell.execute_reply.started":"2022-01-02T03:39:02.010761Z","shell.execute_reply":"2022-01-02T03:39:02.071157Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"**<p id='11'><li>Below 25 Yards 2019. More Kickoff Return Insights</li></p>**","metadata":{}},{"cell_type":"code","source":"mergedKCKickoffReturn2019Below25YardsFrame","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2022-01-02T03:39:02.072774Z","iopub.execute_input":"2022-01-02T03:39:02.073583Z","iopub.status.idle":"2022-01-02T03:39:02.094934Z","shell.execute_reply.started":"2022-01-02T03:39:02.073546Z","shell.execute_reply":"2022-01-02T03:39:02.094332Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"**<p id='12'><li>Video Model For Clear View</li></p>**","metadata":{}},{"cell_type":"code","source":"playVideo('../input/kc-special-play-videos/KC-Best-Kickoff-Return-Below-25-Yards-2019.mp4')","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2022-01-02T03:39:02.095975Z","iopub.execute_input":"2022-01-02T03:39:02.096665Z","iopub.status.idle":"2022-01-02T03:39:02.113916Z","shell.execute_reply.started":"2022-01-02T03:39:02.096626Z","shell.execute_reply":"2022-01-02T03:39:02.113093Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"**<p id='13'><li>Below 25 Yards 2020</li></p>**","metadata":{}},{"cell_type":"code","source":"KCKickoffReturn2020Below25YardsFrame","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2022-01-02T03:39:02.115135Z","iopub.execute_input":"2022-01-02T03:39:02.115336Z","iopub.status.idle":"2022-01-02T03:39:02.156546Z","shell.execute_reply.started":"2022-01-02T03:39:02.115311Z","shell.execute_reply":"2022-01-02T03:39:02.156004Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"**<p id='14'><li>Below 25 Yards 2020. More Kickoff Return Insights</li></p>**","metadata":{}},{"cell_type":"code","source":"mergedKCKickoffReturn2020Below25YardsFrame","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2022-01-02T03:39:02.15897Z","iopub.execute_input":"2022-01-02T03:39:02.159565Z","iopub.status.idle":"2022-01-02T03:39:02.176718Z","shell.execute_reply.started":"2022-01-02T03:39:02.15953Z","shell.execute_reply":"2022-01-02T03:39:02.17604Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"**<p id='15'><li>Video Model For Clear View</li></p>**","metadata":{}},{"cell_type":"code","source":"playVideo('../input/kc-special-play-videos/KC-Best-Kickoff-Return-Below-25-Yards-2020.mp4')","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2022-01-02T03:39:02.178003Z","iopub.execute_input":"2022-01-02T03:39:02.17823Z","iopub.status.idle":"2022-01-02T03:39:02.21284Z","shell.execute_reply.started":"2022-01-02T03:39:02.178204Z","shell.execute_reply":"2022-01-02T03:39:02.212038Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"<a id=\"16\"></a> <br>\n# Kickoff Return Above 25 Yards (Bad)\n* **Because Kickoff Touchback is better atleast opposite team starts from 25 Yrad Line**\n\n\n**<p id='17'><li>Above 25 Yards 2018</li></p>**","metadata":{}},{"cell_type":"code","source":"KCKickoffReturn2018Above25YardsFrame","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2022-01-02T03:39:02.214207Z","iopub.execute_input":"2022-01-02T03:39:02.214521Z","iopub.status.idle":"2022-01-02T03:39:02.248545Z","shell.execute_reply.started":"2022-01-02T03:39:02.214482Z","shell.execute_reply":"2022-01-02T03:39:02.247984Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"**<p id='18'><li>Above 25 Yards 2018. More Kickoff Return Insights</li></p>**","metadata":{}},{"cell_type":"code","source":"mergedKCKickoffReturn2018Above25YardsFrame","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2022-01-02T03:39:02.249467Z","iopub.execute_input":"2022-01-02T03:39:02.249933Z","iopub.status.idle":"2022-01-02T03:39:02.267648Z","shell.execute_reply.started":"2022-01-02T03:39:02.249904Z","shell.execute_reply":"2022-01-02T03:39:02.266894Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"**<p id='19'><li>Video Model For Clear View</li></p>**","metadata":{}},{"cell_type":"code","source":"playVideo('../input/kc-special-play-videos/KC-Best-Kickoff-Return-Above-25-Yards-2018.mp4')","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2022-01-02T03:39:02.268784Z","iopub.execute_input":"2022-01-02T03:39:02.269007Z","iopub.status.idle":"2022-01-02T03:39:02.317517Z","shell.execute_reply.started":"2022-01-02T03:39:02.26898Z","shell.execute_reply":"2022-01-02T03:39:02.316608Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"**<p id='20'><li>Above 25 Yards 2019</li></p>**","metadata":{}},{"cell_type":"code","source":"KCKickoffReturn2019Above25YardsFrame","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2022-01-02T03:39:02.318832Z","iopub.execute_input":"2022-01-02T03:39:02.31912Z","iopub.status.idle":"2022-01-02T03:39:02.347634Z","shell.execute_reply.started":"2022-01-02T03:39:02.319085Z","shell.execute_reply":"2022-01-02T03:39:02.346962Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"**<p id='21'><li>Above 25 Yards 2019. More Kickoff Return Insights</li></p>**","metadata":{}},{"cell_type":"code","source":"mergedKCKickoffReturn2019Above25YardsFrame","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2022-01-02T03:39:02.348631Z","iopub.execute_input":"2022-01-02T03:39:02.349366Z","iopub.status.idle":"2022-01-02T03:39:02.370867Z","shell.execute_reply.started":"2022-01-02T03:39:02.349326Z","shell.execute_reply":"2022-01-02T03:39:02.370119Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"**<p id='22'><li>Video Model For Clear View</li></p>**","metadata":{}},{"cell_type":"code","source":"playVideo('../input/kc-special-play-videos/KC-Best-Kickoff-Return-Above-25-Yards-2019.mp4')","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2022-01-02T03:39:02.372318Z","iopub.execute_input":"2022-01-02T03:39:02.372767Z","iopub.status.idle":"2022-01-02T03:39:02.413253Z","shell.execute_reply.started":"2022-01-02T03:39:02.372728Z","shell.execute_reply":"2022-01-02T03:39:02.412373Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"**<p id='23'><li>Above 25 Yards 2020</li></p>**","metadata":{}},{"cell_type":"code","source":"KCKickoffReturn2020Above25YardsFrame","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2022-01-02T03:39:02.41435Z","iopub.execute_input":"2022-01-02T03:39:02.415012Z","iopub.status.idle":"2022-01-02T03:39:02.438814Z","shell.execute_reply.started":"2022-01-02T03:39:02.414978Z","shell.execute_reply":"2022-01-02T03:39:02.438239Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"**<p id='24'><li>Above 25 Yards 2020. More Kickoff Return Insights</li></p>**","metadata":{}},{"cell_type":"code","source":"mergedKCKickoffReturn2020Above25YardsFrame","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2022-01-02T03:39:02.439791Z","iopub.execute_input":"2022-01-02T03:39:02.440531Z","iopub.status.idle":"2022-01-02T03:39:02.456518Z","shell.execute_reply.started":"2022-01-02T03:39:02.440499Z","shell.execute_reply":"2022-01-02T03:39:02.455536Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"**<p id='25'><li>Video Model For Clear View</li></p>**","metadata":{}},{"cell_type":"code","source":"playVideo('../input/kc-special-play-videos/KC-Best-Kickoff-Return-Above-25-Yards-2020.mp4')","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2022-01-02T03:39:02.458127Z","iopub.execute_input":"2022-01-02T03:39:02.458417Z","iopub.status.idle":"2022-01-02T03:39:02.501195Z","shell.execute_reply.started":"2022-01-02T03:39:02.458373Z","shell.execute_reply":"2022-01-02T03:39:02.500623Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"<a id=\"26\"></a> <br>\n# Lossing Yards (Very Bad, Rarely Happens)\n\n**<p id='27'><li>Lossing Yards</li></p>**","metadata":{}},{"cell_type":"code","source":"KCKickoffReturn2020LossYardsFrame","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2022-01-02T03:39:02.502112Z","iopub.execute_input":"2022-01-02T03:39:02.502473Z","iopub.status.idle":"2022-01-02T03:39:02.518922Z","shell.execute_reply.started":"2022-01-02T03:39:02.502425Z","shell.execute_reply":"2022-01-02T03:39:02.518373Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"**<p id='28'><li>Lossing Yards. More Insights</li></p>**","metadata":{}},{"cell_type":"code","source":"mergedKCKickoffReturn2020LossYardsFrame","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2022-01-02T03:39:02.520281Z","iopub.execute_input":"2022-01-02T03:39:02.520965Z","iopub.status.idle":"2022-01-02T03:39:02.535398Z","shell.execute_reply.started":"2022-01-02T03:39:02.520924Z","shell.execute_reply":"2022-01-02T03:39:02.534617Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"**<p id='29'><li>Video Model For Clear View</li></p>**","metadata":{}},{"cell_type":"code","source":"playVideo('../input/kc-special-play-videos/KC-Best-Kickoff-Return-TOUCHDOWN-2020.mp4')","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2022-01-02T03:39:02.536767Z","iopub.execute_input":"2022-01-02T03:39:02.537243Z","iopub.status.idle":"2022-01-02T03:39:02.578905Z","shell.execute_reply.started":"2022-01-02T03:39:02.537202Z","shell.execute_reply":"2022-01-02T03:39:02.578145Z"},"trusted":true},"execution_count":null,"outputs":[]}]}