{"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":"code","source":"import pandas as pd\nimport numpy as np\nimport seaborn as sns\nimport matplotlib.pyplot as plt\nimport datetime\nimport warnings\nwarnings.filterwarnings('ignore')\n\n\nimport os\nos.environ['KAGGLE_CONFIG_DIR']='/content'\n# Loading dataset games.csv\ndf_games= pd.read_csv('../input/nfl-big-data-bowl-2022/games.csv')\n#df_games = pd.read_csv('games.csv')\ndf_games.info()","metadata":{"_uuid":"502465fe-005d-4871-bcd5-60912ae26305","_cell_guid":"f391cd3c-efe4-4d43-9840-0d79abf7227b","collapsed":false,"jupyter":{"outputs_hidden":false},"execution":{"iopub.status.busy":"2021-12-25T15:53:27.217075Z","iopub.execute_input":"2021-12-25T15:53:27.21816Z","iopub.status.idle":"2021-12-25T15:53:28.272327Z","shell.execute_reply.started":"2021-12-25T15:53:27.218005Z","shell.execute_reply":"2021-12-25T15:53:28.271548Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"df_plays= pd.read_csv('../input/nfl-big-data-bowl-2022/plays.csv').fillna(0)\n#df_plays = pd.read_csv('plays.csv').fillna(0)\ndf_plays.info()","metadata":{"execution":{"iopub.status.busy":"2021-12-25T15:53:28.2737Z","iopub.execute_input":"2021-12-25T15:53:28.273902Z","iopub.status.idle":"2021-12-25T15:53:28.431047Z","shell.execute_reply.started":"2021-12-25T15:53:28.273879Z","shell.execute_reply":"2021-12-25T15:53:28.430268Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"plt.figure(figsize=(25,4))\nplt.grid(True)\nbp_pivot = df_plays.groupby('specialTeamsResult').possessionTeam.count().reset_index()\nsns.barplot(bp_pivot.specialTeamsResult, bp_pivot.possessionTeam)\nplt.title('Special Teams Result')\nplt.xticks(rotation='vertical')\nplt.show()       ","metadata":{"execution":{"iopub.status.busy":"2021-12-25T15:53:28.432261Z","iopub.execute_input":"2021-12-25T15:53:28.432463Z","iopub.status.idle":"2021-12-25T15:53:28.739352Z","shell.execute_reply.started":"2021-12-25T15:53:28.432439Z","shell.execute_reply":"2021-12-25T15:53:28.738454Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"plt.figure(figsize=(25,5))\nplt.grid(True)\nbp_pivot = df_plays.groupby('possessionTeam').playResult.sum().reset_index()\nsns.barplot(bp_pivot.possessionTeam, bp_pivot.playResult)\nplt.title('Team in relation to Play Result')\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2021-12-25T15:53:28.741057Z","iopub.execute_input":"2021-12-25T15:53:28.741268Z","iopub.status.idle":"2021-12-25T15:53:29.144978Z","shell.execute_reply.started":"2021-12-25T15:53:28.741243Z","shell.execute_reply":"2021-12-25T15:53:29.144077Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"plt.figure(figsize=(25,5))\nplt.grid(True)\nbp_pivot = df_plays.groupby('possessionTeam').penaltyYards.sum().reset_index()\nsns.barplot(bp_pivot.possessionTeam, bp_pivot.penaltyYards)\nplt.title('Team in relation to the Penalty Yards')\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2021-12-25T15:53:29.146247Z","iopub.execute_input":"2021-12-25T15:53:29.146478Z","iopub.status.idle":"2021-12-25T15:53:29.540121Z","shell.execute_reply.started":"2021-12-25T15:53:29.146451Z","shell.execute_reply":"2021-12-25T15:53:29.539175Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"bp_pivot = df_plays.groupby('penaltyJerseyNumbers').count().reset_index()[1:]\nplt.figure(figsize=(25,5))\nplt.grid(True)\nbp_pivot = bp_pivot.loc[bp_pivot['playResult'] >= 3]\nsns.barplot(x=bp_pivot.penaltyJerseyNumbers, y=bp_pivot.playResult, data=bp_pivot )\nplt.title('Players Penalty')\nplt.xticks(rotation='vertical')\nplt.show()    ","metadata":{"execution":{"iopub.status.busy":"2021-12-25T15:53:29.541452Z","iopub.execute_input":"2021-12-25T15:53:29.541748Z","iopub.status.idle":"2021-12-25T15:53:30.936983Z","shell.execute_reply.started":"2021-12-25T15:53:29.541709Z","shell.execute_reply":"2021-12-25T15:53:30.936153Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#df_players = pd.read_csv('players.csv')\ndf_players= pd.read_csv('../input/nfl-big-data-bowl-2022/players.csv')\ndf_players.info()","metadata":{"execution":{"iopub.status.busy":"2021-12-25T15:53:30.938046Z","iopub.execute_input":"2021-12-25T15:53:30.9383Z","iopub.status.idle":"2021-12-25T15:53:30.963745Z","shell.execute_reply.started":"2021-12-25T15:53:30.93827Z","shell.execute_reply":"2021-12-25T15:53:30.962907Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#Engineering new features \n\n#Position on the field\nOffense = ['C','G','P','T','TE','WR','QB','RB','FB','HB','OG']\nDefense = ['S','SS','CB','LB','DE','DT','DB','NT','MLB','ILB','FS','ILB']\nSpecial = ['K','LS','OLB','OT']\naa = []\n\ndf_players.insert(7,'Game_Position', 'Offense')\n\naa =(pd.get_dummies(df_players['Position']).columns)\ndf_players.set_index('Position')\n\nfor ii in range(len(aa)):\n    \n    if aa[ii] in Defense:\n        \n        df_players.loc[df_players.Position == aa[ii],'Game_Position']='Defense'  \n         \n    elif aa[ii] in Special:\n        \n        df_players.loc[df_players.Position == aa[ii],'Game_Position']='Special'\n                \n           \n#convert all hight to in and later create bins to simplify records\naa = pd.get_dummies(df_players['height']).columns\n\nfor i in range(len(aa)):\n    if len(aa[i]) == 3:\n        h1 = int(aa[i][0]) * 12 + int(aa[i][2])\n        \n    elif len(aa[i]) == 4:\n        h1 = int(aa[i][0]) * 12 + int(aa[i][2:4])\n          \n    \n    df_players.loc[df_players.height == aa[i],'height'] = h1\n\n    \n#Grouping by hight\nbins=[65,68,70,72,75,78,80,82]\nbin_labels=['65-67','68-69','70-71','72-74','75-77','78-79','80-81']\nname_Group='Height_Group'\nname_Column='height'\n\ndef Bins_function():\n    df_players[name_Group]=pd.cut( df_players[name_Column],bins,right=True,labels=bin_labels)\n     \nBins_function()\n\n#updating age of all payers\ndf_players.birthDate=pd.to_datetime(df_players['birthDate']).dt.year\n\ndf_players.insert(8,'Age',0)\nyear = datetime.date.today().year\naa = pd.get_dummies(df_players['birthDate']).columns\n\nfor i in range(len(aa)):\n    year2 = int(aa[i])\n    Y1 = year-year2\n    df_players.loc[df_players.birthDate == aa[i],'Age'] = Y1\n    \n#Grouping by Age\nbins=[20,25,30,35,40,45,50,55]\nbin_labels=['20-24','25-29','30-34','35-39','40-44','45-49','50-54']\nname_Group='Age_Group'\nname_Column='Age'\nBins_function()\n\n#setting parameters for the Length of the kick to 10\ndf_kick1 = df_plays.loc[df_plays.kickLength >= 10].copy()\ndf_kick1 = df_kick1[['kickerId','kickLength']]\ndf_kick1 = df_kick1.sort_values('kickerId',ascending = True)\n\ndf_players.insert(9,'kickLength',0)\naa = pd.get_dummies(df_kick1['kickerId']).columns\nK1 = (df_kick1.groupby(['kickerId']).max())\n\nfor i in range(len(aa)):\n    \n    K1 = (df_kick1.loc[(df_kick1['kickerId']==aa[i])]).max()\n    k1 = K1.kickLength\n    \n    df_players.loc[df_players.nflId == aa[i],'kickLength'] = k1\n\nplt.figure(figsize=(25,5))\nplt.grid(True)\nsns.barplot(x=df_players.Height_Group, y=df_players.kickLength, data=df_players, hue=df_players.Game_Position )\nplt.title('Kick Length in relation to Height')\nplt.show() \n","metadata":{"execution":{"iopub.status.busy":"2021-12-25T15:53:30.965126Z","iopub.execute_input":"2021-12-25T15:53:30.965468Z","iopub.status.idle":"2021-12-25T15:53:31.957576Z","shell.execute_reply.started":"2021-12-25T15:53:30.965412Z","shell.execute_reply":"2021-12-25T15:53:31.956663Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"plt.figure(figsize=(25,5))\nplt.grid(True)\nsns.barplot(x=df_players.Age_Group, y=df_players.kickLength, data=df_players, hue=df_players.Game_Position )\nplt.title('Kick Length in relation to Age')\nplt.show()  ","metadata":{"execution":{"iopub.status.busy":"2021-12-25T15:53:31.958944Z","iopub.execute_input":"2021-12-25T15:53:31.959266Z","iopub.status.idle":"2021-12-25T15:53:32.668127Z","shell.execute_reply.started":"2021-12-25T15:53:31.959224Z","shell.execute_reply":"2021-12-25T15:53:32.667403Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#df_tracking2020 = pd.read_csv('tracking2020.csv')\ndf_tracking2020= pd.read_csv('../input/nfl-big-data-bowl-2022/tracking2020.csv')\ndf_tracking2021 = df_tracking2020.loc[df_tracking2020['time'] >= '2021-01-01 00:15:00'].copy()\ndf_tracking2021 = df_tracking2021.loc[df_tracking2021['displayName'] != 'football'].copy()\ndf_tracking2021.reset_index()\n","metadata":{"execution":{"iopub.status.busy":"2021-12-25T15:53:32.67046Z","iopub.execute_input":"2021-12-25T15:53:32.670962Z","iopub.status.idle":"2021-12-25T15:54:05.018837Z","shell.execute_reply.started":"2021-12-25T15:53:32.670928Z","shell.execute_reply":"2021-12-25T15:54:05.018026Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]}]}