{"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":"# 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)\nimport os\nimport datetime\nfrom sklearn.metrics.pairwise import haversine_distances\nimport math\nimport gc\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":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","execution":{"iopub.status.busy":"2022-11-03T11:45:28.588009Z","iopub.execute_input":"2022-11-03T11:45:28.588457Z","iopub.status.idle":"2022-11-03T11:45:28.596233Z","shell.execute_reply.started":"2022-11-03T11:45:28.588413Z","shell.execute_reply":"2022-11-03T11:45:28.594677Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"def data_organizer (file_path:str):\n    df = pd.read_csv(file_path)\n    df = df.rename(columns={'Unnamed: 0':df.iloc[1,0]})\n\n    column_list = list(df.columns)\n    cols_to_delete = ['track_id', 'race_date', 'race_number', 'distance_id', 'course_type', 'track_condition', 'run_up_distance', 'race_type', 'purse', 'post_time']\n    for x in cols_to_delete:\n        sub_cols_to_delete = [k for k in column_list if x in k][1:]\n        df = df.drop(sub_cols_to_delete, axis=1)\n    cols_to_rename = ['region', 'stride', 'velocity_horizontal', 'one_foot_speed', 'ang_velocity', 'cum_distance', 'center_to_pt1', 'center_pt2_efficient', 'heading', 'beta', 'edge_distance', 'position_at_finish']\n    for x in cols_to_rename:\n        sub_cols_to_rename = [k for k in column_list if x in k]\n        for y in sub_cols_to_rename:\n            new_col_name = y.split(sep='.')[0] + '_' + (str(df.iloc[0,df.columns.get_loc(y)])).split(sep='.')[0].strip()\n            df = df.rename(columns={y: new_col_name})\n    df.drop([0,1], axis=0, inplace=True)\n    df.index = pd.RangeIndex(len(df.index))\n    column_list = list(df.columns)\n    #df['race_number'] = df['race_number'].map(lambda x: int(x))\n    for i in range(len(df)):\n        if (type(df['race_number'][i]) is str):\n            df['race_number'][i] = int(df['race_number'][i].split(sep='.')[0])\n            if (not math.isnan(df.race_number[i])): \n                df['race_number'][i] = int(df['race_number'][i])\n    cols_to_int = [k for k in column_list if 'position_at_finish' in k]\n    for col_to_int in cols_to_int:\n        for i in range(len(df)):\n            if (type(df[col_to_int][i]) is str):\n                df[col_to_int][i] = int(df[col_to_int][i].split(sep='.')[0])\n                if (not math.isnan(df[col_to_int][i])): \n                    df[col_to_int][i] = int(df[col_to_int][i])\n        #df[col_to_int] = df[col_to_int].map(lambda x: int(x) if (not math.isnan(x)))\n    return df","metadata":{"execution":{"iopub.status.busy":"2022-11-03T10:10:09.978129Z","iopub.execute_input":"2022-11-03T10:10:09.978578Z","iopub.status.idle":"2022-11-03T10:10:09.996219Z","shell.execute_reply.started":"2022-11-03T10:10:09.978539Z","shell.execute_reply":"2022-11-03T10:10:09.995062Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"dir_list = os.listdir('../input')\ndir_list.remove('big-data-derby-2022')\nfor j in range(len(dir_list)):\n    os.mkdir(os.path.join('./', dir_list[j]))\n    \nparent_folders = ['../input/aqudcomplete/tracking_pvt', '../input/aquocomplete/tracking_pvt', '../input/aqutcomplete/tracking_pvt', '../input/beldcomplete/tracking_pvt',\n    '../input/belicomplete/tracking_pvt', '../input/belmcomplete/tracking_pvt', '../input/beltcomplete/tracking_pvt', '../input/sardcomplete/tracking_pvt',\n    '../input/saricomplete/tracking_pvt', '../input/sarmcomplete/tracking_pvt', '../input/sartcomplete/tracking_pvt']\nfor parent_folder in parent_folders:\n    file_list = os.listdir(parent_folder)\n    for i in range(len(file_list)):\n        source_path = os.path.join(parent_folder, file_list[i])\n        saving_path = source_path.replace(\"../input/\", \"./\")\n        saving_path = saving_path.replace(\"/tracking_pvt/\", \"/\")\n        df = data_organizer (source_path)\n        df.to_csv(saving_path, index=False)        ","metadata":{"execution":{"iopub.status.busy":"2022-11-03T10:10:09.997986Z","iopub.execute_input":"2022-11-03T10:10:09.999445Z","iopub.status.idle":"2022-11-03T10:10:10.023535Z","shell.execute_reply.started":"2022-11-03T10:10:09.999391Z","shell.execute_reply":"2022-11-03T10:10:10.021229Z"},"trusted":true},"execution_count":null,"outputs":[]}]}