{"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>Dallas Cowboys 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        * [Below 25 Yards 2019](#10)\n            * [Below 25 Yards 2019 More Insights](#11)\n        * [Below 25 Yards 2020](#13)\n            * [Below 25 Yards 2020 More Insights](#14)\n    * [Kickoff Return Above 25 Yards](#16)\n        * [Above 25 Yards 2018](#17)\n            * [Above 25 Yards 2018 More Insights](#18)\n        * [Above 25 Yards 2019](#20)\n            * [Above 25 Yards 2019 More Insights](#21)\n        * [Above 25 Yards 2020](#23)\n            * [Above 25 Yards 2020 More Insights](#24)\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   * [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   * [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":{"execution":{"iopub.status.busy":"2022-01-02T02:53:25.697373Z","iopub.execute_input":"2022-01-02T02:53:25.69779Z","iopub.status.idle":"2022-01-02T02:53:25.745299Z","shell.execute_reply.started":"2022-01-02T02:53:25.69768Z","shell.execute_reply":"2022-01-02T02:53:25.744695Z"},"_kg_hide-output":true,"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":{"execution":{"iopub.status.busy":"2022-01-02T02:53:25.746809Z","iopub.execute_input":"2022-01-02T02:53:25.747664Z","iopub.status.idle":"2022-01-02T02:53:25.753744Z","shell.execute_reply.started":"2022-01-02T02:53:25.747602Z","shell.execute_reply":"2022-01-02T02:53:25.752629Z"},"_kg_hide-input":true,"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"<a id=\"2\"></a> <br>\n# Data Loading","metadata":{}},{"cell_type":"code","source":"extraPointsDAL2018 = pd.read_csv('../input/dallas-cowboys-special-play-2018-to-2020/DAL_ExtraPoint_2018.csv')\nextraPointsDAL2019 = pd.read_csv('../input/dallas-cowboys-special-play-2018-to-2020/DAL_ExtraPoint_2019.csv')\nextraPointsDAL2020 = pd.read_csv('../input/dallas-cowboys-special-play-2018-to-2020/DAL_ExtraPoint_2020.csv')\n\nfieldGoalsDAL2018 = pd.read_csv('../input/dallas-cowboys-special-play-2018-to-2020/DAL_FiledGoals_2018.csv')\nfieldGoalsDAL2019 = pd.read_csv('../input/dallas-cowboys-special-play-2018-to-2020/DAL_FiledGoals_2019.csv')\nfieldGoalsDAL2020 = pd.read_csv('../input/dallas-cowboys-special-play-2018-to-2020/DAL_FiledGoals_2020.csv')\n\nkickoffsDAL2018 = pd.read_csv('../input/dallas-cowboys-special-play-2018-to-2020/DAL_Kickoffs_2018.csv')\nkickoffsDAL2019 = pd.read_csv('../input/dallas-cowboys-special-play-2018-to-2020/DAL_Kickoffs_2019.csv')\nkickoffsDAL2020 = pd.read_csv('../input/dallas-cowboys-special-play-2018-to-2020/DAL_Kickoffs_2020.csv')\n\npuntsDAL2018 = pd.read_csv('../input/dallas-cowboys-special-play-2018-to-2020/DAL_Punts_2018.csv')\npuntsDAL2019 = pd.read_csv('../input/dallas-cowboys-special-play-2018-to-2020/DAL_Punts_2019.csv')\npuntsDAL2020 = pd.read_csv('../input/dallas-cowboys-special-play-2018-to-2020/DAL_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-02T02:53:25.755548Z","iopub.execute_input":"2022-01-02T02:53:25.756511Z","iopub.status.idle":"2022-01-02T02:53:26.145956Z","shell.execute_reply.started":"2022-01-02T02:53:25.756459Z","shell.execute_reply":"2022-01-02T02:53:26.145037Z"},"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":"DALKickoffReturn2018Above25Yards = kickoffsDAL2018[(kickoffsDAL2018.Result == 'Kickoff - Return') & (kickoffsDAL2018.kickReturnYardage > 25)]\nDALKickoffReturn2019Above25Yards = kickoffsDAL2019[(kickoffsDAL2019.Result == 'Kickoff - Return') & (kickoffsDAL2019.kickReturnYardage > 25)]\nDALKickoffReturn2020Above25Yards = kickoffsDAL2020[(kickoffsDAL2020.Result == 'Kickoff - Return') & (kickoffsDAL2020.kickReturnYardage > 25)]\n\nDALKickoffReturn2018Below25Yards = kickoffsDAL2018[(kickoffsDAL2018.Result == 'Kickoff - Return') & (kickoffsDAL2018.kickReturnYardage <= 25)]\nDALKickoffReturn2019Below25Yards = kickoffsDAL2019[(kickoffsDAL2019.Result == 'Kickoff - Return') & (kickoffsDAL2019.kickReturnYardage <= 25)]\nDALKickoffReturn2020Below25Yards = kickoffsDAL2020[(kickoffsDAL2020.Result == 'Kickoff - Return') & (kickoffsDAL2020.kickReturnYardage <= 25)]","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2022-01-02T02:53:26.148844Z","iopub.execute_input":"2022-01-02T02:53:26.149184Z","iopub.status.idle":"2022-01-02T02:53:26.179524Z","shell.execute_reply.started":"2022-01-02T02:53:26.14914Z","shell.execute_reply":"2022-01-02T02:53:26.178759Z"},"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.\nmergedDALKickoffReturn2018Above25Yards = pd.merge(DALKickoffReturn2018Above25Yards, \n                                                 pFFData,  \n                                                 how='left', \n                                                 left_on=['gameId','playId'], \n                                                 right_on = ['gameId','playId']\n                                                )\n\nmergedDALKickoffReturn2019Above25Yards = pd.merge(DALKickoffReturn2019Above25Yards, \n                                                 pFFData,  \n                                                 how='left', \n                                                 left_on=['gameId','playId'], \n                                                 right_on = ['gameId','playId']\n                                                )\n\nmergedDALKickoffReturn2020Above25Yards = pd.merge(DALKickoffReturn2020Above25Yards, \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.\nmergedDALKickoffReturn2018Below25Yards = pd.merge(DALKickoffReturn2018Below25Yards, \n                                                 pFFData,  \n                                                 how='left', \n                                                 left_on=['gameId','playId'], \n                                                 right_on = ['gameId','playId']\n                                                )\n\nmergedDALKickoffReturn2019Below25Yards = pd.merge(DALKickoffReturn2019Below25Yards, \n                                                 pFFData,  \n                                                 how='left', \n                                                 left_on=['gameId','playId'], \n                                                 right_on = ['gameId','playId']\n                                                )\n\nmergedDALKickoffReturn2020Below25Yards = pd.merge(DALKickoffReturn2020Below25Yards, \n                                                 pFFData,  \n                                                 how='left', \n                                                 left_on=['gameId','playId'], \n                                                 right_on = ['gameId','playId']\n                                                )","metadata":{"execution":{"iopub.status.busy":"2022-01-02T02:53:26.182099Z","iopub.execute_input":"2022-01-02T02:53:26.18266Z","iopub.status.idle":"2022-01-02T02:53:26.300407Z","shell.execute_reply.started":"2022-01-02T02:53:26.182585Z","shell.execute_reply":"2022-01-02T02:53:26.299448Z"},"_kg_hide-input":true,"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\nDALKickoffReturn2018Above25YardsSeries = DALKickoffReturn2018Above25Yards.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()\nDALKickoffReturn2018Above25YardsFrame = pd.DataFrame(DALKickoffReturn2018Above25YardsSeries)\n\nmergedDALKickoffReturn2018Above25YardsSeries = mergedDALKickoffReturn2018Above25Yards.groupby(\n    ['season','kickoffReturnFormation','tackler','gameId','playId','returnDirectionIntended',\n     'returnDirectionActual','kickReturnYardage','homeTeamAbbr','visitorTeamAbbr','week'],as_index=True).size()\nmergedDALKickoffReturn2018Above25YardsFrame = pd.DataFrame(mergedDALKickoffReturn2018Above25YardsSeries)\n\n# Above 25 Yards 2019\nDALKickoffReturn2019Above25YardsSeries = DALKickoffReturn2019Above25Yards.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()\nDALKickoffReturn2019Above25YardsFrame = pd.DataFrame(DALKickoffReturn2019Above25YardsSeries)\n\nmergedDALKickoffReturn2019Above25YardsSeries = mergedDALKickoffReturn2019Above25Yards.groupby(\n    ['season','kickoffReturnFormation','tackler','gameId','playId','returnDirectionIntended',\n     'returnDirectionActual','kickReturnYardage','homeTeamAbbr','visitorTeamAbbr','week'],as_index=True).size()\nmergedDALKickoffReturn2019Above25YardsFrame = pd.DataFrame(mergedDALKickoffReturn2019Above25YardsSeries)\n\n# Above 25 Yards 2020\nDALKickoffReturn2020Above25YardsSeries = DALKickoffReturn2020Above25Yards.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()\nDALKickoffReturn2020Above25YardsFrame = pd.DataFrame(DALKickoffReturn2020Above25YardsSeries)\n\nmergedDALKickoffReturn2020Above25YardsSeries = mergedDALKickoffReturn2020Above25Yards.groupby(\n    ['season','kickoffReturnFormation','tackler','gameId','playId','returnDirectionIntended',\n     'returnDirectionActual','kickReturnYardage','homeTeamAbbr','visitorTeamAbbr','week'],as_index=True).size()\nmergedDALKickoffReturn2020Above25YardsFrame = pd.DataFrame(mergedDALKickoffReturn2020Above25YardsSeries)\n\n# Below 25 Yards 2018\nDALKickoffReturn2018Below25YardsSeries = DALKickoffReturn2018Below25Yards.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()\nDALKickoffReturn2018Below25YardsFrame = pd.DataFrame(DALKickoffReturn2018Below25YardsSeries)\n\nmergedDALKickoffReturn2018Below25YardsSeries = mergedDALKickoffReturn2018Below25Yards.groupby(\n    ['season','kickoffReturnFormation','tackler','gameId','playId','returnDirectionIntended',\n     'returnDirectionActual','kickReturnYardage','homeTeamAbbr','visitorTeamAbbr','week'],as_index=True).size()\nmergedDALKickoffReturn2018Below25YardsFrame = pd.DataFrame(mergedDALKickoffReturn2018Below25YardsSeries)\n\n# Below 25 Yards 2019\nDALKickoffReturn2019Below25YardsSeries = DALKickoffReturn2019Below25Yards.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()\nDALKickoffReturn2019Below25YardsFrame = pd.DataFrame(DALKickoffReturn2019Below25YardsSeries)\n\nmergedDALKickoffReturn2019Below25YardsSeries = mergedDALKickoffReturn2019Below25Yards.groupby(\n    ['season','kickoffReturnFormation','tackler','gameId','playId','returnDirectionIntended',\n     'returnDirectionActual','kickReturnYardage','homeTeamAbbr','visitorTeamAbbr','week'],as_index=True).size()\nmergedDALKickoffReturn2019Below25YardsFrame = pd.DataFrame(mergedDALKickoffReturn2019Below25YardsSeries)\n\n# Below 25 Yards 2020\nDALKickoffReturn2020Below25YardsSeries = DALKickoffReturn2020Below25Yards.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()\nDALKickoffReturn2020Below25YardsFrame = pd.DataFrame(DALKickoffReturn2020Below25YardsSeries)\n\nmergedDALKickoffReturn2020Below25YardsSeries = mergedDALKickoffReturn2020Below25Yards.groupby(\n    ['season','kickoffReturnFormation','tackler','gameId','playId','returnDirectionIntended',\n     'returnDirectionActual','kickReturnYardage','homeTeamAbbr','visitorTeamAbbr','week'],as_index=True).size()\nmergedDALKickoffReturn2020Below25YardsFrame = pd.DataFrame(mergedDALKickoffReturn2020Below25YardsSeries)","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2022-01-02T02:53:26.301674Z","iopub.execute_input":"2022-01-02T02:53:26.301895Z","iopub.status.idle":"2022-01-02T02:53:26.393449Z","shell.execute_reply.started":"2022-01-02T02:53:26.30186Z","shell.execute_reply":"2022-01-02T02:53:26.39257Z"},"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":"DALKickoffReturn2018Below25YardsFrame","metadata":{"execution":{"iopub.status.busy":"2022-01-02T02:53:26.394555Z","iopub.execute_input":"2022-01-02T02:53:26.39479Z","iopub.status.idle":"2022-01-02T02:53:26.432473Z","shell.execute_reply.started":"2022-01-02T02:53:26.394762Z","shell.execute_reply":"2022-01-02T02:53:26.431475Z"},"_kg_hide-input":true,"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":"mergedDALKickoffReturn2018Below25YardsFrame","metadata":{"execution":{"iopub.status.busy":"2022-01-02T02:53:26.433648Z","iopub.execute_input":"2022-01-02T02:53:26.434482Z","iopub.status.idle":"2022-01-02T02:53:26.451264Z","shell.execute_reply.started":"2022-01-02T02:53:26.434431Z","shell.execute_reply":"2022-01-02T02:53:26.45022Z"},"_kg_hide-input":true,"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":"DALKickoffReturn2019Below25YardsFrame","metadata":{"execution":{"iopub.status.busy":"2022-01-02T02:53:26.453007Z","iopub.execute_input":"2022-01-02T02:53:26.453784Z","iopub.status.idle":"2022-01-02T02:53:26.512427Z","shell.execute_reply.started":"2022-01-02T02:53:26.453524Z","shell.execute_reply":"2022-01-02T02:53:26.511654Z"},"_kg_hide-input":true,"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":"mergedDALKickoffReturn2019Below25YardsFrame","metadata":{"execution":{"iopub.status.busy":"2022-01-02T02:53:26.515733Z","iopub.execute_input":"2022-01-02T02:53:26.516192Z","iopub.status.idle":"2022-01-02T02:53:26.538098Z","shell.execute_reply.started":"2022-01-02T02:53:26.51615Z","shell.execute_reply":"2022-01-02T02:53:26.537186Z"},"_kg_hide-input":true,"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":"DALKickoffReturn2020Below25YardsFrame","metadata":{"execution":{"iopub.status.busy":"2022-01-02T02:53:26.539366Z","iopub.execute_input":"2022-01-02T02:53:26.539613Z","iopub.status.idle":"2022-01-02T02:53:26.610658Z","shell.execute_reply.started":"2022-01-02T02:53:26.539583Z","shell.execute_reply":"2022-01-02T02:53:26.609798Z"},"_kg_hide-input":true,"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":"mergedDALKickoffReturn2020Below25YardsFrame","metadata":{"execution":{"iopub.status.busy":"2022-01-02T02:53:26.612211Z","iopub.execute_input":"2022-01-02T02:53:26.612814Z","iopub.status.idle":"2022-01-02T02:53:26.638814Z","shell.execute_reply.started":"2022-01-02T02:53:26.612768Z","shell.execute_reply":"2022-01-02T02:53:26.637683Z"},"_kg_hide-input":true,"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":"DALKickoffReturn2018Above25YardsFrame","metadata":{"execution":{"iopub.status.busy":"2022-01-02T02:53:26.640241Z","iopub.execute_input":"2022-01-02T02:53:26.640592Z","iopub.status.idle":"2022-01-02T02:53:26.682233Z","shell.execute_reply.started":"2022-01-02T02:53:26.640552Z","shell.execute_reply":"2022-01-02T02:53:26.681361Z"},"_kg_hide-input":true,"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":"mergedDALKickoffReturn2018Above25YardsFrame","metadata":{"execution":{"iopub.status.busy":"2022-01-02T02:53:26.684004Z","iopub.execute_input":"2022-01-02T02:53:26.684487Z","iopub.status.idle":"2022-01-02T02:53:26.705441Z","shell.execute_reply.started":"2022-01-02T02:53:26.68445Z","shell.execute_reply":"2022-01-02T02:53:26.704573Z"},"_kg_hide-input":true,"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":"DALKickoffReturn2019Above25YardsFrame","metadata":{"execution":{"iopub.status.busy":"2022-01-02T02:53:26.707086Z","iopub.execute_input":"2022-01-02T02:53:26.707397Z","iopub.status.idle":"2022-01-02T02:53:26.743586Z","shell.execute_reply.started":"2022-01-02T02:53:26.707354Z","shell.execute_reply":"2022-01-02T02:53:26.742797Z"},"_kg_hide-input":true,"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":"mergedDALKickoffReturn2019Above25YardsFrame","metadata":{"execution":{"iopub.status.busy":"2022-01-02T02:53:26.745032Z","iopub.execute_input":"2022-01-02T02:53:26.745304Z","iopub.status.idle":"2022-01-02T02:53:26.762701Z","shell.execute_reply.started":"2022-01-02T02:53:26.745272Z","shell.execute_reply":"2022-01-02T02:53:26.762046Z"},"_kg_hide-input":true,"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":"DALKickoffReturn2020Above25YardsFrame","metadata":{"execution":{"iopub.status.busy":"2022-01-02T02:53:26.763687Z","iopub.execute_input":"2022-01-02T02:53:26.76402Z","iopub.status.idle":"2022-01-02T02:53:26.79698Z","shell.execute_reply.started":"2022-01-02T02:53:26.763992Z","shell.execute_reply":"2022-01-02T02:53:26.796034Z"},"_kg_hide-input":true,"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":"mergedDALKickoffReturn2020Above25YardsFrame","metadata":{"execution":{"iopub.status.busy":"2022-01-02T02:53:26.798867Z","iopub.execute_input":"2022-01-02T02:53:26.799195Z","iopub.status.idle":"2022-01-02T02:53:26.819066Z","shell.execute_reply.started":"2022-01-02T02:53:26.799148Z","shell.execute_reply":"2022-01-02T02:53:26.818231Z"},"_kg_hide-input":true,"trusted":true},"execution_count":null,"outputs":[]}]}