{"cells":[{"metadata":{"_uuid":"b288ea6b34d2060e03c02ac71c7d1e2ca957c027"},"cell_type":"markdown","source":"## Objective:\n- Combine NGS data with particular play subsets (punt returns, fair catches, concussions) to reduce memory requirements to run analysis notebooks."},{"metadata":{"trusted":true,"_uuid":"0e68f267791e7b6854734e7ea86f8050381eef90"},"cell_type":"code","source":"import pandas as pd\nimport numpy as np","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"21fe8c595a0957c1d55c8d919ad17a0291fc070f"},"cell_type":"code","source":"%%time\n\n# 2016 Season Data Processing\nngs_2016_pre = pd.read_csv('../input/NFL-Punt-Analytics-Competition/NGS-2016-pre.csv')\nngs_2016_1_6 = pd.read_csv('../input/NFL-Punt-Analytics-Competition/NGS-2016-reg-wk1-6.csv')\nngs_2016_7_12 = pd.read_csv('../input/NFL-Punt-Analytics-Competition/NGS-2016-reg-wk7-12.csv')\nngs_2016_13_17 = pd.read_csv('../input/NFL-Punt-Analytics-Competition/NGS-2016-reg-wk13-17.csv')\nngs_2016_post = pd.read_csv('../input/NFL-Punt-Analytics-Competition/NGS-2016-post.csv')\n\n# Combine\nngs_2016 = pd.concat([ngs_2016_pre, ngs_2016_1_6, ngs_2016_7_12, ngs_2016_13_17, ngs_2016_post], axis=0)\n\n# Clear up memory\ndel ngs_2016_pre\ndel ngs_2016_1_6\ndel ngs_2016_7_12\ndel ngs_2016_13_17\ndel ngs_2016_post\n\n# 2017 Season Data Processing\nngs_2017_pre = pd.read_csv('../input/NFL-Punt-Analytics-Competition/NGS-2017-pre.csv')\nngs_2017_1_6 = pd.read_csv('../input/NFL-Punt-Analytics-Competition/NGS-2017-reg-wk1-6.csv')\nngs_2017_7_12 = pd.read_csv('../input/NFL-Punt-Analytics-Competition/NGS-2017-reg-wk7-12.csv')\nngs_2017_13_17 = pd.read_csv('../input/NFL-Punt-Analytics-Competition/NGS-2017-reg-wk13-17.csv')\nngs_2017_post = pd.read_csv('../input/NFL-Punt-Analytics-Competition/NGS-2017-post.csv')\n\n# Combine\nngs_2017 = pd.concat([ngs_2017_pre, ngs_2017_1_6, ngs_2017_7_12, ngs_2017_13_17, ngs_2017_post], axis=0)\n\n# Clear up memory\ndel ngs_2017_pre\ndel ngs_2017_1_6\ndel ngs_2017_7_12\ndel ngs_2017_13_17\ndel ngs_2017_post\n\n# Combine\nngs_all = pd.concat([ngs_2016, ngs_2017], axis=0)\n\n# Clear up memory\ndel ngs_2016\ndel ngs_2017\n\n# Drop unneeded columns\ndroppers = ['Season_Year', 'o', 'dir']\nngs_all.drop(columns=droppers, inplace=True)","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"fe15dd13709121da8a6dcca699ee0841d8d29473"},"cell_type":"markdown","source":"- Get NGS subsets\n- **play-fair_catch.csv and play-punt_return.csv** can be obtained from: https://www.kaggle.com/jdemeo/preprocessing-punt-play"},{"metadata":{"trusted":true,"_uuid":"52fd6f130eb12cf7c7ed5571cd04103dc56e29b1"},"cell_type":"code","source":"# Fair Catch\nfair_catch_df = pd.read_csv('../input/ngsconcussion/play-fair_catch.csv')\nremainder_df = fair_catch_df.groupby(['GameKey','PlayID']).size().reset_index().rename(columns={0:'count'})\n\n# Create condensed set of NGS data\ncondensed_ngs = pd.merge(remainder_df, ngs_all,\n                          how='inner',\n                          on=['GameKey', 'PlayID'])\n\ncondensed_ngs.to_csv('NGS-fair_catch.csv', index=False)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"2315e461a1239fbed7dfc38dbf189770a7361a4f"},"cell_type":"code","source":"# Punt Return\nfair_catch_df = pd.read_csv('../input/ngsconcussion/play-punt_return.csv')\nremainder_df = fair_catch_df.groupby(['GameKey','PlayID']).size().reset_index().rename(columns={0:'count'})\n\n# Create condensed set of NGS data\ncondensed_ngs = pd.merge(remainder_df, ngs_all,\n                          how='inner',\n                          on=['GameKey', 'PlayID'])\n\ncondensed_ngs.to_csv('NGS-punt_return.csv', index=False)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"078363d66e027805b230d464794f2dd643c47cc5"},"cell_type":"code","source":"# Concussion\nconcussion_df = pd.read_csv('../input/NFL-Punt-Analytics-Competition/video_review.csv')\nremainder_df = concussion_df.groupby(['GameKey','PlayID']).size().reset_index().rename(columns={0:'count'})\n\n# Create condensed set of NGS data\ncondensed_ngs = pd.merge(remainder_df, ngs_all,\n                          how='inner',\n                          on=['GameKey', 'PlayID'])\n\ncondensed_ngs.to_csv('NGS-concussion.csv', index=False)","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"585f548030a01ea546cb66dc7fb3a2eff10893ed"},"cell_type":"markdown","source":"# Links to other notebooks:\n- Concussion play analysis with proposed rule changes: https://www.kaggle.com/jdemeo/analysis-concussions\n- Analysis of uncalled penalties: https://www.kaggle.com/jdemeo/analysis-uncalled-penalties\n- Analysis of punt returns: https://www.kaggle.com/jdemeo/analysis-punt-returns\n- Analysis of fair catches: https://www.kaggle.com/jdemeo/analysis-fair-catches\n- Preprocessing of Play Information: https://www.kaggle.com/jdemeo/preprocessing-punt-play\n- Preprocessing of NGS data for the above notebooks: https://www.kaggle.com/jdemeo/preprocessing-ngs"},{"metadata":{"trusted":false,"_uuid":"0ba344decdc23a36d088b0675b169f8b9ba31a0c"},"cell_type":"code","source":"","execution_count":null,"outputs":[]}],"metadata":{"kernelspec":{"display_name":"Python 3","language":"python","name":"python3"},"language_info":{"name":"python","version":"3.6.6","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"}},"nbformat":4,"nbformat_minor":1}