{"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"},{"sourceId":7127461,"sourceType":"datasetVersion","datasetId":4111769}],"dockerImageVersionId":30587,"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":false}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"import numpy as np\nimport pandas as pd\nimport torch\n","metadata":{"execution":{"iopub.status.busy":"2023-12-05T08:40:19.455923Z","iopub.execute_input":"2023-12-05T08:40:19.456687Z","iopub.status.idle":"2023-12-05T08:40:24.100143Z","shell.execute_reply.started":"2023-12-05T08:40:19.456651Z","shell.execute_reply":"2023-12-05T08:40:24.098722Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"raw","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"}},{"cell_type":"code","source":"import os\nfor dirname, _, filenames in os.walk('/kaggle/'):\n    for filename in filenames:\n        print(os.path.join(dirname, filename))\n        ","metadata":{"execution":{"iopub.status.busy":"2023-12-05T08:40:24.102749Z","iopub.execute_input":"2023-12-05T08:40:24.103284Z","iopub.status.idle":"2023-12-05T08:40:24.115072Z","shell.execute_reply.started":"2023-12-05T08:40:24.103249Z","shell.execute_reply":"2023-12-05T08:40:24.113756Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#train_event=pd.read_csv('/kaggle/input/child-mind-institute-detect-sleep-states/train_events.csv')\ntrain_series=pd.read_parquet('/kaggle/input/child-mind-institute-detect-sleep-states/train_series.parquet')","metadata":{"execution":{"iopub.status.busy":"2023-12-05T08:40:24.116917Z","iopub.execute_input":"2023-12-05T08:40:24.117258Z","iopub.status.idle":"2023-12-05T08:41:23.035042Z","shell.execute_reply.started":"2023-12-05T08:40:24.117230Z","shell.execute_reply":"2023-12-05T08:41:23.033804Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"trainseries没有缺失数据","metadata":{}},{"cell_type":"code","source":"train_events=pd.read_csv('/kaggle/input/train-events/train_events_clean.csv')\ntrain_events.head()","metadata":{"execution":{"iopub.status.busy":"2023-12-05T08:41:23.039890Z","iopub.execute_input":"2023-12-05T08:41:23.040309Z","iopub.status.idle":"2023-12-05T08:41:23.133830Z","shell.execute_reply.started":"2023-12-05T08:41:23.040277Z","shell.execute_reply":"2023-12-05T08:41:23.131186Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# create a series_id to index dictionary\nunique_ids=train_events['series_id'].unique()","metadata":{"execution":{"iopub.status.busy":"2023-12-05T08:41:23.136744Z","iopub.execute_input":"2023-12-05T08:41:23.137097Z","iopub.status.idle":"2023-12-05T08:41:23.145269Z","shell.execute_reply.started":"2023-12-05T08:41:23.137069Z","shell.execute_reply":"2023-12-05T08:41:23.144086Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train_series['state']=None\nts=train_series.groupby('series_id')\nte=train_events.groupby('series_id')","metadata":{"execution":{"iopub.status.busy":"2023-12-05T08:41:23.146878Z","iopub.execute_input":"2023-12-05T08:41:23.147662Z","iopub.status.idle":"2023-12-05T08:41:24.520012Z","shell.execute_reply.started":"2023-12-05T08:41:23.147608Z","shell.execute_reply":"2023-12-05T08:41:24.518872Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"result_ts=pd.DataFrame(columns=['series_id','step','timestamp','anglez','enmo','state'])\nfrom tqdm import tqdm\nimport time\nfor uid in tqdm(unique_ids):\n    events=te.get_group(uid)\n    series=ts.get_group(uid)\n    for i in range(0,len(events),2):\n        if events.iloc[i]['night'] != events.iloc[i+1]['night']:\n            i=i+1\n        onset_step=events.iloc[i]['step']\n        wakeup_step=events.iloc[i+1]['step']\n        series.loc[(series['step']>=(onset_step-2000))&(series['step']<(onset_step)),'state']=0\n        series.loc[(series['step']<=(wakeup_step+2000))&(series['step']>(wakeup_step)),'state']=0\n        series.loc[((series['step']>=onset_step)&(series['step']<=wakeup_step)),'state']=1\n    series=series.dropna()\n    result_ts=pd.concat([result_ts,series],ignore_index=True)\n        ","metadata":{"execution":{"iopub.status.busy":"2023-12-05T08:44:18.987049Z","iopub.execute_input":"2023-12-05T08:44:18.987546Z","iopub.status.idle":"2023-12-05T08:57:35.354550Z","shell.execute_reply.started":"2023-12-05T08:44:18.987511Z","shell.execute_reply":"2023-12-05T08:57:35.352801Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"result_ts = pd.DataFrame(columns=['series_id', 'step', 'timestamp', 'anglez','enmo','state'])\nfrom tqdm import tqdm\nimport time\n#i=0\ntotal=len(unique_ids)\nfor uid in tqdm(unique_ids):\n    events=te.get_group(uid)\n    series=ts.get_group(uid)\n    for event in events.itertuples():\n        if event.event=='onset':\n            series.loc[series['step']==event.step,'state']=0\n            # awake\n            series.loc[(((event.step-360)<=series['step']) & (series['step']<(event.step))),'state']=3\n            # asleep\n            series.loc[(((event.step+360)>=series['step']) & (series['step']>(event.step))),'state']=1\n        elif event.event=='wakeup':\n            series.loc[series['step']==event.step,'state']=2\n            # asleep\n            series.loc[(((event.step-360)<=series['step']) & (series['step']<(event.step))),'state']=1\n            # awake\n            series.loc[(((event.step+360)>=series['step']) & (series['step']>(event.step))),'state']=3\n    result_ts=pd.concat([result_ts,series],ignore_index=True)","metadata":{}},{"cell_type":"code","source":"train_series=result_ts\ntrain_series.dropna(inplace=True)\n#train_series['anglez']=(train_series['anglez']-train_series['anglez'].min())/(train_series['anglez'].max()-train_series['anglez'].min())\ntrain_series=train_series.reset_index(drop=True)","metadata":{"execution":{"iopub.status.busy":"2023-12-05T08:57:35.357540Z","iopub.execute_input":"2023-12-05T08:57:35.357985Z","iopub.status.idle":"2023-12-05T08:58:13.067413Z","shell.execute_reply.started":"2023-12-05T08:57:35.357953Z","shell.execute_reply":"2023-12-05T08:58:13.066491Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train_series.to_parquet('/kaggle/working/train_series_part.parquet')","metadata":{"execution":{"iopub.status.busy":"2023-12-05T08:58:13.069026Z","iopub.execute_input":"2023-12-05T08:58:13.069760Z","iopub.status.idle":"2023-12-05T08:58:50.149787Z","shell.execute_reply.started":"2023-12-05T08:58:13.069718Z","shell.execute_reply":"2023-12-05T08:58:50.148336Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{"execution":{"iopub.status.busy":"2023-12-05T09:03:15.093387Z","iopub.execute_input":"2023-12-05T09:03:15.093906Z","iopub.status.idle":"2023-12-05T09:03:16.953542Z","shell.execute_reply.started":"2023-12-05T09:03:15.093872Z","shell.execute_reply":"2023-12-05T09:03:16.951873Z"},"trusted":true},"execution_count":null,"outputs":[]}]}