{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.10.14","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"},"kaggle":{"accelerator":"none","dataSources":[{"sourceId":81933,"databundleVersionId":9643020,"sourceType":"competition"}],"dockerImageVersionId":30786,"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 matplotlib.pyplot as plt\nimport os","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","execution":{"iopub.status.busy":"2024-11-03T13:37:23.902440Z","iopub.execute_input":"2024-11-03T13:37:23.902821Z","iopub.status.idle":"2024-11-03T13:37:23.908657Z","shell.execute_reply.started":"2024-11-03T13:37:23.902787Z","shell.execute_reply":"2024-11-03T13:37:23.907357Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"input_directory = \"/kaggle/input/child-mind-institute-problematic-internet-use/series_train.parquet\"\ndatasets = os.listdir(input_directory)","metadata":{"execution":{"iopub.status.busy":"2024-11-03T13:37:23.910762Z","iopub.execute_input":"2024-11-03T13:37:23.911430Z","iopub.status.idle":"2024-11-03T13:37:23.922472Z","shell.execute_reply.started":"2024-11-03T13:37:23.911377Z","shell.execute_reply":"2024-11-03T13:37:23.921279Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"datasets = [i.split('=')[1] for i in datasets]\nid_ts = pd.DataFrame({\n    'id':datasets\n})","metadata":{"execution":{"iopub.status.busy":"2024-11-03T13:37:23.924818Z","iopub.execute_input":"2024-11-03T13:37:23.925214Z","iopub.status.idle":"2024-11-03T13:37:23.932660Z","shell.execute_reply.started":"2024-11-03T13:37:23.925176Z","shell.execute_reply":"2024-11-03T13:37:23.931448Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"score = pd.read_csv('/kaggle/input/child-mind-institute-problematic-internet-use/train.csv')","metadata":{"execution":{"iopub.status.busy":"2024-11-03T13:37:23.934954Z","iopub.execute_input":"2024-11-03T13:37:23.935338Z","iopub.status.idle":"2024-11-03T13:37:23.990467Z","shell.execute_reply.started":"2024-11-03T13:37:23.935300Z","shell.execute_reply":"2024-11-03T13:37:23.989231Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"id_ts = pd.merge(id_ts, score[['id', 'sii']], on='id', how='left')","metadata":{"execution":{"iopub.status.busy":"2024-11-03T13:37:23.992044Z","iopub.execute_input":"2024-11-03T13:37:23.992518Z","iopub.status.idle":"2024-11-03T13:37:24.005315Z","shell.execute_reply.started":"2024-11-03T13:37:23.992468Z","shell.execute_reply":"2024-11-03T13:37:24.004022Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"def process_file(filename, dirname):\n    df = pd.read_parquet(os.path.join(dirname, filename, 'part-0.parquet'))\n    id = filename.split('=')[1]\n    PCIAT_Total = score[score['id']==id]['PCIAT-PCIAT_Total'].values[0]\n    sii = score[score['id']==id]['sii'].values[0]\n    return df, PCIAT_Total, sii\n\ndef load_time_series(dirname) -> pd.DataFrame:\n    ids = os.listdir(dirname)\n    \n    with ThreadPoolExecutor() as executor:\n        results = list(tqdm(executor.map(lambda fname: process_file(fname, dirname), ids), total=len(ids)))\n    \n    stats, indexes = zip(*results)\n    \n    df = pd.DataFrame(stats, columns=[f\"stat_{i}\" for i in range(len(stats[0]))])\n    df['id'] = indexes\n    return df","metadata":{"execution":{"iopub.status.busy":"2024-11-03T13:37:24.006690Z","iopub.execute_input":"2024-11-03T13:37:24.007114Z","iopub.status.idle":"2024-11-03T13:37:24.016508Z","shell.execute_reply.started":"2024-11-03T13:37:24.007074Z","shell.execute_reply":"2024-11-03T13:37:24.015224Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"def plot_series_data(df, col='non-wear_flag',\n                     label='Worn (0 = Worn, 1 = Not Worn)',\n                     title='Non-Wear Flag',\n                     x_col='day_time', x_label='Day Relative to PCIAT + Time'):\n    plt.figure(figsize=(18, 12))\n    \n    # ENMO\n    plt.subplot(5, 1, 1)\n    plt.scatter(df[x_col], df['enmo'], label='ENMO', color='green', s=1)\n    plt.title('ENMO (Euclidean Norm Minus One)')\n    plt.ylabel('Movement Intensity')\n\n    # Angle Z\n    plt.subplot(5, 1, 2)\n    plt.scatter(df[x_col], df['anglez'], label='Angle Z', color='blue', s=1)\n    plt.title('Angle Z')\n    plt.ylabel('Angle (degrees)')\n\n    # Light\n    plt.subplot(5, 1, 3)\n    plt.scatter(df[x_col], df['light'], label='Light', color='orange', s=1)\n    plt.title('Ambient Light')\n    plt.ylabel('Light (lux)')\n    \n    # Hour of Day\n    plt.subplot(5, 1, 4)\n    plt.scatter(df[x_col], df['hour_of_day'], label='hour_of_day', color='black', s=1)\n    plt.title('Hour of Day')\n    plt.ylabel('Hours')\n\n    # Any other column\n    plt.subplot(5, 1, 5)\n    plt.scatter(df[x_col], df[col], label=col, color='red', s=1)\n    plt.title(f'{title}')\n    plt.ylabel(f'{label}')\n    plt.xlabel(f'{x_label}')\n\n    plt.tight_layout()\n    plt.show()","metadata":{"execution":{"iopub.status.busy":"2024-11-03T13:37:24.017912Z","iopub.execute_input":"2024-11-03T13:37:24.018314Z","iopub.status.idle":"2024-11-03T13:37:24.033776Z","shell.execute_reply.started":"2024-11-03T13:37:24.018276Z","shell.execute_reply":"2024-11-03T13:37:24.032528Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"id_ts[id_ts['sii']==2]","metadata":{"execution":{"iopub.status.busy":"2024-11-03T13:37:24.035225Z","iopub.execute_input":"2024-11-03T13:37:24.035598Z","iopub.status.idle":"2024-11-03T13:37:24.053098Z","shell.execute_reply.started":"2024-11-03T13:37:24.035559Z","shell.execute_reply":"2024-11-03T13:37:24.051693Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"ts_001f3379, PCIAT_Total, sii = process_file('id=7800a084','/kaggle/input/child-mind-institute-problematic-internet-use/series_train.parquet/')\nts_001f3379['hour_of_day'] = ts_001f3379['time_of_day'] // (60 * 60 * 10**9)\nprint('sii: ', sii)\nprint('PCIAT_Total: ', PCIAT_Total)\nplot_series_data(ts_001f3379, x_col='step', x_label='Step')","metadata":{"execution":{"iopub.status.busy":"2024-11-03T13:37:24.054714Z","iopub.execute_input":"2024-11-03T13:37:24.055149Z","iopub.status.idle":"2024-11-03T13:37:26.618236Z","shell.execute_reply.started":"2024-11-03T13:37:24.055111Z","shell.execute_reply":"2024-11-03T13:37:26.617168Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"ts_001f3379['abs_x'] = abs(ts_001f3379['X'])\nts_001f3379['abs_y'] = abs(ts_001f3379['Y'])\nts_001f3379['abs_z'] = abs(ts_001f3379['Z'])\n\nts_001f3379['XY'] = (ts_001f3379['X'])**2 + (ts_001f3379['Y'])**2\nts_001f3379['ZY'] = (ts_001f3379['Z'])**2 + (ts_001f3379['Y'])**2\nts_001f3379['ZX'] = (ts_001f3379['Z'])**2 + (ts_001f3379['X'])**2\nts_001f3379['XYZ'] = (ts_001f3379['X'])**2 + (ts_001f3379['Y'])**2 + (ts_001f3379['Z'])**2\n\nts_001f3379['cos_angle'] = np.cos(ts_001f3379['anglez'] * np.pi / 180)\n\nts_001f3379['pos_x'] = np.where(ts_001f3379['X'] <= 0, 0, ts_001f3379['X'])\nts_001f3379['pos_y'] = np.where(ts_001f3379['Y'] <= 0, 0, ts_001f3379['Y'])\nts_001f3379['pos_z'] = np.where(ts_001f3379['Z'] <= 0, 0, ts_001f3379['Z'])\n\nts_001f3379['neg_x'] = np.where(ts_001f3379['X'] >= 0, 0, ts_001f3379['X'])\nts_001f3379['neg_y'] = np.where(ts_001f3379['Y'] >= 0, 0, ts_001f3379['Y'])\nts_001f3379['neg_z'] = np.where(ts_001f3379['Z'] >= 0, 0, ts_001f3379['Z'])\n\n\n\n\naverage_enmo_by_hour = ts_001f3379.groupby('hour_of_day')[['enmo','Z','ZY','XYZ','abs_x', \n                                                           'abs_z', 'cos_angle', 'pos_x',\n                                                           'neg_x', 'neg_y','neg_z']].mean().reset_index().T\naverage_enmo_by_hour = average_enmo_by_hour.drop('hour_of_day', axis=0)","metadata":{"execution":{"iopub.status.busy":"2024-11-03T13:37:26.621331Z","iopub.execute_input":"2024-11-03T13:37:26.621680Z","iopub.status.idle":"2024-11-03T13:37:26.715658Z","shell.execute_reply.started":"2024-11-03T13:37:26.621645Z","shell.execute_reply":"2024-11-03T13:37:26.714513Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"average_enmo_by_hour","metadata":{"execution":{"iopub.status.busy":"2024-11-03T13:37:26.717069Z","iopub.execute_input":"2024-11-03T13:37:26.717511Z","iopub.status.idle":"2024-11-03T13:37:26.747557Z","shell.execute_reply.started":"2024-11-03T13:37:26.717473Z","shell.execute_reply":"2024-11-03T13:37:26.746138Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"average_enmo_by_hour.values.reshape(-1)","metadata":{"execution":{"iopub.status.busy":"2024-11-03T13:37:26.749015Z","iopub.execute_input":"2024-11-03T13:37:26.749372Z","iopub.status.idle":"2024-11-03T13:37:26.759440Z","shell.execute_reply.started":"2024-11-03T13:37:26.749337Z","shell.execute_reply":"2024-11-03T13:37:26.758334Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"import seaborn as sns\n\naverage_enmo_by_hour_df = []\n\nfor id in id_ts.id:\n    file_name = f'id={id}'\n    \n    ts_001f3379, PCIAT_Total, sii = process_file(file_name, '/kaggle/input/child-mind-institute-problematic-internet-use/series_train.parquet/')\n    ts_001f3379['hour_of_day'] = ts_001f3379['time_of_day'] // (60 * 60 * 10**9)\n    \n    average_enmo_by_hour = ts_001f3379.groupby('hour_of_day')['enmo'].mean().reset_index().T\n    average_enmo_by_hour = average_enmo_by_hour.drop('hour_of_day', axis=0)\n    \n    average_enmo_by_hour['id'] = id\n    average_enmo_by_hour['sii'] = sii\n    \n    average_enmo_by_hour_df.append(average_enmo_by_hour.T)\n\naverage_enmo_by_hour_df = pd.concat(average_enmo_by_hour_df, axis=1).T.reset_index(drop=True)\n\ndf_melted = average_enmo_by_hour_df.melt(id_vars=['id', 'sii'], \n                                         value_vars=[i for i in range(24)], \n                                         var_name='hour_of_day', \n                                         value_name='enmo')\n\n# Convert 'hour_of_day' back to integer type for proper plotting\ndf_melted['hour_of_day'] = df_melted['hour_of_day'].astype(int)\ndf_melted['enmo'] = pd.to_numeric(df_melted['enmo'], errors='coerce')\ndf_melted['sii'] = pd.to_numeric(df_melted['sii'], errors='coerce')\ndf_melted.dropna(subset=['enmo', 'sii'], inplace=True)\n\nplt.figure(figsize=(20, 8))\nsns.violinplot(x='hour_of_day', y='enmo', hue='sii', data=df_melted, palette='coolwarm')\nplt.xlabel('Hour of Day', fontsize=12)\nplt.ylabel('Average ENMO', fontsize=12)\nplt.title('Distribution of Average ENMO by Hour of Day, Colored by SII', fontsize=14)\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2024-11-03T13:37:26.761108Z","iopub.execute_input":"2024-11-03T13:37:26.761636Z","iopub.status.idle":"2024-11-03T13:38:44.993119Z","shell.execute_reply.started":"2024-11-03T13:37:26.761582Z","shell.execute_reply":"2024-11-03T13:38:44.992019Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"average_anglez_by_hour_df = []\n\nfor id in id_ts.id:\n    file_name = f'id={id}'\n    \n    ts_001f3379, PCIAT_Total, sii = process_file(file_name, '/kaggle/input/child-mind-institute-problematic-internet-use/series_train.parquet/')\n    ts_001f3379['hour_of_day'] = ts_001f3379['time_of_day'] // (60 * 60 * 10**9)\n    \n    average_enmo_by_hour = ts_001f3379.groupby('hour_of_day')['anglez'].mean().reset_index().T\n    average_enmo_by_hour = average_enmo_by_hour.drop('hour_of_day', axis=0)\n    \n    average_enmo_by_hour['id'] = id\n    average_enmo_by_hour['sii'] = sii\n    \n    average_anglez_by_hour_df.append(average_enmo_by_hour.T)\n\naverage_anglez_by_hour_df = pd.concat(average_anglez_by_hour_df, axis=1).T.reset_index(drop=True)\n\ndf_melted = average_anglez_by_hour_df.melt(id_vars=['id', 'sii'], \n                                         value_vars=[i for i in range(24)], \n                                         var_name='hour_of_day', \n                                         value_name='enmo')\n\n# Convert 'hour_of_day' back to integer type for proper plotting\ndf_melted['hour_of_day'] = df_melted['hour_of_day'].astype(int)\ndf_melted['enmo'] = pd.to_numeric(df_melted['enmo'], errors='coerce')\ndf_melted['sii'] = pd.to_numeric(df_melted['sii'], errors='coerce')\ndf_melted.dropna(subset=['enmo', 'sii'], inplace=True)\n\nplt.figure(figsize=(20, 8))\nsns.violinplot(x='hour_of_day', y='enmo', hue='sii', data=df_melted, palette='coolwarm')\nplt.xlabel('Hour of Day', fontsize=12)\nplt.ylabel('Average Angle', fontsize=12)\nplt.title('Distribution of Average Angle by Hour of Day, Colored by SII', fontsize=14)\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2024-11-03T13:38:44.994778Z","iopub.execute_input":"2024-11-03T13:38:44.995449Z","iopub.status.idle":"2024-11-03T13:39:24.398671Z","shell.execute_reply.started":"2024-11-03T13:38:44.995395Z","shell.execute_reply":"2024-11-03T13:39:24.397384Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"average_anglez_by_hour_df = []\n\nfor id in id_ts.id:\n    file_name = f'id={id}'\n    \n    ts_001f3379, PCIAT_Total, sii = process_file(file_name, '/kaggle/input/child-mind-institute-problematic-internet-use/series_train.parquet/')\n    ts_001f3379['hour_of_day'] = ts_001f3379['time_of_day'] // (60 * 60 * 10**9)\n    ts_001f3379['cos_anglez'] = np.cos(ts_001f3379['anglez'] * np.pi / 180)\n    \n    average_enmo_by_hour = ts_001f3379.groupby('hour_of_day')['cos_anglez'].mean().reset_index().T\n    average_enmo_by_hour = average_enmo_by_hour.drop('hour_of_day', axis=0)\n    \n    average_enmo_by_hour['id'] = id\n    average_enmo_by_hour['sii'] = sii\n    \n    average_anglez_by_hour_df.append(average_enmo_by_hour.T)\n\naverage_anglez_by_hour_df = pd.concat(average_anglez_by_hour_df, axis=1).T.reset_index(drop=True)\n\ndf_melted = average_anglez_by_hour_df.melt(id_vars=['id', 'sii'], \n                                         value_vars=[i for i in range(24)], \n                                         var_name='hour_of_day', \n                                         value_name='enmo')\n\n# Convert 'hour_of_day' back to integer type for proper plotting\ndf_melted['hour_of_day'] = df_melted['hour_of_day'].astype(int)\ndf_melted['enmo'] = pd.to_numeric(df_melted['enmo'], errors='coerce')\ndf_melted['sii'] = pd.to_numeric(df_melted['sii'], errors='coerce')\ndf_melted.dropna(subset=['enmo', 'sii'], inplace=True)\n\nplt.figure(figsize=(20, 8))\nsns.violinplot(x='hour_of_day', y='enmo', hue='sii', data=df_melted, palette='coolwarm')\nplt.xlabel('Hour of Day', fontsize=12)\nplt.ylabel('Average Angle', fontsize=12)\nplt.title('Distribution of Average Angle by Hour of Day, Colored by SII', fontsize=14)\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2024-11-03T13:39:24.400470Z","iopub.execute_input":"2024-11-03T13:39:24.400868Z","iopub.status.idle":"2024-11-03T13:40:04.815142Z","shell.execute_reply.started":"2024-11-03T13:39:24.400826Z","shell.execute_reply":"2024-11-03T13:40:04.813683Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"average_x_by_hour_df = []\n\nfor id in id_ts.id:\n    file_name = f'id={id}'\n    \n    ts_001f3379, PCIAT_Total, sii = process_file(file_name, '/kaggle/input/child-mind-institute-problematic-internet-use/series_train.parquet/')\n    ts_001f3379['hour_of_day'] = ts_001f3379['time_of_day'] // (60 * 60 * 10**9)\n    \n    average_enmo_by_hour = ts_001f3379.groupby('hour_of_day')['X'].mean().reset_index().T\n    average_enmo_by_hour = average_enmo_by_hour.drop('hour_of_day', axis=0)\n    \n    average_enmo_by_hour['id'] = id\n    average_enmo_by_hour['sii'] = sii\n    \n    average_x_by_hour_df.append(average_enmo_by_hour.T)\n\naverage_x_by_hour_df = pd.concat(average_x_by_hour_df, axis=1).T.reset_index(drop=True)\n\ndf_melted = average_x_by_hour_df.melt(id_vars=['id', 'sii'], \n                                         value_vars=[i for i in range(24)], \n                                         var_name='hour_of_day', \n                                         value_name='enmo')\n\n# Convert 'hour_of_day' back to integer type for proper plotting\ndf_melted['hour_of_day'] = df_melted['hour_of_day'].astype(int)\ndf_melted['enmo'] = pd.to_numeric(df_melted['enmo'], errors='coerce')\ndf_melted['sii'] = pd.to_numeric(df_melted['sii'], errors='coerce')\ndf_melted.dropna(subset=['enmo', 'sii'], inplace=True)\n\nplt.figure(figsize=(20, 8))\nsns.violinplot(x='hour_of_day', y='enmo', hue='sii', data=df_melted, palette='coolwarm')\nplt.xlabel('Hour of Day', fontsize=12)\nplt.ylabel('Average X', fontsize=12)\nplt.title('Distribution of Average X by Hour of Day, Colored by SII', fontsize=14)\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2024-11-03T13:40:04.817039Z","iopub.execute_input":"2024-11-03T13:40:04.817558Z","iopub.status.idle":"2024-11-03T13:40:42.555787Z","shell.execute_reply.started":"2024-11-03T13:40:04.817505Z","shell.execute_reply":"2024-11-03T13:40:42.554630Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"average_x_by_hour_df = []\n\nfor id in id_ts.id:\n    file_name = f'id={id}'\n    \n    ts_001f3379, PCIAT_Total, sii = process_file(file_name, '/kaggle/input/child-mind-institute-problematic-internet-use/series_train.parquet/')\n    ts_001f3379['hour_of_day'] = ts_001f3379['time_of_day'] // (60 * 60 * 10**9)\n    ts_001f3379['X'] = abs(ts_001f3379['X'])\n    \n    average_enmo_by_hour = ts_001f3379.groupby('hour_of_day')['X'].mean().reset_index().T\n    average_enmo_by_hour = average_enmo_by_hour.drop('hour_of_day', axis=0)\n    \n    average_enmo_by_hour['id'] = id\n    average_enmo_by_hour['sii'] = sii\n    \n    average_x_by_hour_df.append(average_enmo_by_hour.T)\n\naverage_x_by_hour_df = pd.concat(average_x_by_hour_df, axis=1).T.reset_index(drop=True)\n\ndf_melted = average_x_by_hour_df.melt(id_vars=['id', 'sii'], \n                                         value_vars=[i for i in range(24)], \n                                         var_name='hour_of_day', \n                                         value_name='enmo')\n\n# Convert 'hour_of_day' back to integer type for proper plotting\ndf_melted['hour_of_day'] = df_melted['hour_of_day'].astype(int)\ndf_melted['enmo'] = pd.to_numeric(df_melted['enmo'], errors='coerce')\ndf_melted['sii'] = pd.to_numeric(df_melted['sii'], errors='coerce')\ndf_melted.dropna(subset=['enmo', 'sii'], inplace=True)\n\nplt.figure(figsize=(20, 8))\nsns.violinplot(x='hour_of_day', y='enmo', hue='sii', data=df_melted, palette='coolwarm')\nplt.xlabel('Hour of Day', fontsize=12)\nplt.ylabel('Average X', fontsize=12)\nplt.title('Distribution of Average X by Hour of Day, Colored by SII', fontsize=14)\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2024-11-03T13:40:42.557150Z","iopub.execute_input":"2024-11-03T13:40:42.557495Z","iopub.status.idle":"2024-11-03T13:41:21.141516Z","shell.execute_reply.started":"2024-11-03T13:40:42.557459Z","shell.execute_reply":"2024-11-03T13:41:21.140196Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"average_y_by_hour_df = []\n\nfor id in id_ts.id:\n    file_name = f'id={id}'\n    \n    ts_001f3379, PCIAT_Total, sii = process_file(file_name, '/kaggle/input/child-mind-institute-problematic-internet-use/series_train.parquet/')\n    ts_001f3379['hour_of_day'] = ts_001f3379['time_of_day'] // (60 * 60 * 10**9)\n    \n    average_enmo_by_hour = ts_001f3379.groupby('hour_of_day')['Y'].mean().reset_index().T\n    average_enmo_by_hour = average_enmo_by_hour.drop('hour_of_day', axis=0)\n    \n    average_enmo_by_hour['id'] = id\n    average_enmo_by_hour['sii'] = sii\n    \n    average_y_by_hour_df.append(average_enmo_by_hour.T)\n\naverage_y_by_hour_df = pd.concat(average_y_by_hour_df, axis=1).T.reset_index(drop=True)\n\ndf_melted = average_y_by_hour_df.melt(id_vars=['id', 'sii'], \n                                         value_vars=[i for i in range(24)], \n                                         var_name='hour_of_day', \n                                         value_name='enmo')\n\n# Convert 'hour_of_day' back to integer type for proper plotting\ndf_melted['hour_of_day'] = df_melted['hour_of_day'].astype(int)\ndf_melted['enmo'] = pd.to_numeric(df_melted['enmo'], errors='coerce')\ndf_melted['sii'] = pd.to_numeric(df_melted['sii'], errors='coerce')\ndf_melted.dropna(subset=['enmo', 'sii'], inplace=True)\n\nplt.figure(figsize=(20, 8))\nsns.violinplot(x='hour_of_day', y='enmo', hue='sii', data=df_melted, palette='coolwarm')\nplt.xlabel('Hour of Day', fontsize=12)\nplt.ylabel('Average X', fontsize=12)\nplt.title('Distribution of Average Y by Hour of Day, Colored by SII', fontsize=14)\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2024-11-03T13:41:21.143051Z","iopub.execute_input":"2024-11-03T13:41:21.143432Z","iopub.status.idle":"2024-11-03T13:41:58.514340Z","shell.execute_reply.started":"2024-11-03T13:41:21.143393Z","shell.execute_reply":"2024-11-03T13:41:58.513000Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"average_y_by_hour_df = []\n\nfor id in id_ts.id:\n    file_name = f'id={id}'\n    \n    ts_001f3379, PCIAT_Total, sii = process_file(file_name, '/kaggle/input/child-mind-institute-problematic-internet-use/series_train.parquet/')\n    ts_001f3379['hour_of_day'] = ts_001f3379['time_of_day'] // (60 * 60 * 10**9)\n    ts_001f3379['Y'] = abs(ts_001f3379['Y'])\n    \n    average_enmo_by_hour = ts_001f3379.groupby('hour_of_day')['Y'].mean().reset_index().T\n    average_enmo_by_hour = average_enmo_by_hour.drop('hour_of_day', axis=0)\n    \n    average_enmo_by_hour['id'] = id\n    average_enmo_by_hour['sii'] = sii\n    \n    average_y_by_hour_df.append(average_enmo_by_hour.T)\n\naverage_y_by_hour_df = pd.concat(average_y_by_hour_df, axis=1).T.reset_index(drop=True)\n\ndf_melted = average_y_by_hour_df.melt(id_vars=['id', 'sii'], \n                                         value_vars=[i for i in range(24)], \n                                         var_name='hour_of_day', \n                                         value_name='enmo')\n\n# Convert 'hour_of_day' back to integer type for proper plotting\ndf_melted['hour_of_day'] = df_melted['hour_of_day'].astype(int)\ndf_melted['enmo'] = pd.to_numeric(df_melted['enmo'], errors='coerce')\ndf_melted['sii'] = pd.to_numeric(df_melted['sii'], errors='coerce')\ndf_melted.dropna(subset=['enmo', 'sii'], inplace=True)\n\nplt.figure(figsize=(20, 8))\nsns.violinplot(x='hour_of_day', y='enmo', hue='sii', data=df_melted, palette='coolwarm')\nplt.xlabel('Hour of Day', fontsize=12)\nplt.ylabel('Average X', fontsize=12)\nplt.title('Distribution of Average Y by Hour of Day, Colored by SII', fontsize=14)\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2024-11-03T13:41:58.515870Z","iopub.execute_input":"2024-11-03T13:41:58.516328Z","iopub.status.idle":"2024-11-03T13:42:36.522305Z","shell.execute_reply.started":"2024-11-03T13:41:58.516279Z","shell.execute_reply":"2024-11-03T13:42:36.521023Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"average_z_by_hour_df = []\n\nfor id in id_ts.id:\n    file_name = f'id={id}'\n    \n    ts_001f3379, PCIAT_Total, sii = process_file(file_name, '/kaggle/input/child-mind-institute-problematic-internet-use/series_train.parquet/')\n    ts_001f3379['hour_of_day'] = ts_001f3379['time_of_day'] // (60 * 60 * 10**9)\n    \n    average_enmo_by_hour = ts_001f3379.groupby('hour_of_day')['Z'].mean().reset_index().T\n    average_enmo_by_hour = average_enmo_by_hour.drop('hour_of_day', axis=0)\n    \n    average_enmo_by_hour['id'] = id\n    average_enmo_by_hour['sii'] = sii\n    \n    average_z_by_hour_df.append(average_enmo_by_hour.T)\n\naverage_z_by_hour_df = pd.concat(average_z_by_hour_df, axis=1).T.reset_index(drop=True)\n\ndf_melted = average_z_by_hour_df.melt(id_vars=['id', 'sii'], \n                                         value_vars=[i for i in range(24)], \n                                         var_name='hour_of_day', \n                                         value_name='enmo')\n\n# Convert 'hour_of_day' back to integer type for proper plotting\ndf_melted['hour_of_day'] = df_melted['hour_of_day'].astype(int)\ndf_melted['enmo'] = pd.to_numeric(df_melted['enmo'], errors='coerce')\ndf_melted['sii'] = pd.to_numeric(df_melted['sii'], errors='coerce')\ndf_melted.dropna(subset=['enmo', 'sii'], inplace=True)\n\nplt.figure(figsize=(20, 8))\nsns.violinplot(x='hour_of_day', y='enmo', hue='sii', data=df_melted, palette='coolwarm')\nplt.xlabel('Hour of Day', fontsize=12)\nplt.ylabel('Average Z', fontsize=12)\nplt.title('Distribution of Average Z by Hour of Day, Colored by SII', fontsize=14)\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2024-11-03T13:42:36.523834Z","iopub.execute_input":"2024-11-03T13:42:36.524319Z","iopub.status.idle":"2024-11-03T13:43:13.678999Z","shell.execute_reply.started":"2024-11-03T13:42:36.524266Z","shell.execute_reply":"2024-11-03T13:43:13.677833Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"average_z_by_hour_df = []\n\nfor id in id_ts.id:\n    file_name = f'id={id}'\n    \n    ts_001f3379, PCIAT_Total, sii = process_file(file_name, '/kaggle/input/child-mind-institute-problematic-internet-use/series_train.parquet/')\n    ts_001f3379['hour_of_day'] = ts_001f3379['time_of_day'] // (60 * 60 * 10**9)\n    ts_001f3379['Z'] = abs(ts_001f3379['Z'])\n    \n    average_enmo_by_hour = ts_001f3379.groupby('hour_of_day')['Z'].mean().reset_index().T\n    average_enmo_by_hour = average_enmo_by_hour.drop('hour_of_day', axis=0)\n    \n    average_enmo_by_hour['id'] = id\n    average_enmo_by_hour['sii'] = sii\n    \n    average_z_by_hour_df.append(average_enmo_by_hour.T)\n\naverage_z_by_hour_df = pd.concat(average_z_by_hour_df, axis=1).T.reset_index(drop=True)\n\ndf_melted = average_z_by_hour_df.melt(id_vars=['id', 'sii'], \n                                         value_vars=[i for i in range(24)], \n                                         var_name='hour_of_day', \n                                         value_name='enmo')\n\n# Convert 'hour_of_day' back to integer type for proper plotting\ndf_melted['hour_of_day'] = df_melted['hour_of_day'].astype(int)\ndf_melted['enmo'] = pd.to_numeric(df_melted['enmo'], errors='coerce')\ndf_melted['sii'] = pd.to_numeric(df_melted['sii'], errors='coerce')\ndf_melted.dropna(subset=['enmo', 'sii'], inplace=True)\n\nplt.figure(figsize=(20, 8))\nsns.violinplot(x='hour_of_day', y='enmo', hue='sii', data=df_melted, palette='coolwarm')\nplt.xlabel('Hour of Day', fontsize=12)\nplt.ylabel('Average Z', fontsize=12)\nplt.title('Distribution of Average Z by Hour of Day, Colored by SII', fontsize=14)\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2024-11-03T13:43:13.680488Z","iopub.execute_input":"2024-11-03T13:43:13.680849Z","iopub.status.idle":"2024-11-03T13:44:07.059420Z","shell.execute_reply.started":"2024-11-03T13:43:13.680812Z","shell.execute_reply":"2024-11-03T13:44:07.058025Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"average_del_X_by_hour_df = []\n\nfor id in id_ts.id:\n    file_name = f'id={id}'\n    \n    ts_001f3379, PCIAT_Total, sii = process_file(file_name, '/kaggle/input/child-mind-institute-problematic-internet-use/series_train.parquet/')\n    ts_001f3379['hour_of_day'] = ts_001f3379['time_of_day'] // (60 * 60 * 10**9)\n    ts_001f3379['del_X'] =  ts_001f3379['Y']**2 + ts_001f3379['Z']**2\n    \n    \n    average_enmo_by_hour = ts_001f3379.groupby('hour_of_day')['del_X'].mean().reset_index().T\n    average_enmo_by_hour = average_enmo_by_hour.drop('hour_of_day', axis=0)\n    \n    average_enmo_by_hour['id'] = id\n    average_enmo_by_hour['sii'] = sii\n    \n    average_del_X_by_hour_df.append(average_enmo_by_hour.T)\n\naverage_del_X_by_hour_df = pd.concat(average_del_X_by_hour_df, axis=1).T.reset_index(drop=True)\n\ndf_melted = average_del_X_by_hour_df.melt(id_vars=['id', 'sii'], \n                                         value_vars=[i for i in range(24)], \n                                         var_name='hour_of_day', \n                                         value_name='enmo')\n\n# Convert 'hour_of_day' back to integer type for proper plotting\ndf_melted['hour_of_day'] = df_melted['hour_of_day'].astype(int)\ndf_melted['enmo'] = pd.to_numeric(df_melted['enmo'], errors='coerce')\ndf_melted['sii'] = pd.to_numeric(df_melted['sii'], errors='coerce')\ndf_melted.dropna(subset=['enmo', 'sii'], inplace=True)\n\nplt.figure(figsize=(20, 8))\nsns.violinplot(x='hour_of_day', y='enmo', hue='sii', data=df_melted, palette='coolwarm')\nplt.xlabel('Hour of Day', fontsize=12)\nplt.ylabel('Average del_X', fontsize=12)\nplt.title('Distribution of Average del_X by Hour of Day, Colored by SII', fontsize=14)\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2024-11-03T13:44:07.065854Z","iopub.execute_input":"2024-11-03T13:44:07.066931Z","iopub.status.idle":"2024-11-03T13:45:08.638099Z","shell.execute_reply.started":"2024-11-03T13:44:07.066873Z","shell.execute_reply":"2024-11-03T13:45:08.636772Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"average_del_X_by_hour_df = []\n\nfor id in id_ts.id:\n    file_name = f'id={id}'\n    \n    ts_001f3379, PCIAT_Total, sii = process_file(file_name, '/kaggle/input/child-mind-institute-problematic-internet-use/series_train.parquet/')\n    ts_001f3379['hour_of_day'] = ts_001f3379['time_of_day'] // (60 * 60 * 10**9)\n    ts_001f3379['del_X'] =  ts_001f3379['X']**2 + ts_001f3379['Z']**2\n    \n    \n    average_enmo_by_hour = ts_001f3379.groupby('hour_of_day')['del_X'].mean().reset_index().T\n    average_enmo_by_hour = average_enmo_by_hour.drop('hour_of_day', axis=0)\n    \n    average_enmo_by_hour['id'] = id\n    average_enmo_by_hour['sii'] = sii\n    \n    average_del_X_by_hour_df.append(average_enmo_by_hour.T)\n\naverage_del_X_by_hour_df = pd.concat(average_del_X_by_hour_df, axis=1).T.reset_index(drop=True)\n\ndf_melted = average_del_X_by_hour_df.melt(id_vars=['id', 'sii'], \n                                         value_vars=[i for i in range(24)], \n                                         var_name='hour_of_day', \n                                         value_name='enmo')\n\n# Convert 'hour_of_day' back to integer type for proper plotting\ndf_melted['hour_of_day'] = df_melted['hour_of_day'].astype(int)\ndf_melted['enmo'] = pd.to_numeric(df_melted['enmo'], errors='coerce')\ndf_melted['sii'] = pd.to_numeric(df_melted['sii'], errors='coerce')\ndf_melted.dropna(subset=['enmo', 'sii'], inplace=True)\n\nplt.figure(figsize=(20, 8))\nsns.violinplot(x='hour_of_day', y='enmo', hue='sii', data=df_melted, palette='coolwarm')\nplt.xlabel('Hour of Day', fontsize=12)\nplt.ylabel('Average del_X', fontsize=12)\nplt.title('Distribution of Average del_X by Hour of Day, Colored by SII', fontsize=14)\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2024-11-03T13:45:08.640131Z","iopub.execute_input":"2024-11-03T13:45:08.640510Z","iopub.status.idle":"2024-11-03T13:45:48.397875Z","shell.execute_reply.started":"2024-11-03T13:45:08.640471Z","shell.execute_reply":"2024-11-03T13:45:48.396609Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"average_del_X_by_hour_df = []\n\nfor id in id_ts.id:\n    file_name = f'id={id}'\n    \n    ts_001f3379, PCIAT_Total, sii = process_file(file_name, '/kaggle/input/child-mind-institute-problematic-internet-use/series_train.parquet/')\n    ts_001f3379['hour_of_day'] = ts_001f3379['time_of_day'] // (60 * 60 * 10**9)\n    ts_001f3379['del_X'] =  ts_001f3379['X']**2 + ts_001f3379['Y']**2\n    \n    \n    average_enmo_by_hour = ts_001f3379.groupby('hour_of_day')['del_X'].mean().reset_index().T\n    average_enmo_by_hour = average_enmo_by_hour.drop('hour_of_day', axis=0)\n    \n    average_enmo_by_hour['id'] = id\n    average_enmo_by_hour['sii'] = sii\n    \n    average_del_X_by_hour_df.append(average_enmo_by_hour.T)\n\naverage_del_X_by_hour_df = pd.concat(average_del_X_by_hour_df, axis=1).T.reset_index(drop=True)\n\ndf_melted = average_del_X_by_hour_df.melt(id_vars=['id', 'sii'], \n                                         value_vars=[i for i in range(24)], \n                                         var_name='hour_of_day', \n                                         value_name='enmo')\n\n# Convert 'hour_of_day' back to integer type for proper plotting\ndf_melted['hour_of_day'] = df_melted['hour_of_day'].astype(int)\ndf_melted['enmo'] = pd.to_numeric(df_melted['enmo'], errors='coerce')\ndf_melted['sii'] = pd.to_numeric(df_melted['sii'], errors='coerce')\ndf_melted.dropna(subset=['enmo', 'sii'], inplace=True)\n\nplt.figure(figsize=(20, 8))\nsns.violinplot(x='hour_of_day', y='enmo', hue='sii', data=df_melted, palette='coolwarm')\nplt.xlabel('Hour of Day', fontsize=12)\nplt.ylabel('Average del_X', fontsize=12)\nplt.title('Distribution of Average del_X by Hour of Day, Colored by SII', fontsize=14)\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2024-11-03T13:45:48.399539Z","iopub.execute_input":"2024-11-03T13:45:48.399997Z","iopub.status.idle":"2024-11-03T13:46:29.117671Z","shell.execute_reply.started":"2024-11-03T13:45:48.399931Z","shell.execute_reply":"2024-11-03T13:46:29.116528Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"average_z_neg_by_hour_df = []\n\nfor id in id_ts.id:\n    file_name = f'id={id}'\n    \n    ts_001f3379, PCIAT_Total, sii = process_file(file_name, '/kaggle/input/child-mind-institute-problematic-internet-use/series_train.parquet/')\n    ts_001f3379['hour_of_day'] = ts_001f3379['time_of_day'] // (60 * 60 * 10**9)\n    ts_001f3379['neg_z'] = np.where(ts_001f3379['X'] <= 0, 0, ts_001f3379['X'])\n    \n    average_enmo_by_hour = ts_001f3379.groupby('hour_of_day')['neg_z'].mean().reset_index().T\n    average_enmo_by_hour = average_enmo_by_hour.drop('hour_of_day', axis=0)\n    \n    average_enmo_by_hour['id'] = id\n    average_enmo_by_hour['sii'] = sii\n    \n    average_z_neg_by_hour_df.append(average_enmo_by_hour.T)\n\naverage_z_neg_by_hour_df = pd.concat(average_z_neg_by_hour_df, axis=1).T.reset_index(drop=True)\n\ndf_melted = average_z_neg_by_hour_df.melt(id_vars=['id', 'sii'], \n                                         value_vars=[i for i in range(24)], \n                                         var_name='hour_of_day', \n                                         value_name='enmo')\n\n# Convert 'hour_of_day' back to integer type for proper plotting\ndf_melted['hour_of_day'] = df_melted['hour_of_day'].astype(int)\ndf_melted['enmo'] = pd.to_numeric(df_melted['enmo'], errors='coerce')\ndf_melted['sii'] = pd.to_numeric(df_melted['sii'], errors='coerce')\ndf_melted.dropna(subset=['enmo', 'sii'], inplace=True)\n\nplt.figure(figsize=(20, 8))\nsns.violinplot(x='hour_of_day', y='enmo', hue='sii', data=df_melted, palette='coolwarm')\nplt.xlabel('Hour of Day', fontsize=12)\nplt.ylabel('Average Z', fontsize=12)\nplt.title('Distribution of Average Z by Hour of Day, Colored by SII', fontsize=14)\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2024-11-03T13:46:29.119051Z","iopub.execute_input":"2024-11-03T13:46:29.119391Z","iopub.status.idle":"2024-11-03T13:47:08.868258Z","shell.execute_reply.started":"2024-11-03T13:46:29.119357Z","shell.execute_reply":"2024-11-03T13:47:08.867011Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"average_z_neg_by_hour_df = []\n\nfor id in id_ts.id:\n    file_name = f'id={id}'\n    \n    ts_001f3379, PCIAT_Total, sii = process_file(file_name, '/kaggle/input/child-mind-institute-problematic-internet-use/series_train.parquet/')\n    ts_001f3379['hour_of_day'] = ts_001f3379['time_of_day'] // (60 * 60 * 10**9)\n    ts_001f3379['neg_z'] = np.where(ts_001f3379['Y'] <= 0, 0, ts_001f3379['Y'])\n    \n    average_enmo_by_hour = ts_001f3379.groupby('hour_of_day')['neg_z'].mean().reset_index().T\n    average_enmo_by_hour = average_enmo_by_hour.drop('hour_of_day', axis=0)\n    \n    average_enmo_by_hour['id'] = id\n    average_enmo_by_hour['sii'] = sii\n    \n    average_z_neg_by_hour_df.append(average_enmo_by_hour.T)\n\naverage_z_neg_by_hour_df = pd.concat(average_z_neg_by_hour_df, axis=1).T.reset_index(drop=True)\n\ndf_melted = average_z_neg_by_hour_df.melt(id_vars=['id', 'sii'], \n                                         value_vars=[i for i in range(24)], \n                                         var_name='hour_of_day', \n                                         value_name='enmo')\n\n# Convert 'hour_of_day' back to integer type for proper plotting\ndf_melted['hour_of_day'] = df_melted['hour_of_day'].astype(int)\ndf_melted['enmo'] = pd.to_numeric(df_melted['enmo'], errors='coerce')\ndf_melted['sii'] = pd.to_numeric(df_melted['sii'], errors='coerce')\ndf_melted.dropna(subset=['enmo', 'sii'], inplace=True)\n\nplt.figure(figsize=(20, 8))\nsns.violinplot(x='hour_of_day', y='enmo', hue='sii', data=df_melted, palette='coolwarm')\nplt.xlabel('Hour of Day', fontsize=12)\nplt.ylabel('Average Z', fontsize=12)\nplt.title('Distribution of Average Z by Hour of Day, Colored by SII', fontsize=14)\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2024-11-03T13:47:08.870004Z","iopub.execute_input":"2024-11-03T13:47:08.870449Z","iopub.status.idle":"2024-11-03T13:47:49.383097Z","shell.execute_reply.started":"2024-11-03T13:47:08.870404Z","shell.execute_reply":"2024-11-03T13:47:49.381868Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"average_z_neg_by_hour_df = []\n\nfor id in id_ts.id:\n    file_name = f'id={id}'\n    \n    ts_001f3379, PCIAT_Total, sii = process_file(file_name, '/kaggle/input/child-mind-institute-problematic-internet-use/series_train.parquet/')\n    ts_001f3379['hour_of_day'] = ts_001f3379['time_of_day'] // (60 * 60 * 10**9)\n    ts_001f3379['neg_z'] = np.where(ts_001f3379['Z'] <= 0, 0, ts_001f3379['Z'])\n    \n    average_enmo_by_hour = ts_001f3379.groupby('hour_of_day')['neg_z'].mean().reset_index().T\n    average_enmo_by_hour = average_enmo_by_hour.drop('hour_of_day', axis=0)\n    \n    average_enmo_by_hour['id'] = id\n    average_enmo_by_hour['sii'] = sii\n    \n    average_z_neg_by_hour_df.append(average_enmo_by_hour.T)\n\naverage_z_neg_by_hour_df = pd.concat(average_z_neg_by_hour_df, axis=1).T.reset_index(drop=True)\n\ndf_melted = average_z_neg_by_hour_df.melt(id_vars=['id', 'sii'], \n                                         value_vars=[i for i in range(24)], \n                                         var_name='hour_of_day', \n                                         value_name='enmo')\n\n# Convert 'hour_of_day' back to integer type for proper plotting\ndf_melted['hour_of_day'] = df_melted['hour_of_day'].astype(int)\ndf_melted['enmo'] = pd.to_numeric(df_melted['enmo'], errors='coerce')\ndf_melted['sii'] = pd.to_numeric(df_melted['sii'], errors='coerce')\ndf_melted.dropna(subset=['enmo', 'sii'], inplace=True)\n\nplt.figure(figsize=(20, 8))\nsns.violinplot(x='hour_of_day', y='enmo', hue='sii', data=df_melted, palette='coolwarm')\nplt.xlabel('Hour of Day', fontsize=12)\nplt.ylabel('Average Z', fontsize=12)\nplt.title('Distribution of Average Z by Hour of Day, Colored by SII', fontsize=14)\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2024-11-03T13:47:49.385079Z","iopub.execute_input":"2024-11-03T13:47:49.385554Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"average_z_neg_by_hour_df = []\n\nfor id in id_ts.id:\n    file_name = f'id={id}'\n    \n    ts_001f3379, PCIAT_Total, sii = process_file(file_name, '/kaggle/input/child-mind-institute-problematic-internet-use/series_train.parquet/')\n    ts_001f3379['hour_of_day'] = ts_001f3379['time_of_day'] // (60 * 60 * 10**9)\n    ts_001f3379['neg_z'] = np.where(ts_001f3379['X'] >= 0, 0, ts_001f3379['X'])\n    \n    average_enmo_by_hour = ts_001f3379.groupby('hour_of_day')['neg_z'].mean().reset_index().T\n    average_enmo_by_hour = average_enmo_by_hour.drop('hour_of_day', axis=0)\n    \n    average_enmo_by_hour['id'] = id\n    average_enmo_by_hour['sii'] = sii\n    \n    average_z_neg_by_hour_df.append(average_enmo_by_hour.T)\n\naverage_z_neg_by_hour_df = pd.concat(average_z_neg_by_hour_df, axis=1).T.reset_index(drop=True)\n\ndf_melted = average_z_neg_by_hour_df.melt(id_vars=['id', 'sii'], \n                                         value_vars=[i for i in range(24)], \n                                         var_name='hour_of_day', \n                                         value_name='enmo')\n\n# Convert 'hour_of_day' back to integer type for proper plotting\ndf_melted['hour_of_day'] = df_melted['hour_of_day'].astype(int)\ndf_melted['enmo'] = pd.to_numeric(df_melted['enmo'], errors='coerce')\ndf_melted['sii'] = pd.to_numeric(df_melted['sii'], errors='coerce')\ndf_melted.dropna(subset=['enmo', 'sii'], inplace=True)\n\nplt.figure(figsize=(20, 8))\nsns.violinplot(x='hour_of_day', y='enmo', hue='sii', data=df_melted, palette='coolwarm')\nplt.xlabel('Hour of Day', fontsize=12)\nplt.ylabel('Average Z', fontsize=12)\nplt.title('Distribution of Average Z by Hour of Day, Colored by SII', fontsize=14)\nplt.show()","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"average_z_neg_by_hour_df = []\n\nfor id in id_ts.id:\n    file_name = f'id={id}'\n    \n    ts_001f3379, PCIAT_Total, sii = process_file(file_name, '/kaggle/input/child-mind-institute-problematic-internet-use/series_train.parquet/')\n    ts_001f3379['hour_of_day'] = ts_001f3379['time_of_day'] // (60 * 60 * 10**9)\n    ts_001f3379['neg_z'] = np.where(ts_001f3379['Y'] >= 0, 0, ts_001f3379['Y'])\n    \n    average_enmo_by_hour = ts_001f3379.groupby('hour_of_day')['neg_z'].mean().reset_index().T\n    average_enmo_by_hour = average_enmo_by_hour.drop('hour_of_day', axis=0)\n    \n    average_enmo_by_hour['id'] = id\n    average_enmo_by_hour['sii'] = sii\n    \n    average_z_neg_by_hour_df.append(average_enmo_by_hour.T)\n\naverage_z_neg_by_hour_df = pd.concat(average_z_neg_by_hour_df, axis=1).T.reset_index(drop=True)\n\ndf_melted = average_z_neg_by_hour_df.melt(id_vars=['id', 'sii'], \n                                         value_vars=[i for i in range(24)], \n                                         var_name='hour_of_day', \n                                         value_name='enmo')\n\n# Convert 'hour_of_day' back to integer type for proper plotting\ndf_melted['hour_of_day'] = df_melted['hour_of_day'].astype(int)\ndf_melted['enmo'] = pd.to_numeric(df_melted['enmo'], errors='coerce')\ndf_melted['sii'] = pd.to_numeric(df_melted['sii'], errors='coerce')\ndf_melted.dropna(subset=['enmo', 'sii'], inplace=True)\n\nplt.figure(figsize=(20, 8))\nsns.violinplot(x='hour_of_day', y='enmo', hue='sii', data=df_melted, palette='coolwarm')\nplt.xlabel('Hour of Day', fontsize=12)\nplt.ylabel('Average Z', fontsize=12)\nplt.title('Distribution of Average Z by Hour of Day, Colored by SII', fontsize=14)\nplt.show()","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"average_z_neg_by_hour_df = []\n\nfor id in id_ts.id:\n    file_name = f'id={id}'\n    \n    ts_001f3379, PCIAT_Total, sii = process_file(file_name, '/kaggle/input/child-mind-institute-problematic-internet-use/series_train.parquet/')\n    ts_001f3379['hour_of_day'] = ts_001f3379['time_of_day'] // (60 * 60 * 10**9)\n    ts_001f3379['neg_z'] = np.where(ts_001f3379['Z'] >= 0, 0, ts_001f3379['Z'])\n    \n    average_enmo_by_hour = ts_001f3379.groupby('hour_of_day')['neg_z'].mean().reset_index().T\n    average_enmo_by_hour = average_enmo_by_hour.drop('hour_of_day', axis=0)\n    \n    average_enmo_by_hour['id'] = id\n    average_enmo_by_hour['sii'] = sii\n    \n    average_z_neg_by_hour_df.append(average_enmo_by_hour.T)\n\naverage_z_neg_by_hour_df = pd.concat(average_z_neg_by_hour_df, axis=1).T.reset_index(drop=True)\n\ndf_melted = average_z_neg_by_hour_df.melt(id_vars=['id', 'sii'], \n                                         value_vars=[i for i in range(24)], \n                                         var_name='hour_of_day', \n                                         value_name='enmo')\n\n# Convert 'hour_of_day' back to integer type for proper plotting\ndf_melted['hour_of_day'] = df_melted['hour_of_day'].astype(int)\ndf_melted['enmo'] = pd.to_numeric(df_melted['enmo'], errors='coerce')\ndf_melted['sii'] = pd.to_numeric(df_melted['sii'], errors='coerce')\ndf_melted.dropna(subset=['enmo', 'sii'], inplace=True)\n\nplt.figure(figsize=(20, 8))\nsns.violinplot(x='hour_of_day', y='enmo', hue='sii', data=df_melted, palette='coolwarm')\nplt.xlabel('Hour of Day', fontsize=12)\nplt.ylabel('Average Z', fontsize=12)\nplt.title('Distribution of Average Z by Hour of Day, Colored by SII', fontsize=14)\nplt.show()","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"average_z_neg_by_hour_df = []\n\nfor id in id_ts.id:\n    file_name = f'id={id}'\n    \n    ts_001f3379, PCIAT_Total, sii = process_file(file_name, '/kaggle/input/child-mind-institute-problematic-internet-use/series_train.parquet/')\n    ts_001f3379['hour_of_day'] = ts_001f3379['time_of_day'] // (60 * 60 * 10**9)\n    ts_001f3379['neg_angle'] = np.where(ts_001f3379['anglez'] >= 0, 0, ts_001f3379['anglez'])\n    \n    average_enmo_by_hour = ts_001f3379.groupby('hour_of_day')['neg_angle'].mean().reset_index().T\n    average_enmo_by_hour = average_enmo_by_hour.drop('hour_of_day', axis=0)\n    \n    average_enmo_by_hour['id'] = id\n    average_enmo_by_hour['sii'] = sii\n    \n    average_z_neg_by_hour_df.append(average_enmo_by_hour.T)\n\naverage_z_neg_by_hour_df = pd.concat(average_z_neg_by_hour_df, axis=1).T.reset_index(drop=True)\n\ndf_melted = average_z_neg_by_hour_df.melt(id_vars=['id', 'sii'], \n                                         value_vars=[i for i in range(24)], \n                                         var_name='hour_of_day', \n                                         value_name='enmo')\n\n# Convert 'hour_of_day' back to integer type for proper plotting\ndf_melted['hour_of_day'] = df_melted['hour_of_day'].astype(int)\ndf_melted['enmo'] = pd.to_numeric(df_melted['enmo'], errors='coerce')\ndf_melted['sii'] = pd.to_numeric(df_melted['sii'], errors='coerce')\ndf_melted.dropna(subset=['enmo', 'sii'], inplace=True)\n\nplt.figure(figsize=(20, 8))\nsns.violinplot(x='hour_of_day', y='enmo', hue='sii', data=df_melted, palette='coolwarm')\nplt.xlabel('Hour of Day', fontsize=12)\nplt.ylabel('Average Z', fontsize=12)\nplt.title('Distribution of Average Z by Hour of Day, Colored by SII', fontsize=14)\nplt.show()","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"average_z_neg_by_hour_df = []\n\nfor id in id_ts.id:\n    file_name = f'id={id}'\n    \n    ts_001f3379, PCIAT_Total, sii = process_file(file_name, '/kaggle/input/child-mind-institute-problematic-internet-use/series_train.parquet/')\n    ts_001f3379['hour_of_day'] = ts_001f3379['time_of_day'] // (60 * 60 * 10**9)\n    ts_001f3379['neg_angle'] = np.where(ts_001f3379['anglez'] <= 0, 0, ts_001f3379['anglez'])\n    \n    average_enmo_by_hour = ts_001f3379.groupby('hour_of_day')['neg_angle'].mean().reset_index().T\n    average_enmo_by_hour = average_enmo_by_hour.drop('hour_of_day', axis=0)\n    \n    average_enmo_by_hour['id'] = id\n    average_enmo_by_hour['sii'] = sii\n    \n    average_z_neg_by_hour_df.append(average_enmo_by_hour.T)\n\naverage_z_neg_by_hour_df = pd.concat(average_z_neg_by_hour_df, axis=1).T.reset_index(drop=True)\n\ndf_melted = average_z_neg_by_hour_df.melt(id_vars=['id', 'sii'], \n                                         value_vars=[i for i in range(24)], \n                                         var_name='hour_of_day', \n                                         value_name='enmo')\n\n# Convert 'hour_of_day' back to integer type for proper plotting\ndf_melted['hour_of_day'] = df_melted['hour_of_day'].astype(int)\ndf_melted['enmo'] = pd.to_numeric(df_melted['enmo'], errors='coerce')\ndf_melted['sii'] = pd.to_numeric(df_melted['sii'], errors='coerce')\ndf_melted.dropna(subset=['enmo', 'sii'], inplace=True)\n\nplt.figure(figsize=(20, 8))\nsns.violinplot(x='hour_of_day', y='enmo', hue='sii', data=df_melted, palette='coolwarm')\nplt.xlabel('Hour of Day', fontsize=12)\nplt.ylabel('Average Z', fontsize=12)\nplt.title('Distribution of Average Z by Hour of Day, Colored by SII', fontsize=14)\nplt.show()","metadata":{"trusted":true},"execution_count":null,"outputs":[]}]}