{"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":"\n\nimport numpy as np # linear algebra\nimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\n\nimport os\nfor dirname, _, filenames in os.walk('/kaggle/input'):\n    for filename in filenames:\n        print(os.path.join(dirname, filename))\n","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","execution":{"iopub.status.busy":"2022-10-15T18:58:14.112129Z","iopub.execute_input":"2022-10-15T18:58:14.112693Z","iopub.status.idle":"2022-10-15T18:58:14.147362Z","shell.execute_reply.started":"2022-10-15T18:58:14.112571Z","shell.execute_reply":"2022-10-15T18:58:14.145856Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"dataset_tracks = pd.read_csv('/kaggle/input/big-data-derby-2022/nyra_tracking_table.csv')\ndataset_start = pd.read_csv('/kaggle/input/big-data-derby-2022/nyra_start_table.csv')\ndataset_race = pd.read_csv('/kaggle/input/big-data-derby-2022/nyra_race_table.csv')\ndataset_2019 = pd.read_csv('/kaggle/input/big-data-derby-2022/nyra_2019_complete.csv', header=None)\n","metadata":{"execution":{"iopub.status.busy":"2022-10-15T18:58:14.159274Z","iopub.execute_input":"2022-10-15T18:58:14.160308Z","iopub.status.idle":"2022-10-15T18:58:42.770579Z","shell.execute_reply.started":"2022-10-15T18:58:14.160128Z","shell.execute_reply":"2022-10-15T18:58:42.769274Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"import pandas as pd\npd.set_option('display.max_rows', 500)\npd.set_option('display.max_columns', 500)\npd.set_option('display.width', 1000)\nprint(dataset_tracks.head())\nprint('shape',dataset_tracks.shape)\nprint(dataset_start.head())\nprint('shape',dataset_start.shape)\nprint(dataset_race.head())\nprint('shape',dataset_race.shape)\nprint(dataset_2019.head())\nprint('shape',dataset_2019.shape)\n","metadata":{"execution":{"iopub.status.busy":"2022-10-15T18:58:42.772722Z","iopub.execute_input":"2022-10-15T18:58:42.773095Z","iopub.status.idle":"2022-10-15T18:58:42.815424Z","shell.execute_reply.started":"2022-10-15T18:58:42.773063Z","shell.execute_reply":"2022-10-15T18:58:42.814102Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"dataset_2019.columns = ['track_id',\n 'race_date', \n 'race_number',\n 'program_number',\n 'trakus_index',\n 'latitude', \n 'longitude', \n 'distance_id', \n 'course_type', \n 'track_condition',\n 'run_up_distance',\n 'race_type', 'purse',\n 'post_time', \n 'weight_carried', \n 'jockey',\n 'odds', \n 'position_at_finish']\n","metadata":{"execution":{"iopub.status.busy":"2022-10-15T18:58:42.817394Z","iopub.execute_input":"2022-10-15T18:58:42.818170Z","iopub.status.idle":"2022-10-15T18:58:42.826956Z","shell.execute_reply.started":"2022-10-15T18:58:42.818122Z","shell.execute_reply":"2022-10-15T18:58:42.825971Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# dataset_2019[['jockey','race_date','run_up_distance']].groupby(['race_date','jockey']).transform(lambda x: print(x.mean()))#['position_at_finish'])","metadata":{"execution":{"iopub.status.busy":"2022-10-15T16:03:54.543981Z","iopub.execute_input":"2022-10-15T16:03:54.544449Z","iopub.status.idle":"2022-10-15T16:03:54.553990Z","shell.execute_reply.started":"2022-10-15T16:03:54.544407Z","shell.execute_reply":"2022-10-15T16:03:54.552750Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"groups_distance = dataset_2019[['jockey' ,'run_up_distance']].groupby([ 'jockey'])\ngroups_odds = dataset_2019[['jockey' ,'odds']].groupby([ 'jockey'])\ngroups_position_at_finish = dataset_2019[['jockey' ,'position_at_finish']].groupby([ 'jockey'])\ngroups_race_date = dataset_2019[['race_date' ,'run_up_distance']].groupby([ 'race_date'])\n","metadata":{"execution":{"iopub.status.busy":"2022-10-15T18:58:57.141860Z","iopub.execute_input":"2022-10-15T18:58:57.142595Z","iopub.status.idle":"2022-10-15T18:58:57.403267Z","shell.execute_reply.started":"2022-10-15T18:58:57.142556Z","shell.execute_reply":"2022-10-15T18:58:57.401936Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"jockeys_distance = pd.DataFrame()\nrace_distance = pd.DataFrame()\n# jockeys_distance['jockey'] = 0\n# jockeys_distance['run_up_distance'] = 0\nfor i in groups_distance:\n    tmp = pd.DataFrame()\n    tmp['jockey'] = i[1]['jockey'].unique()\n    tmp['run_up_distance'] = i[1]['run_up_distance'].mean()\n    jockeys_distance = jockeys_distance.append(tmp)\n\nfor i in groups_odds:\n    tmp = pd.DataFrame()\n    tmp['jockey'] = i[1]['jockey'].unique()\n    tmp['odds'] = i[1]['odds'].mean()\n    jockeys_distance = jockeys_distance.append(tmp)\n    \nfor i in groups_position_at_finish:\n    tmp = pd.DataFrame()\n    tmp['jockey'] = i[1]['jockey'].unique()\n    tmp['position_at_finish'] = i[1]['position_at_finish'].mean()\n    jockeys_distance = jockeys_distance.append(tmp)\n    \n# for i in groups_race_date:\n#     tmp = pd.DataFrame()\n#     tmp['race_date'] = i[1]['race_date'].unique()\n#     tmp['run_up_distance'] = i[1]['run_up_distance'].mean()\n#     race_distance = race_distance.append(tmp)\n    \n ","metadata":{"execution":{"iopub.status.busy":"2022-10-15T18:58:59.048284Z","iopub.execute_input":"2022-10-15T18:58:59.048784Z","iopub.status.idle":"2022-10-15T18:59:04.154366Z","shell.execute_reply.started":"2022-10-15T18:58:59.048746Z","shell.execute_reply":"2022-10-15T18:59:04.153083Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# race_distance['race_date'] = race_distance.race_date.astype('datetime64[ns]')","metadata":{"execution":{"iopub.status.busy":"2022-10-15T16:54:02.585387Z","iopub.execute_input":"2022-10-15T16:54:02.585866Z","iopub.status.idle":"2022-10-15T16:54:02.593062Z","shell.execute_reply.started":"2022-10-15T16:54:02.585822Z","shell.execute_reply":"2022-10-15T16:54:02.591665Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# import matplotlib\n# matplotlib.pyplot.plot(race_distance)\n# sb.scatterplot(dataset=race_distance, x='race_date', y='run_up_distance' )","metadata":{"execution":{"iopub.status.busy":"2022-10-15T18:59:34.262178Z","iopub.execute_input":"2022-10-15T18:59:34.262706Z","iopub.status.idle":"2022-10-15T18:59:34.268446Z","shell.execute_reply.started":"2022-10-15T18:59:34.262661Z","shell.execute_reply":"2022-10-15T18:59:34.267067Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"import seaborn as sb\nsb.displot(jockeys_distance.run_up_distance)\nsb.displot(jockeys_distance.odds)\nsb.displot(jockeys_distance.position_at_finish)\nsb.displot(dataset_2019.odds)","metadata":{"execution":{"iopub.status.busy":"2022-10-15T19:00:43.343546Z","iopub.execute_input":"2022-10-15T19:00:43.344070Z","iopub.status.idle":"2022-10-15T19:00:51.072329Z","shell.execute_reply.started":"2022-10-15T19:00:43.344028Z","shell.execute_reply":"2022-10-15T19:00:51.071095Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# jockeys_distance.fillna(0, inplace=True)","metadata":{"execution":{"iopub.status.busy":"2022-10-15T16:33:49.273979Z","iopub.execute_input":"2022-10-15T16:33:49.274426Z","iopub.status.idle":"2022-10-15T16:33:49.281517Z","shell.execute_reply.started":"2022-10-15T16:33:49.274390Z","shell.execute_reply":"2022-10-15T16:33:49.280459Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# jockeys_distance1 = jockeys_distance.loc[jockeys_distance['run_up_distance'].isna() ==False]\n# jockeys_distance2 = jockeys_distance1.loc[jockeys_distance1['position_at_finish'].isna() ==False]","metadata":{"execution":{"iopub.status.busy":"2022-10-15T19:00:02.584170Z","iopub.execute_input":"2022-10-15T19:00:02.584669Z","iopub.status.idle":"2022-10-15T19:00:02.590062Z","shell.execute_reply.started":"2022-10-15T19:00:02.584630Z","shell.execute_reply":"2022-10-15T19:00:02.588737Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# jockeys_distance['jockey'].loc[jockeys_distance['run_up_distance'] == jockeys_distance['run_up_distance'].max()]\n","metadata":{"execution":{"iopub.status.busy":"2022-10-15T19:00:22.972375Z","iopub.execute_input":"2022-10-15T19:00:22.972865Z","iopub.status.idle":"2022-10-15T19:00:22.984972Z","shell.execute_reply.started":"2022-10-15T19:00:22.972826Z","shell.execute_reply":"2022-10-15T19:00:22.983748Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# dataset_2019.head(2)","metadata":{"execution":{"iopub.status.busy":"2022-10-15T19:00:28.320969Z","iopub.execute_input":"2022-10-15T19:00:28.321478Z","iopub.status.idle":"2022-10-15T19:00:28.327140Z","shell.execute_reply.started":"2022-10-15T19:00:28.321438Z","shell.execute_reply":"2022-10-15T19:00:28.325938Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]}]}