{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.10.12","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"},"kaggle":{"accelerator":"none","dataSources":[{"sourceId":53666,"databundleVersionId":6589269,"sourceType":"competition"}],"dockerImageVersionId":30587,"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":false}},"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)\n\n# Input data files are available in the read-only \"../input/\" directory\n# For example, running this (by clicking run or pressing Shift+Enter) will list all files under the input directory\n\nimport os\nfor dirname, _, filenames in os.walk('/kaggle/input'):\n    for filename in filenames:\n        print(os.path.join(dirname, filename))\n\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":"2023-12-01T06:19:47.774897Z","iopub.execute_input":"2023-12-01T06:19:47.775488Z","iopub.status.idle":"2023-12-01T06:19:48.241366Z","shell.execute_reply.started":"2023-12-01T06:19:47.775440Z","shell.execute_reply":"2023-12-01T06:19:48.239916Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"import warnings \nwarnings.filterwarnings('ignore')\n\nfrom datetime import datetime, timedelta\n\n\nfile_train_series = '/kaggle/input/child-mind-institute-detect-sleep-states/train_series.parquet'\nfile_sample_submission = '/kaggle/input/child-mind-institute-detect-sleep-states/sample_submission.csv'\nfile_train_events = '/kaggle/input/child-mind-institute-detect-sleep-states/train_events.csv'\nfile_test_series = '/kaggle/input/child-mind-institute-detect-sleep-states/test_series.parquet'","metadata":{"execution":{"iopub.status.busy":"2023-12-01T06:19:48.244025Z","iopub.execute_input":"2023-12-01T06:19:48.244521Z","iopub.status.idle":"2023-12-01T06:19:48.252912Z","shell.execute_reply.started":"2023-12-01T06:19:48.244486Z","shell.execute_reply":"2023-12-01T06:19:48.251380Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# df1 = pd.read_parquet(file_train_series)\ndf1 = pd.read_parquet(file_test_series)\nprint(df1.shape)","metadata":{"execution":{"iopub.status.busy":"2023-12-01T06:19:48.254980Z","iopub.execute_input":"2023-12-01T06:19:48.255459Z","iopub.status.idle":"2023-12-01T06:19:48.504425Z","shell.execute_reply.started":"2023-12-01T06:19:48.255418Z","shell.execute_reply":"2023-12-01T06:19:48.503251Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# =============================================================================\n# \n# sort data into separate dataframes according to each id\n# \n# =============================================================================\n\ndf_SortId = df1.series_id.value_counts(ascending=True).to_frame().reset_index()\ndf_SortId.columns = ['series_id', 'counts']\ndf_SortId = df_SortId.sort_values(\"series_id\",ascending=True).reset_index(drop=True)\n# df_SortId.to_csv('Sorted_ID.csv')\nprint(df_SortId.shape)","metadata":{"execution":{"iopub.status.busy":"2023-12-01T06:19:48.505753Z","iopub.execute_input":"2023-12-01T06:19:48.506120Z","iopub.status.idle":"2023-12-01T06:19:48.518889Z","shell.execute_reply.started":"2023-12-01T06:19:48.506090Z","shell.execute_reply":"2023-12-01T06:19:48.517673Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# =============================================================================\n# \n# assign dummy answers according to series_id, sequentially\n# \n# =============================================================================\n\n# good case: series_id = def21f50dd3c \n\nindex = 0\ndf_answer = pd.DataFrame()","metadata":{"execution":{"iopub.status.busy":"2023-12-01T06:19:48.522570Z","iopub.execute_input":"2023-12-01T06:19:48.523696Z","iopub.status.idle":"2023-12-01T06:19:48.531228Z","shell.execute_reply.started":"2023-12-01T06:19:48.523651Z","shell.execute_reply":"2023-12-01T06:19:48.529937Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"for input_number in range (0,len(df_SortId)):\n# for input_number in range (0,3):\n    \n    series_id = str(df_SortId['series_id'].iloc[input_number])\n    \n    df2 = df1[ df1['series_id'] == series_id]\n       \n    df2[['date','time_all']] = df2['timestamp'].str.split('T', expand=True)\n    df2[['time_1','time_2']] = df2['time_all'].str.split('-', expand=True)\n    df2['dt'] = df2['date'] + ' ' + df2['time_1']\n    df2['datetime'] = pd.to_datetime(df2['dt'])\n    \n    df3 = df2[['series_id','step','datetime','date','time_1','anglez','enmo']]\n \n    dates = df3['date'].unique()\n    \n    date_start = df3['date'].iloc[0]\n    date_end =   df3['date'].iloc[-1]\n    \n    print('data =',input_number,', series_id =',series_id, ',', len(dates), 'days')\n\n    for i in range (0,len(dates)):\n        \n        time_tmp = dates[i] + ' 14:00:00'\n        time_start = datetime.strptime(time_tmp, \"%Y-%m-%d %H:%M:%S\")\n        time_end = time_start + timedelta(days=1)\n        print(i)\n        print('from', time_start, 'to', time_end)\n\n        time_tmp = dates[i] + ' 22:30:00'\n        time_sleep = datetime.strptime(time_tmp, \"%Y-%m-%d %H:%M:%S\")   \n        time_wakeup = time_sleep + timedelta(minutes=510)\n        \n        df4 = df3[(df3['datetime'] > time_start) & (df3['datetime'] <= time_end)]\n\n        try:\n            df5 = df4[ df4['datetime'] > time_sleep]\n            step_sleep = df5['step'].iloc[0].astype(int)\n            # print('   series_id =', series_id, ', step =', step_sleep,  ', event = onset, score = 0.7')\n            data_add = [{'row_id': index, 'series_id':series_id, 'step': step_sleep,\\\n                          'event': 'onset', 'score':0.9}]\n            df_add = pd.DataFrame(data_add)  \n            df_answer = pd.concat([df_answer,df_add], axis=0)\n            index = index + 1\n        except:\n            print(' ----- ')\n            \n        try:\n            df5 = df4[ df4['datetime'] > time_wakeup]\n            step_wakeup = df5['step'].iloc[0].astype(int)\n            # print('   series_id =', series_id, ', step =', step_wakeup, ', event = wakeup, score = 0.7 \\n')\n            data_add = [{'row_id': index, 'series_id':series_id, 'step': step_wakeup,\\\n                          'event': 'wakeup', 'score':0.9}]\n            df_add = pd.DataFrame(data_add)  \n            df_answer = pd.concat([df_answer,df_add], axis=0)\n            index = index + 1\n        except:\n            print(' ----- ')","metadata":{"execution":{"iopub.status.busy":"2023-12-01T06:19:48.533244Z","iopub.execute_input":"2023-12-01T06:19:48.533714Z","iopub.status.idle":"2023-12-01T06:19:48.604267Z","shell.execute_reply.started":"2023-12-01T06:19:48.533674Z","shell.execute_reply":"2023-12-01T06:19:48.602957Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"if(len(df_answer) > 0):\n    print(df_answer.shape)\n    print(df_answer.head())\n    print(df_answer.tail())","metadata":{"execution":{"iopub.status.busy":"2023-12-01T06:19:48.605759Z","iopub.execute_input":"2023-12-01T06:19:48.606110Z","iopub.status.idle":"2023-12-01T06:19:48.612339Z","shell.execute_reply.started":"2023-12-01T06:19:48.606080Z","shell.execute_reply":"2023-12-01T06:19:48.611076Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"if(len(df_answer) > 0):\n    df_answer.to_csv('submission.csv', index=False)","metadata":{"execution":{"iopub.status.busy":"2023-12-01T06:19:48.613895Z","iopub.execute_input":"2023-12-01T06:19:48.614201Z","iopub.status.idle":"2023-12-01T06:19:48.623159Z","shell.execute_reply.started":"2023-12-01T06:19:48.614175Z","shell.execute_reply":"2023-12-01T06:19:48.621830Z"},"trusted":true},"execution_count":null,"outputs":[]}]}