{"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>Tampa Bay Buccaneers 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   * [Kansas City Chiefs Special Plays](https://www.kaggle.com/kushtrivedi14728/kansas-city-chiefs-special-plays)\n   * [Green Bay Packers Special Plays](https://www.kaggle.com/kushtrivedi14728/green-bay-packers-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-output":true,"execution":{"iopub.status.busy":"2022-01-02T06:49:23.577406Z","iopub.execute_input":"2022-01-02T06:49:23.577743Z","iopub.status.idle":"2022-01-02T06:49:23.625463Z","shell.execute_reply.started":"2022-01-02T06:49:23.577633Z","shell.execute_reply":"2022-01-02T06:49:23.624368Z"},"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-02T06:49:23.627238Z","iopub.execute_input":"2022-01-02T06:49:23.627460Z","iopub.status.idle":"2022-01-02T06:49:23.633532Z","shell.execute_reply.started":"2022-01-02T06:49:23.627434Z","shell.execute_reply":"2022-01-02T06:49:23.632702Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"<a id=\"2\"></a> <br>\n# Data Loading","metadata":{}},{"cell_type":"code","source":"extraPointsTB2018 = pd.read_csv('../input/tampa-bay-buccaneers-special-play-2018-to-2020/TB_ExtraPoint_2018.csv')\nextraPointsTB2019 = pd.read_csv('../input/tampa-bay-buccaneers-special-play-2018-to-2020/TB_ExtraPoint_2019.csv')\nextraPointsTB2020 = pd.read_csv('../input/tampa-bay-buccaneers-special-play-2018-to-2020/TB_ExtraPoint_2020.csv')\n\nfieldGoalsTB2018 = pd.read_csv('../input/tampa-bay-buccaneers-special-play-2018-to-2020/TB_FiledGoals_2018.csv')\nfieldGoalsTB2019 = pd.read_csv('../input/tampa-bay-buccaneers-special-play-2018-to-2020/TB_FiledGoals_2019.csv')\nfieldGoalsTB2020 = pd.read_csv('../input/tampa-bay-buccaneers-special-play-2018-to-2020/TB_FiledGoals_2020.csv')\n\nkickoffsTB2018 = pd.read_csv('../input/tampa-bay-buccaneers-special-play-2018-to-2020/TB_Kickoffs_2018.csv')\nkickoffsTB2019 = pd.read_csv('../input/tampa-bay-buccaneers-special-play-2018-to-2020/TB_Kickoffs_2019.csv')\nkickoffsTB2020 = pd.read_csv('../input/tampa-bay-buccaneers-special-play-2018-to-2020/TB_Kickoffs_2020.csv')\n\npuntsTB2018 = pd.read_csv('../input/tampa-bay-buccaneers-special-play-2018-to-2020/TB_Punts_2018.csv')\npuntsTB2019 = pd.read_csv('../input/tampa-bay-buccaneers-special-play-2018-to-2020/TB_Punts_2019.csv')\npuntsTB2020 = pd.read_csv('../input/tampa-bay-buccaneers-special-play-2018-to-2020/TB_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-02T06:49:23.634826Z","iopub.execute_input":"2022-01-02T06:49:23.635431Z","iopub.status.idle":"2022-01-02T06:49:24.006662Z","shell.execute_reply.started":"2022-01-02T06:49:23.635393Z","shell.execute_reply":"2022-01-02T06:49:24.005990Z"},"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":"TBKickoffReturn2018Above25Yards = kickoffsTB2018[(kickoffsTB2018.Result == 'Kickoff - Return') & (kickoffsTB2018.kickReturnYardage > 25)]\nTBKickoffReturn2019Above25Yards = kickoffsTB2019[(kickoffsTB2019.Result == 'Kickoff - Return') & (kickoffsTB2019.kickReturnYardage > 25)]\nTBKickoffReturn2020Above25Yards = kickoffsTB2020[(kickoffsTB2020.Result == 'Kickoff - Return') & (kickoffsTB2020.kickReturnYardage > 25) & (kickoffsTB2020.playResult > 0)]\n\nTBKickoffReturn2018Below25Yards = kickoffsTB2018[(kickoffsTB2018.Result == 'Kickoff - Return') & (kickoffsTB2018.kickReturnYardage <= 25)]\nTBKickoffReturn2019Below25Yards = kickoffsTB2019[(kickoffsTB2019.Result == 'Kickoff - Return') & (kickoffsTB2019.kickReturnYardage <= 25)]\nTBKickoffReturn2020Below25Yards = kickoffsTB2020[(kickoffsTB2020.Result == 'Kickoff - Return') & (kickoffsTB2020.kickReturnYardage <= 25)]\n\nTBKickoffReturn2020LossYards = kickoffsTB2020[(kickoffsTB2020.Result == 'Kickoff - Return') & (kickoffsTB2020.playResult < 0)]","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2022-01-02T06:49:24.008897Z","iopub.execute_input":"2022-01-02T06:49:24.009384Z","iopub.status.idle":"2022-01-02T06:49:24.042207Z","shell.execute_reply.started":"2022-01-02T06:49:24.009335Z","shell.execute_reply":"2022-01-02T06:49:24.041150Z"},"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.\nmergedTBKickoffReturn2018Above25Yards = pd.merge(TBKickoffReturn2018Above25Yards, \n                                                 pFFData,  \n                                                 how='left', \n                                                 left_on=['gameId','playId'], \n                                                 right_on = ['gameId','playId']\n                                                )\n\nmergedTBKickoffReturn2019Above25Yards = pd.merge(TBKickoffReturn2019Above25Yards, \n                                                 pFFData,  \n                                                 how='left', \n                                                 left_on=['gameId','playId'], \n                                                 right_on = ['gameId','playId']\n                                                )\n\nmergedTBKickoffReturn2020Above25Yards = pd.merge(TBKickoffReturn2020Above25Yards, \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.\nmergedTBKickoffReturn2018Below25Yards = pd.merge(TBKickoffReturn2018Below25Yards, \n                                                 pFFData,  \n                                                 how='left', \n                                                 left_on=['gameId','playId'], \n                                                 right_on = ['gameId','playId']\n                                                )\n\nmergedTBKickoffReturn2019Below25Yards = pd.merge(TBKickoffReturn2019Below25Yards, \n                                                 pFFData,  \n                                                 how='left', \n                                                 left_on=['gameId','playId'], \n                                                 right_on = ['gameId','playId']\n                                                )\n\nmergedTBKickoffReturn2020Below25Yards = pd.merge(TBKickoffReturn2020Below25Yards, \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.\nmergedTBKickoffReturn2020LossYards = pd.merge(TBKickoffReturn2020LossYards, \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-02T06:49:24.043898Z","iopub.execute_input":"2022-01-02T06:49:24.044119Z","iopub.status.idle":"2022-01-02T06:49:24.180087Z","shell.execute_reply.started":"2022-01-02T06:49:24.044092Z","shell.execute_reply":"2022-01-02T06:49:24.179091Z"},"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\nTBKickoffReturn2018Above25YardsSeries = TBKickoffReturn2018Above25Yards.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()\nTBKickoffReturn2018Above25YardsFrame = pd.DataFrame(TBKickoffReturn2018Above25YardsSeries)\n\nmergedTBKickoffReturn2018Above25YardsSeries = mergedTBKickoffReturn2018Above25Yards.groupby(\n    ['season','kickoffReturnFormation','tackler','gameId','playId','returnDirectionIntended',\n     'returnDirectionActual','kickReturnYardage','homeTeamAbbr','visitorTeamAbbr','week'],as_index=True).size()\nmergedTBKickoffReturn2018Above25YardsFrame = pd.DataFrame(mergedTBKickoffReturn2018Above25YardsSeries)\n\n# Above 25 Yards 2019\nTBKickoffReturn2019Above25YardsSeries = TBKickoffReturn2019Above25Yards.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()\nTBKickoffReturn2019Above25YardsFrame = pd.DataFrame(TBKickoffReturn2019Above25YardsSeries)\n\nmergedTBKickoffReturn2019Above25YardsSeries = mergedTBKickoffReturn2019Above25Yards.groupby(\n    ['season','kickoffReturnFormation','tackler','gameId','playId','returnDirectionIntended',\n     'returnDirectionActual','kickReturnYardage','homeTeamAbbr','visitorTeamAbbr','week'],as_index=True).size()\nmergedTBKickoffReturn2019Above25YardsFrame = pd.DataFrame(mergedTBKickoffReturn2019Above25YardsSeries)\n\n# Above 25 Yards 2020\nTBKickoffReturn2020Above25YardsSeries = TBKickoffReturn2020Above25Yards.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()\nTBKickoffReturn2020Above25YardsFrame = pd.DataFrame(TBKickoffReturn2020Above25YardsSeries)\n\nmergedTBKickoffReturn2020Above25YardsSeries = mergedTBKickoffReturn2020Above25Yards.groupby(\n    ['season','kickoffReturnFormation','tackler','gameId','playId','returnDirectionIntended',\n     'returnDirectionActual','kickReturnYardage','homeTeamAbbr','visitorTeamAbbr','week'],as_index=True).size()\nmergedTBKickoffReturn2020Above25YardsFrame = pd.DataFrame(mergedTBKickoffReturn2020Above25YardsSeries)\n\n# Below 25 Yards 2018\nTBKickoffReturn2018Below25YardsSeries = TBKickoffReturn2018Below25Yards.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()\nTBKickoffReturn2018Below25YardsFrame = pd.DataFrame(TBKickoffReturn2018Below25YardsSeries)\n\nmergedTBKickoffReturn2018Below25YardsSeries = mergedTBKickoffReturn2018Below25Yards.groupby(\n    ['season','kickoffReturnFormation','tackler','gameId','playId','returnDirectionIntended',\n     'returnDirectionActual','kickReturnYardage','homeTeamAbbr','visitorTeamAbbr','week'],as_index=True).size()\nmergedTBKickoffReturn2018Below25YardsFrame = pd.DataFrame(mergedTBKickoffReturn2018Below25YardsSeries)\n\n# Below 25 Yards 2018\nTBKickoffReturn2019Below25YardsSeries = TBKickoffReturn2019Below25Yards.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()\nTBKickoffReturn2019Below25YardsFrame = pd.DataFrame(TBKickoffReturn2019Below25YardsSeries)\n\nmergedTBKickoffReturn2019Below25YardsSeries = mergedTBKickoffReturn2019Below25Yards.groupby(\n    ['season','kickoffReturnFormation','tackler','gameId','playId','returnDirectionIntended',\n     'returnDirectionActual','kickReturnYardage','homeTeamAbbr','visitorTeamAbbr','week'],as_index=True).size()\nmergedTBKickoffReturn2019Below25YardsFrame = pd.DataFrame(mergedTBKickoffReturn2019Below25YardsSeries)\n\n# Below 25 Yards 2018\nTBKickoffReturn2020Below25YardsSeries = TBKickoffReturn2020Below25Yards.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()\nTBKickoffReturn2020Below25YardsFrame = pd.DataFrame(TBKickoffReturn2020Below25YardsSeries)\n\nmergedTBKickoffReturn2020Below25YardsSeries = mergedTBKickoffReturn2020Below25Yards.groupby(\n    ['season','kickoffReturnFormation','tackler','gameId','playId','returnDirectionIntended',\n     'returnDirectionActual','kickReturnYardage','homeTeamAbbr','visitorTeamAbbr','week'],as_index=True).size()\nmergedTBKickoffReturn2020Below25YardsFrame = pd.DataFrame(mergedTBKickoffReturn2020Below25YardsSeries)\n\n# Loosing Yards 2020\nTBKickoffReturn2020LossYardsSeries = TBKickoffReturn2020LossYards.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()\nTBKickoffReturn2020LossYardsFrame = pd.DataFrame(TBKickoffReturn2020LossYardsSeries)\n\nmergedTBKickoffReturn2020LossYardsSeires = mergedTBKickoffReturn2020LossYards.groupby(\n    ['season','kickoffReturnFormation','specialTeamsSafeties','gameId','playId','returnDirectionIntended',\n     'returnDirectionActual','kickReturnYardage','homeTeamAbbr','visitorTeamAbbr','week'],as_index=True).size()\nmergedTBKickoffReturn2020LossYardsFrame = pd.DataFrame(mergedTBKickoffReturn2020LossYardsSeires)","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2022-01-02T06:49:24.181597Z","iopub.execute_input":"2022-01-02T06:49:24.181880Z","iopub.status.idle":"2022-01-02T06:49:24.294814Z","shell.execute_reply.started":"2022-01-02T06:49:24.181846Z","shell.execute_reply":"2022-01-02T06:49:24.293613Z"},"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":"TBKickoffReturn2018Below25YardsFrame","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2022-01-02T06:49:24.296724Z","iopub.execute_input":"2022-01-02T06:49:24.297230Z","iopub.status.idle":"2022-01-02T06:49:24.354951Z","shell.execute_reply.started":"2022-01-02T06:49:24.297180Z","shell.execute_reply":"2022-01-02T06:49:24.353919Z"},"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":"mergedTBKickoffReturn2018Below25YardsFrame","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2022-01-02T06:49:24.356470Z","iopub.execute_input":"2022-01-02T06:49:24.356836Z","iopub.status.idle":"2022-01-02T06:49:24.377877Z","shell.execute_reply.started":"2022-01-02T06:49:24.356790Z","shell.execute_reply":"2022-01-02T06:49:24.376686Z"},"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/tb-special-play-video/TB-Kickoff-Return-Below-25-Yards-2018.mp4')","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2022-01-02T06:49:24.379622Z","iopub.execute_input":"2022-01-02T06:49:24.380025Z","iopub.status.idle":"2022-01-02T06:49:24.415370Z","shell.execute_reply.started":"2022-01-02T06:49:24.379980Z","shell.execute_reply":"2022-01-02T06:49:24.414235Z"},"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":"TBKickoffReturn2019Below25YardsFrame","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2022-01-02T06:49:24.418376Z","iopub.execute_input":"2022-01-02T06:49:24.418618Z","iopub.status.idle":"2022-01-02T06:49:24.448420Z","shell.execute_reply.started":"2022-01-02T06:49:24.418590Z","shell.execute_reply":"2022-01-02T06:49:24.446541Z"},"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":"mergedTBKickoffReturn2019Below25YardsFrame","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2022-01-02T06:49:24.449674Z","iopub.execute_input":"2022-01-02T06:49:24.450023Z","iopub.status.idle":"2022-01-02T06:49:24.469270Z","shell.execute_reply.started":"2022-01-02T06:49:24.449979Z","shell.execute_reply":"2022-01-02T06:49:24.468115Z"},"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/tb-special-play-video/TB-Kickoff-Return-Below-25-Yards-2019.mp4')","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2022-01-02T06:49:24.470758Z","iopub.execute_input":"2022-01-02T06:49:24.471111Z","iopub.status.idle":"2022-01-02T06:49:24.495447Z","shell.execute_reply.started":"2022-01-02T06:49:24.471020Z","shell.execute_reply":"2022-01-02T06:49:24.494135Z"},"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":"TBKickoffReturn2020Below25YardsFrame","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2022-01-02T06:49:24.498191Z","iopub.execute_input":"2022-01-02T06:49:24.498515Z","iopub.status.idle":"2022-01-02T06:49:24.522671Z","shell.execute_reply.started":"2022-01-02T06:49:24.498467Z","shell.execute_reply":"2022-01-02T06:49:24.521801Z"},"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":"mergedTBKickoffReturn2020Below25YardsFrame","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2022-01-02T06:49:24.524231Z","iopub.execute_input":"2022-01-02T06:49:24.524479Z","iopub.status.idle":"2022-01-02T06:49:24.541338Z","shell.execute_reply.started":"2022-01-02T06:49:24.524448Z","shell.execute_reply":"2022-01-02T06:49:24.540603Z"},"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/tb-special-play-video/TB-Kickoff-Return-Below-25-Yards-2020.mp4')","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2022-01-02T06:49:24.543185Z","iopub.execute_input":"2022-01-02T06:49:24.543710Z","iopub.status.idle":"2022-01-02T06:49:24.560958Z","shell.execute_reply.started":"2022-01-02T06:49:24.543663Z","shell.execute_reply":"2022-01-02T06:49:24.560180Z"},"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":"TBKickoffReturn2018Above25YardsFrame","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2022-01-02T06:49:24.561940Z","iopub.execute_input":"2022-01-02T06:49:24.562503Z","iopub.status.idle":"2022-01-02T06:49:24.601120Z","shell.execute_reply.started":"2022-01-02T06:49:24.562462Z","shell.execute_reply":"2022-01-02T06:49:24.600073Z"},"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":"mergedTBKickoffReturn2018Above25YardsFrame","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2022-01-02T06:49:24.602475Z","iopub.execute_input":"2022-01-02T06:49:24.602914Z","iopub.status.idle":"2022-01-02T06:49:24.624741Z","shell.execute_reply.started":"2022-01-02T06:49:24.602875Z","shell.execute_reply":"2022-01-02T06:49:24.623740Z"},"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/tb-special-play-video/TB-Kickoff-Return-Above-25-Yards-2018.mp4')","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2022-01-02T06:49:24.626011Z","iopub.execute_input":"2022-01-02T06:49:24.626673Z","iopub.status.idle":"2022-01-02T06:49:24.645612Z","shell.execute_reply.started":"2022-01-02T06:49:24.626603Z","shell.execute_reply":"2022-01-02T06:49:24.644962Z"},"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":"TBKickoffReturn2019Above25YardsFrame","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2022-01-02T06:49:24.646836Z","iopub.execute_input":"2022-01-02T06:49:24.647280Z","iopub.status.idle":"2022-01-02T06:49:24.667810Z","shell.execute_reply.started":"2022-01-02T06:49:24.647238Z","shell.execute_reply":"2022-01-02T06:49:24.667074Z"},"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":"mergedTBKickoffReturn2019Above25YardsFrame","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2022-01-02T06:49:24.669179Z","iopub.execute_input":"2022-01-02T06:49:24.669612Z","iopub.status.idle":"2022-01-02T06:49:24.688313Z","shell.execute_reply.started":"2022-01-02T06:49:24.669571Z","shell.execute_reply":"2022-01-02T06:49:24.687497Z"},"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/tb-special-play-video/TB-Kickoff-Return-Above-25-Yards-2019.mp4')","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2022-01-02T06:49:24.689850Z","iopub.execute_input":"2022-01-02T06:49:24.690326Z","iopub.status.idle":"2022-01-02T06:49:24.733380Z","shell.execute_reply.started":"2022-01-02T06:49:24.690283Z","shell.execute_reply":"2022-01-02T06:49:24.732528Z"},"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":"TBKickoffReturn2020Above25YardsFrame","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2022-01-02T06:49:24.734631Z","iopub.execute_input":"2022-01-02T06:49:24.734899Z","iopub.status.idle":"2022-01-02T06:49:24.770476Z","shell.execute_reply.started":"2022-01-02T06:49:24.734863Z","shell.execute_reply":"2022-01-02T06:49:24.769903Z"},"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":"mergedTBKickoffReturn2020Above25YardsFrame","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2022-01-02T06:49:24.771880Z","iopub.execute_input":"2022-01-02T06:49:24.772168Z","iopub.status.idle":"2022-01-02T06:49:24.791470Z","shell.execute_reply.started":"2022-01-02T06:49:24.772136Z","shell.execute_reply":"2022-01-02T06:49:24.790661Z"},"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/tb-special-play-video/TB-Kickoff-Return-Above-25-Yards-2020.mp4')","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2022-01-02T06:49:24.793114Z","iopub.execute_input":"2022-01-02T06:49:24.793422Z","iopub.status.idle":"2022-01-02T06:49:24.832288Z","shell.execute_reply.started":"2022-01-02T06:49:24.793380Z","shell.execute_reply":"2022-01-02T06:49:24.831485Z"},"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":"TBKickoffReturn2020LossYardsFrame","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2022-01-02T06:49:24.833439Z","iopub.execute_input":"2022-01-02T06:49:24.834119Z","iopub.status.idle":"2022-01-02T06:49:24.852532Z","shell.execute_reply.started":"2022-01-02T06:49:24.834059Z","shell.execute_reply":"2022-01-02T06:49:24.851679Z"},"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":"mergedTBKickoffReturn2020LossYardsFrame","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2022-01-02T06:49:24.853913Z","iopub.execute_input":"2022-01-02T06:49:24.855136Z","iopub.status.idle":"2022-01-02T06:49:24.874096Z","shell.execute_reply.started":"2022-01-02T06:49:24.855085Z","shell.execute_reply":"2022-01-02T06:49:24.873036Z"},"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/tb-special-play-video/TB-Kickoff-Return-Yards-Loss-2020.mp4')","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2022-01-02T06:49:24.875128Z","iopub.execute_input":"2022-01-02T06:49:24.875787Z","iopub.status.idle":"2022-01-02T06:49:24.922837Z","shell.execute_reply.started":"2022-01-02T06:49:24.875748Z","shell.execute_reply":"2022-01-02T06:49:24.921919Z"},"trusted":true},"execution_count":null,"outputs":[]}]}