{"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 numpy as np\nimport pandas as pd","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","execution":{"iopub.status.busy":"2023-05-08T01:38:34.760936Z","iopub.execute_input":"2023-05-08T01:38:34.761702Z","iopub.status.idle":"2023-05-08T01:38:34.791580Z","shell.execute_reply.started":"2023-05-08T01:38:34.761652Z","shell.execute_reply":"2023-05-08T01:38:34.790502Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"dtypes = {\n    'session_id': np.int64, \n    'elapsed_time': np.int64,\n    'event_name': str,\n    'name': str,\n    'level': np.int8,\n    'page': str,\n    'room_coor_x': np.float32,\n    'room_coor_y': np.float32,\n    'screen_coor_x': np.float32,\n    'screen_coor_y': np.float32,\n    'hover_duration': np.float32,\n    'text': str,\n    'fqid': str,\n    'room_fqid': str,\n    'text_fqid': str,\n    'fullscreen': np.int8,\n    'hq': np.int8,\n    'music': np.int8,\n    'level_group': str\n}","metadata":{"execution":{"iopub.status.busy":"2023-05-08T01:40:05.528998Z","iopub.execute_input":"2023-05-08T01:40:05.529363Z","iopub.status.idle":"2023-05-08T01:40:05.534393Z","shell.execute_reply.started":"2023-05-08T01:40:05.529334Z","shell.execute_reply":"2023-05-08T01:40:05.533673Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"reader = pd.read_csv(\"/kaggle/input/predict-student-performance-from-game-play/train.csv\", dtype=dtypes, chunksize=1e7)\nfor i, df in enumerate(reader):\n    df[\"level_group\"] = df[\"level_group\"].map({\"0-4\": 0, \"5-12\": 1, \"13-22\": 2}).astype(np.int8)\n    df.to_parquet(f\"train_{i}.parquet\")","metadata":{"execution":{"iopub.status.busy":"2023-05-08T01:38:34.800599Z","iopub.execute_input":"2023-05-08T01:38:34.800879Z","iopub.status.idle":"2023-05-08T01:38:47.620812Z","shell.execute_reply.started":"2023-05-08T01:38:34.800855Z","shell.execute_reply":"2023-05-08T01:38:47.619753Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"q_map = {\n    1: 0,\n    2: 0,\n    3: 0,\n    4: 1,\n    5: 1,\n    6: 1,\n    7: 1,\n    8: 1,\n    9: 1,\n    10: 1,\n    11: 1,\n    12: 1,\n    13: 1,\n    14: 2,\n    15: 2,\n    16: 2,\n    17: 2,\n    18: 2,\n}","metadata":{"execution":{"iopub.status.busy":"2023-05-03T16:44:45.432042Z","iopub.execute_input":"2023-05-03T16:44:45.432698Z","iopub.status.idle":"2023-05-03T16:44:45.437671Z","shell.execute_reply.started":"2023-05-03T16:44:45.432661Z","shell.execute_reply":"2023-05-03T16:44:45.436838Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"df_label = pd.read_csv(\"/kaggle/input/predict-student-performance-from-game-play/train_labels.csv\")\ndf_label[\"q\"] = df_label[\"session_id\"].apply(lambda x: int(x.split(\"_\")[1][1:])).astype(np.int8)\ndf_label[\"level_group\"] = df_label[\"q\"].map(q_map).astype(np.int8)\ndf_label[\"session_id\"] = df_label[\"session_id\"].apply(lambda x: x.split(\"_\")[0]).astype(np.int64)\ndf_label = df_label[[\"session_id\", \"level_group\", \"q\", \"correct\"]].sort_values([\"session_id\", \"q\"]).reset_index(drop=True)\ndf_label.to_parquet(\"labels.parquet\")\ndisplay(df_label)","metadata":{"execution":{"iopub.status.busy":"2023-05-03T16:44:45.438943Z","iopub.execute_input":"2023-05-03T16:44:45.439431Z","iopub.status.idle":"2023-05-03T16:44:46.835236Z","shell.execute_reply.started":"2023-05-03T16:44:45.439403Z","shell.execute_reply":"2023-05-03T16:44:46.834167Z"},"trusted":true},"execution_count":null,"outputs":[]}]}