[03b1b1]: / analytics / Sleep.ipynb

Download this file

1750 lines (1749 with data), 95.0 kB

{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "c9cd40c6-9b57-4e4d-8f29-adb2513dcb96",
   "metadata": {},
   "source": [
    "# Sleep Analytics"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "5a02e79e-f3d9-403b-be42-ecd064ffd2e6",
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "4675804a-483b-4d14-99dd-7bc60d97658a",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "User First Name                     object\n",
      "Calendar Date (Local)       datetime64[ns]\n",
      "Start Time (Local)          datetime64[ns]\n",
      "End Time (Local)            datetime64[ns]\n",
      "Start Time (s)                       int64\n",
      "Processing Time             datetime64[ns]\n",
      "Duration (s)                         int64\n",
      "Rem Sleep Duration (s)               int64\n",
      "Deep Sleep Duration (s)              int64\n",
      "Light Sleep Duration (s)             int64\n",
      "Awake Duration (s)                   int64\n",
      "Sleep Efficiency                   float64\n",
      "Sleep Score Value                  float64\n",
      "Sleep Score Qualifier               object\n",
      "Source                              object\n",
      "SleepPhaseStartTimeSec               int64\n",
      "SleepPhaseEndTimeSec                 int64\n",
      "SleepPhaseStartTime         datetime64[ns]\n",
      "SleepPhaseEndTime           datetime64[ns]\n",
      "SleepPhaseDuration                   int64\n",
      "SleepLevel                          object\n",
      "dtype: object\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>User First Name</th>\n",
       "      <th>Calendar Date (Local)</th>\n",
       "      <th>Start Time (Local)</th>\n",
       "      <th>End Time (Local)</th>\n",
       "      <th>Start Time (s)</th>\n",
       "      <th>Processing Time</th>\n",
       "      <th>Duration (s)</th>\n",
       "      <th>Rem Sleep Duration (s)</th>\n",
       "      <th>Deep Sleep Duration (s)</th>\n",
       "      <th>Light Sleep Duration (s)</th>\n",
       "      <th>...</th>\n",
       "      <th>Sleep Efficiency</th>\n",
       "      <th>Sleep Score Value</th>\n",
       "      <th>Sleep Score Qualifier</th>\n",
       "      <th>Source</th>\n",
       "      <th>SleepPhaseStartTimeSec</th>\n",
       "      <th>SleepPhaseEndTimeSec</th>\n",
       "      <th>SleepPhaseStartTime</th>\n",
       "      <th>SleepPhaseEndTime</th>\n",
       "      <th>SleepPhaseDuration</th>\n",
       "      <th>SleepLevel</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>P10</td>\n",
       "      <td>2023-12-22</td>\n",
       "      <td>2023-12-22 01:17:00</td>\n",
       "      <td>2023-12-22 09:03:00</td>\n",
       "      <td>1703204220</td>\n",
       "      <td>2023-12-23 09:51:08.503</td>\n",
       "      <td>27960</td>\n",
       "      <td>8400</td>\n",
       "      <td>3000</td>\n",
       "      <td>16560</td>\n",
       "      <td>...</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>94.0</td>\n",
       "      <td>Excellent</td>\n",
       "      <td>device</td>\n",
       "      <td>1703204580</td>\n",
       "      <td>1703206800</td>\n",
       "      <td>2023-12-22 01:23:00</td>\n",
       "      <td>2023-12-22 02:00:00</td>\n",
       "      <td>2220</td>\n",
       "      <td>deep</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>P10</td>\n",
       "      <td>2023-12-22</td>\n",
       "      <td>2023-12-22 01:17:00</td>\n",
       "      <td>2023-12-22 09:03:00</td>\n",
       "      <td>1703204220</td>\n",
       "      <td>2023-12-23 09:51:08.503</td>\n",
       "      <td>27960</td>\n",
       "      <td>8400</td>\n",
       "      <td>3000</td>\n",
       "      <td>16560</td>\n",
       "      <td>...</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>94.0</td>\n",
       "      <td>Excellent</td>\n",
       "      <td>device</td>\n",
       "      <td>1703210520</td>\n",
       "      <td>1703211300</td>\n",
       "      <td>2023-12-22 03:02:00</td>\n",
       "      <td>2023-12-22 03:15:00</td>\n",
       "      <td>780</td>\n",
       "      <td>deep</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>P10</td>\n",
       "      <td>2023-12-22</td>\n",
       "      <td>2023-12-22 01:17:00</td>\n",
       "      <td>2023-12-22 09:03:00</td>\n",
       "      <td>1703204220</td>\n",
       "      <td>2023-12-23 09:51:08.503</td>\n",
       "      <td>27960</td>\n",
       "      <td>8400</td>\n",
       "      <td>3000</td>\n",
       "      <td>16560</td>\n",
       "      <td>...</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>94.0</td>\n",
       "      <td>Excellent</td>\n",
       "      <td>device</td>\n",
       "      <td>1703204220</td>\n",
       "      <td>1703204580</td>\n",
       "      <td>2023-12-22 01:17:00</td>\n",
       "      <td>2023-12-22 01:23:00</td>\n",
       "      <td>360</td>\n",
       "      <td>light</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>P10</td>\n",
       "      <td>2023-12-22</td>\n",
       "      <td>2023-12-22 01:17:00</td>\n",
       "      <td>2023-12-22 09:03:00</td>\n",
       "      <td>1703204220</td>\n",
       "      <td>2023-12-23 09:51:08.503</td>\n",
       "      <td>27960</td>\n",
       "      <td>8400</td>\n",
       "      <td>3000</td>\n",
       "      <td>16560</td>\n",
       "      <td>...</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>94.0</td>\n",
       "      <td>Excellent</td>\n",
       "      <td>device</td>\n",
       "      <td>1703206800</td>\n",
       "      <td>1703207700</td>\n",
       "      <td>2023-12-22 02:00:00</td>\n",
       "      <td>2023-12-22 02:15:00</td>\n",
       "      <td>900</td>\n",
       "      <td>light</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>P10</td>\n",
       "      <td>2023-12-22</td>\n",
       "      <td>2023-12-22 01:17:00</td>\n",
       "      <td>2023-12-22 09:03:00</td>\n",
       "      <td>1703204220</td>\n",
       "      <td>2023-12-23 09:51:08.503</td>\n",
       "      <td>27960</td>\n",
       "      <td>8400</td>\n",
       "      <td>3000</td>\n",
       "      <td>16560</td>\n",
       "      <td>...</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>94.0</td>\n",
       "      <td>Excellent</td>\n",
       "      <td>device</td>\n",
       "      <td>1703208240</td>\n",
       "      <td>1703210520</td>\n",
       "      <td>2023-12-22 02:24:00</td>\n",
       "      <td>2023-12-22 03:02:00</td>\n",
       "      <td>2280</td>\n",
       "      <td>light</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3791</th>\n",
       "      <td>P14</td>\n",
       "      <td>2024-01-08</td>\n",
       "      <td>2024-01-08 00:01:00</td>\n",
       "      <td>2024-01-08 07:34:00</td>\n",
       "      <td>1704668460</td>\n",
       "      <td>2024-01-08 10:41:41.126</td>\n",
       "      <td>27180</td>\n",
       "      <td>4140</td>\n",
       "      <td>6600</td>\n",
       "      <td>16380</td>\n",
       "      <td>...</td>\n",
       "      <td>0.997792</td>\n",
       "      <td>92.0</td>\n",
       "      <td>Excellent</td>\n",
       "      <td>device</td>\n",
       "      <td>1704695040</td>\n",
       "      <td>1704695640</td>\n",
       "      <td>2024-01-08 07:24:00</td>\n",
       "      <td>2024-01-08 07:34:00</td>\n",
       "      <td>600</td>\n",
       "      <td>light</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3792</th>\n",
       "      <td>P14</td>\n",
       "      <td>2024-01-08</td>\n",
       "      <td>2024-01-08 00:01:00</td>\n",
       "      <td>2024-01-08 07:34:00</td>\n",
       "      <td>1704668460</td>\n",
       "      <td>2024-01-08 10:41:41.126</td>\n",
       "      <td>27180</td>\n",
       "      <td>4140</td>\n",
       "      <td>6600</td>\n",
       "      <td>16380</td>\n",
       "      <td>...</td>\n",
       "      <td>0.997792</td>\n",
       "      <td>92.0</td>\n",
       "      <td>Excellent</td>\n",
       "      <td>device</td>\n",
       "      <td>1704679020</td>\n",
       "      <td>1704679620</td>\n",
       "      <td>2024-01-08 02:57:00</td>\n",
       "      <td>2024-01-08 03:07:00</td>\n",
       "      <td>600</td>\n",
       "      <td>rem</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3793</th>\n",
       "      <td>P14</td>\n",
       "      <td>2024-01-08</td>\n",
       "      <td>2024-01-08 00:01:00</td>\n",
       "      <td>2024-01-08 07:34:00</td>\n",
       "      <td>1704668460</td>\n",
       "      <td>2024-01-08 10:41:41.126</td>\n",
       "      <td>27180</td>\n",
       "      <td>4140</td>\n",
       "      <td>6600</td>\n",
       "      <td>16380</td>\n",
       "      <td>...</td>\n",
       "      <td>0.997792</td>\n",
       "      <td>92.0</td>\n",
       "      <td>Excellent</td>\n",
       "      <td>device</td>\n",
       "      <td>1704687960</td>\n",
       "      <td>1704690420</td>\n",
       "      <td>2024-01-08 05:26:00</td>\n",
       "      <td>2024-01-08 06:07:00</td>\n",
       "      <td>2460</td>\n",
       "      <td>rem</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3794</th>\n",
       "      <td>P14</td>\n",
       "      <td>2024-01-08</td>\n",
       "      <td>2024-01-08 00:01:00</td>\n",
       "      <td>2024-01-08 07:34:00</td>\n",
       "      <td>1704668460</td>\n",
       "      <td>2024-01-08 10:41:41.126</td>\n",
       "      <td>27180</td>\n",
       "      <td>4140</td>\n",
       "      <td>6600</td>\n",
       "      <td>16380</td>\n",
       "      <td>...</td>\n",
       "      <td>0.997792</td>\n",
       "      <td>92.0</td>\n",
       "      <td>Excellent</td>\n",
       "      <td>device</td>\n",
       "      <td>1704693960</td>\n",
       "      <td>1704695040</td>\n",
       "      <td>2024-01-08 07:06:00</td>\n",
       "      <td>2024-01-08 07:24:00</td>\n",
       "      <td>1080</td>\n",
       "      <td>rem</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3795</th>\n",
       "      <td>P14</td>\n",
       "      <td>2024-01-08</td>\n",
       "      <td>2024-01-08 00:01:00</td>\n",
       "      <td>2024-01-08 07:34:00</td>\n",
       "      <td>1704668460</td>\n",
       "      <td>2024-01-08 10:41:41.126</td>\n",
       "      <td>27180</td>\n",
       "      <td>4140</td>\n",
       "      <td>6600</td>\n",
       "      <td>16380</td>\n",
       "      <td>...</td>\n",
       "      <td>0.997792</td>\n",
       "      <td>92.0</td>\n",
       "      <td>Excellent</td>\n",
       "      <td>device</td>\n",
       "      <td>1704671100</td>\n",
       "      <td>1704671160</td>\n",
       "      <td>2024-01-08 00:45:00</td>\n",
       "      <td>2024-01-08 00:46:00</td>\n",
       "      <td>60</td>\n",
       "      <td>awake</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>2318 rows × 21 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "     User First Name Calendar Date (Local)  Start Time (Local)  \\\n",
       "0                P10            2023-12-22 2023-12-22 01:17:00   \n",
       "1                P10            2023-12-22 2023-12-22 01:17:00   \n",
       "2                P10            2023-12-22 2023-12-22 01:17:00   \n",
       "3                P10            2023-12-22 2023-12-22 01:17:00   \n",
       "4                P10            2023-12-22 2023-12-22 01:17:00   \n",
       "...              ...                   ...                 ...   \n",
       "3791             P14            2024-01-08 2024-01-08 00:01:00   \n",
       "3792             P14            2024-01-08 2024-01-08 00:01:00   \n",
       "3793             P14            2024-01-08 2024-01-08 00:01:00   \n",
       "3794             P14            2024-01-08 2024-01-08 00:01:00   \n",
       "3795             P14            2024-01-08 2024-01-08 00:01:00   \n",
       "\n",
       "        End Time (Local)  Start Time (s)         Processing Time  \\\n",
       "0    2023-12-22 09:03:00      1703204220 2023-12-23 09:51:08.503   \n",
       "1    2023-12-22 09:03:00      1703204220 2023-12-23 09:51:08.503   \n",
       "2    2023-12-22 09:03:00      1703204220 2023-12-23 09:51:08.503   \n",
       "3    2023-12-22 09:03:00      1703204220 2023-12-23 09:51:08.503   \n",
       "4    2023-12-22 09:03:00      1703204220 2023-12-23 09:51:08.503   \n",
       "...                  ...             ...                     ...   \n",
       "3791 2024-01-08 07:34:00      1704668460 2024-01-08 10:41:41.126   \n",
       "3792 2024-01-08 07:34:00      1704668460 2024-01-08 10:41:41.126   \n",
       "3793 2024-01-08 07:34:00      1704668460 2024-01-08 10:41:41.126   \n",
       "3794 2024-01-08 07:34:00      1704668460 2024-01-08 10:41:41.126   \n",
       "3795 2024-01-08 07:34:00      1704668460 2024-01-08 10:41:41.126   \n",
       "\n",
       "      Duration (s)  Rem Sleep Duration (s)  Deep Sleep Duration (s)  \\\n",
       "0            27960                    8400                     3000   \n",
       "1            27960                    8400                     3000   \n",
       "2            27960                    8400                     3000   \n",
       "3            27960                    8400                     3000   \n",
       "4            27960                    8400                     3000   \n",
       "...            ...                     ...                      ...   \n",
       "3791         27180                    4140                     6600   \n",
       "3792         27180                    4140                     6600   \n",
       "3793         27180                    4140                     6600   \n",
       "3794         27180                    4140                     6600   \n",
       "3795         27180                    4140                     6600   \n",
       "\n",
       "      Light Sleep Duration (s)  ...  Sleep Efficiency  Sleep Score Value  \\\n",
       "0                        16560  ...          1.000000               94.0   \n",
       "1                        16560  ...          1.000000               94.0   \n",
       "2                        16560  ...          1.000000               94.0   \n",
       "3                        16560  ...          1.000000               94.0   \n",
       "4                        16560  ...          1.000000               94.0   \n",
       "...                        ...  ...               ...                ...   \n",
       "3791                     16380  ...          0.997792               92.0   \n",
       "3792                     16380  ...          0.997792               92.0   \n",
       "3793                     16380  ...          0.997792               92.0   \n",
       "3794                     16380  ...          0.997792               92.0   \n",
       "3795                     16380  ...          0.997792               92.0   \n",
       "\n",
       "      Sleep Score Qualifier  Source SleepPhaseStartTimeSec  \\\n",
       "0                 Excellent  device             1703204580   \n",
       "1                 Excellent  device             1703210520   \n",
       "2                 Excellent  device             1703204220   \n",
       "3                 Excellent  device             1703206800   \n",
       "4                 Excellent  device             1703208240   \n",
       "...                     ...     ...                    ...   \n",
       "3791              Excellent  device             1704695040   \n",
       "3792              Excellent  device             1704679020   \n",
       "3793              Excellent  device             1704687960   \n",
       "3794              Excellent  device             1704693960   \n",
       "3795              Excellent  device             1704671100   \n",
       "\n",
       "      SleepPhaseEndTimeSec  SleepPhaseStartTime   SleepPhaseEndTime  \\\n",
       "0               1703206800  2023-12-22 01:23:00 2023-12-22 02:00:00   \n",
       "1               1703211300  2023-12-22 03:02:00 2023-12-22 03:15:00   \n",
       "2               1703204580  2023-12-22 01:17:00 2023-12-22 01:23:00   \n",
       "3               1703207700  2023-12-22 02:00:00 2023-12-22 02:15:00   \n",
       "4               1703210520  2023-12-22 02:24:00 2023-12-22 03:02:00   \n",
       "...                    ...                  ...                 ...   \n",
       "3791            1704695640  2024-01-08 07:24:00 2024-01-08 07:34:00   \n",
       "3792            1704679620  2024-01-08 02:57:00 2024-01-08 03:07:00   \n",
       "3793            1704690420  2024-01-08 05:26:00 2024-01-08 06:07:00   \n",
       "3794            1704695040  2024-01-08 07:06:00 2024-01-08 07:24:00   \n",
       "3795            1704671160  2024-01-08 00:45:00 2024-01-08 00:46:00   \n",
       "\n",
       "     SleepPhaseDuration  SleepLevel  \n",
       "0                  2220        deep  \n",
       "1                   780        deep  \n",
       "2                   360       light  \n",
       "3                   900       light  \n",
       "4                  2280       light  \n",
       "...                 ...         ...  \n",
       "3791                600       light  \n",
       "3792                600         rem  \n",
       "3793               2460         rem  \n",
       "3794               1080         rem  \n",
       "3795                 60       awake  \n",
       "\n",
       "[2318 rows x 21 columns]"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Load dataset\n",
    "df = pd.read_csv('../data/garmin/sleep.csv', sep=',')\n",
    "\n",
    "# Drop not needed columns\n",
    "df = df.drop(columns=['User Id', 'User Last Name', 'User Email', 'Team Names', 'Group Names', \n",
    "                      'Calendar Date (UTC)', 'Start Time (UTC)', 'End Time (UTC)',\n",
    "                     'Validation', 'Time Zone (s)', 'Timezone (Local)', 'Summary Id'])\n",
    "\n",
    "# Convert data types\n",
    "df['Calendar Date (Local)'] = pd.to_datetime(df['Calendar Date (Local)'])\n",
    "df['Start Time (Local)'] = pd.to_datetime(df['Start Time (Local)'])\n",
    "df['End Time (Local)'] = pd.to_datetime(df['End Time (Local)'])\n",
    "df['Processing Time'] = pd.to_datetime(df['Processing Time'])\n",
    "df['SleepPhaseStartTime'] = pd.to_datetime(df['SleepPhaseStartTime'])\n",
    "#df['SleepPhaseEndTime'] = df['SleepPhaseEndTime'].str.replace('T',' ')\n",
    "df['SleepPhaseEndTime'] = pd.to_datetime(df['SleepPhaseEndTime'], format='mixed')\n",
    "\n",
    "# Only use records from device\n",
    "df = df[df['Source'] == 'device']\n",
    "\n",
    "# Get overview about data types\n",
    "print(df.dtypes)\n",
    "\n",
    "# Get overview about data in the dataset\n",
    "df"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "631c9d12-4b71-41a6-9c36-d37fc048f95e",
   "metadata": {},
   "source": [
    "## View data of a single individual for a given day"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "fcb2d8d1-21b5-4875-8d1a-859df7b9d0f3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>User First Name</th>\n",
       "      <th>Calendar Date (Local)</th>\n",
       "      <th>Start Time (Local)</th>\n",
       "      <th>End Time (Local)</th>\n",
       "      <th>Start Time (s)</th>\n",
       "      <th>Processing Time</th>\n",
       "      <th>Duration (s)</th>\n",
       "      <th>Rem Sleep Duration (s)</th>\n",
       "      <th>Deep Sleep Duration (s)</th>\n",
       "      <th>Light Sleep Duration (s)</th>\n",
       "      <th>...</th>\n",
       "      <th>Sleep Efficiency</th>\n",
       "      <th>Sleep Score Value</th>\n",
       "      <th>Sleep Score Qualifier</th>\n",
       "      <th>Source</th>\n",
       "      <th>SleepPhaseStartTimeSec</th>\n",
       "      <th>SleepPhaseEndTimeSec</th>\n",
       "      <th>SleepPhaseStartTime</th>\n",
       "      <th>SleepPhaseEndTime</th>\n",
       "      <th>SleepPhaseDuration</th>\n",
       "      <th>SleepLevel</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2061</th>\n",
       "      <td>P12</td>\n",
       "      <td>2023-12-24</td>\n",
       "      <td>2023-12-24 00:48:00</td>\n",
       "      <td>2023-12-24 05:14:40</td>\n",
       "      <td>1703375280</td>\n",
       "      <td>2023-12-25 17:28:23.071</td>\n",
       "      <td>16000</td>\n",
       "      <td>2200</td>\n",
       "      <td>5040</td>\n",
       "      <td>7500</td>\n",
       "      <td>...</td>\n",
       "      <td>0.99625</td>\n",
       "      <td>56.0</td>\n",
       "      <td>Poor</td>\n",
       "      <td>device</td>\n",
       "      <td>1703376000</td>\n",
       "      <td>1703378520</td>\n",
       "      <td>2023-12-24 01:00:00</td>\n",
       "      <td>2023-12-24 01:42:00</td>\n",
       "      <td>2520</td>\n",
       "      <td>deep</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2062</th>\n",
       "      <td>P12</td>\n",
       "      <td>2023-12-24</td>\n",
       "      <td>2023-12-24 00:48:00</td>\n",
       "      <td>2023-12-24 05:14:40</td>\n",
       "      <td>1703375280</td>\n",
       "      <td>2023-12-25 17:28:23.071</td>\n",
       "      <td>16000</td>\n",
       "      <td>2200</td>\n",
       "      <td>5040</td>\n",
       "      <td>7500</td>\n",
       "      <td>...</td>\n",
       "      <td>0.99625</td>\n",
       "      <td>56.0</td>\n",
       "      <td>Poor</td>\n",
       "      <td>device</td>\n",
       "      <td>1703380920</td>\n",
       "      <td>1703382300</td>\n",
       "      <td>2023-12-24 02:22:00</td>\n",
       "      <td>2023-12-24 02:45:00</td>\n",
       "      <td>1380</td>\n",
       "      <td>deep</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2063</th>\n",
       "      <td>P12</td>\n",
       "      <td>2023-12-24</td>\n",
       "      <td>2023-12-24 00:48:00</td>\n",
       "      <td>2023-12-24 05:14:40</td>\n",
       "      <td>1703375280</td>\n",
       "      <td>2023-12-25 17:28:23.071</td>\n",
       "      <td>16000</td>\n",
       "      <td>2200</td>\n",
       "      <td>5040</td>\n",
       "      <td>7500</td>\n",
       "      <td>...</td>\n",
       "      <td>0.99625</td>\n",
       "      <td>56.0</td>\n",
       "      <td>Poor</td>\n",
       "      <td>device</td>\n",
       "      <td>1703387160</td>\n",
       "      <td>1703388300</td>\n",
       "      <td>2023-12-24 04:06:00</td>\n",
       "      <td>2023-12-24 04:25:00</td>\n",
       "      <td>1140</td>\n",
       "      <td>deep</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2064</th>\n",
       "      <td>P12</td>\n",
       "      <td>2023-12-24</td>\n",
       "      <td>2023-12-24 00:48:00</td>\n",
       "      <td>2023-12-24 05:14:40</td>\n",
       "      <td>1703375280</td>\n",
       "      <td>2023-12-25 17:28:23.071</td>\n",
       "      <td>16000</td>\n",
       "      <td>2200</td>\n",
       "      <td>5040</td>\n",
       "      <td>7500</td>\n",
       "      <td>...</td>\n",
       "      <td>0.99625</td>\n",
       "      <td>56.0</td>\n",
       "      <td>Poor</td>\n",
       "      <td>device</td>\n",
       "      <td>1703375280</td>\n",
       "      <td>1703376000</td>\n",
       "      <td>2023-12-24 00:48:00</td>\n",
       "      <td>2023-12-24 01:00:00</td>\n",
       "      <td>720</td>\n",
       "      <td>light</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2065</th>\n",
       "      <td>P12</td>\n",
       "      <td>2023-12-24</td>\n",
       "      <td>2023-12-24 00:48:00</td>\n",
       "      <td>2023-12-24 05:14:40</td>\n",
       "      <td>1703375280</td>\n",
       "      <td>2023-12-25 17:28:23.071</td>\n",
       "      <td>16000</td>\n",
       "      <td>2200</td>\n",
       "      <td>5040</td>\n",
       "      <td>7500</td>\n",
       "      <td>...</td>\n",
       "      <td>0.99625</td>\n",
       "      <td>56.0</td>\n",
       "      <td>Poor</td>\n",
       "      <td>device</td>\n",
       "      <td>1703378520</td>\n",
       "      <td>1703379720</td>\n",
       "      <td>2023-12-24 01:42:00</td>\n",
       "      <td>2023-12-24 02:02:00</td>\n",
       "      <td>1200</td>\n",
       "      <td>light</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2066</th>\n",
       "      <td>P12</td>\n",
       "      <td>2023-12-24</td>\n",
       "      <td>2023-12-24 00:48:00</td>\n",
       "      <td>2023-12-24 05:14:40</td>\n",
       "      <td>1703375280</td>\n",
       "      <td>2023-12-25 17:28:23.071</td>\n",
       "      <td>16000</td>\n",
       "      <td>2200</td>\n",
       "      <td>5040</td>\n",
       "      <td>7500</td>\n",
       "      <td>...</td>\n",
       "      <td>0.99625</td>\n",
       "      <td>56.0</td>\n",
       "      <td>Poor</td>\n",
       "      <td>device</td>\n",
       "      <td>1703379780</td>\n",
       "      <td>1703380920</td>\n",
       "      <td>2023-12-24 02:03:00</td>\n",
       "      <td>2023-12-24 02:22:00</td>\n",
       "      <td>1140</td>\n",
       "      <td>light</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2067</th>\n",
       "      <td>P12</td>\n",
       "      <td>2023-12-24</td>\n",
       "      <td>2023-12-24 00:48:00</td>\n",
       "      <td>2023-12-24 05:14:40</td>\n",
       "      <td>1703375280</td>\n",
       "      <td>2023-12-25 17:28:23.071</td>\n",
       "      <td>16000</td>\n",
       "      <td>2200</td>\n",
       "      <td>5040</td>\n",
       "      <td>7500</td>\n",
       "      <td>...</td>\n",
       "      <td>0.99625</td>\n",
       "      <td>56.0</td>\n",
       "      <td>Poor</td>\n",
       "      <td>device</td>\n",
       "      <td>1703382300</td>\n",
       "      <td>1703383440</td>\n",
       "      <td>2023-12-24 02:45:00</td>\n",
       "      <td>2023-12-24 03:04:00</td>\n",
       "      <td>1140</td>\n",
       "      <td>light</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2068</th>\n",
       "      <td>P12</td>\n",
       "      <td>2023-12-24</td>\n",
       "      <td>2023-12-24 00:48:00</td>\n",
       "      <td>2023-12-24 05:14:40</td>\n",
       "      <td>1703375280</td>\n",
       "      <td>2023-12-25 17:28:23.071</td>\n",
       "      <td>16000</td>\n",
       "      <td>2200</td>\n",
       "      <td>5040</td>\n",
       "      <td>7500</td>\n",
       "      <td>...</td>\n",
       "      <td>0.99625</td>\n",
       "      <td>56.0</td>\n",
       "      <td>Poor</td>\n",
       "      <td>device</td>\n",
       "      <td>1703385720</td>\n",
       "      <td>1703387160</td>\n",
       "      <td>2023-12-24 03:42:00</td>\n",
       "      <td>2023-12-24 04:06:00</td>\n",
       "      <td>1440</td>\n",
       "      <td>light</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2069</th>\n",
       "      <td>P12</td>\n",
       "      <td>2023-12-24</td>\n",
       "      <td>2023-12-24 00:48:00</td>\n",
       "      <td>2023-12-24 05:14:40</td>\n",
       "      <td>1703375280</td>\n",
       "      <td>2023-12-25 17:28:23.071</td>\n",
       "      <td>16000</td>\n",
       "      <td>2200</td>\n",
       "      <td>5040</td>\n",
       "      <td>7500</td>\n",
       "      <td>...</td>\n",
       "      <td>0.99625</td>\n",
       "      <td>56.0</td>\n",
       "      <td>Poor</td>\n",
       "      <td>device</td>\n",
       "      <td>1703388300</td>\n",
       "      <td>1703390160</td>\n",
       "      <td>2023-12-24 04:25:00</td>\n",
       "      <td>2023-12-24 04:56:00</td>\n",
       "      <td>1860</td>\n",
       "      <td>light</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2070</th>\n",
       "      <td>P12</td>\n",
       "      <td>2023-12-24</td>\n",
       "      <td>2023-12-24 00:48:00</td>\n",
       "      <td>2023-12-24 05:14:40</td>\n",
       "      <td>1703375280</td>\n",
       "      <td>2023-12-25 17:28:23.071</td>\n",
       "      <td>16000</td>\n",
       "      <td>2200</td>\n",
       "      <td>5040</td>\n",
       "      <td>7500</td>\n",
       "      <td>...</td>\n",
       "      <td>0.99625</td>\n",
       "      <td>56.0</td>\n",
       "      <td>Poor</td>\n",
       "      <td>device</td>\n",
       "      <td>1703383440</td>\n",
       "      <td>1703384520</td>\n",
       "      <td>2023-12-24 03:04:00</td>\n",
       "      <td>2023-12-24 03:22:00</td>\n",
       "      <td>1080</td>\n",
       "      <td>rem</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2071</th>\n",
       "      <td>P12</td>\n",
       "      <td>2023-12-24</td>\n",
       "      <td>2023-12-24 00:48:00</td>\n",
       "      <td>2023-12-24 05:14:40</td>\n",
       "      <td>1703375280</td>\n",
       "      <td>2023-12-25 17:28:23.071</td>\n",
       "      <td>16000</td>\n",
       "      <td>2200</td>\n",
       "      <td>5040</td>\n",
       "      <td>7500</td>\n",
       "      <td>...</td>\n",
       "      <td>0.99625</td>\n",
       "      <td>56.0</td>\n",
       "      <td>Poor</td>\n",
       "      <td>device</td>\n",
       "      <td>1703390160</td>\n",
       "      <td>1703391280</td>\n",
       "      <td>2023-12-24 04:56:00</td>\n",
       "      <td>2023-12-24 05:14:40</td>\n",
       "      <td>1120</td>\n",
       "      <td>rem</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2072</th>\n",
       "      <td>P12</td>\n",
       "      <td>2023-12-24</td>\n",
       "      <td>2023-12-24 00:48:00</td>\n",
       "      <td>2023-12-24 05:14:40</td>\n",
       "      <td>1703375280</td>\n",
       "      <td>2023-12-25 17:28:23.071</td>\n",
       "      <td>16000</td>\n",
       "      <td>2200</td>\n",
       "      <td>5040</td>\n",
       "      <td>7500</td>\n",
       "      <td>...</td>\n",
       "      <td>0.99625</td>\n",
       "      <td>56.0</td>\n",
       "      <td>Poor</td>\n",
       "      <td>device</td>\n",
       "      <td>1703379720</td>\n",
       "      <td>1703379780</td>\n",
       "      <td>2023-12-24 02:02:00</td>\n",
       "      <td>2023-12-24 02:03:00</td>\n",
       "      <td>60</td>\n",
       "      <td>awake</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>12 rows × 21 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "     User First Name Calendar Date (Local)  Start Time (Local)  \\\n",
       "2061             P12            2023-12-24 2023-12-24 00:48:00   \n",
       "2062             P12            2023-12-24 2023-12-24 00:48:00   \n",
       "2063             P12            2023-12-24 2023-12-24 00:48:00   \n",
       "2064             P12            2023-12-24 2023-12-24 00:48:00   \n",
       "2065             P12            2023-12-24 2023-12-24 00:48:00   \n",
       "2066             P12            2023-12-24 2023-12-24 00:48:00   \n",
       "2067             P12            2023-12-24 2023-12-24 00:48:00   \n",
       "2068             P12            2023-12-24 2023-12-24 00:48:00   \n",
       "2069             P12            2023-12-24 2023-12-24 00:48:00   \n",
       "2070             P12            2023-12-24 2023-12-24 00:48:00   \n",
       "2071             P12            2023-12-24 2023-12-24 00:48:00   \n",
       "2072             P12            2023-12-24 2023-12-24 00:48:00   \n",
       "\n",
       "        End Time (Local)  Start Time (s)         Processing Time  \\\n",
       "2061 2023-12-24 05:14:40      1703375280 2023-12-25 17:28:23.071   \n",
       "2062 2023-12-24 05:14:40      1703375280 2023-12-25 17:28:23.071   \n",
       "2063 2023-12-24 05:14:40      1703375280 2023-12-25 17:28:23.071   \n",
       "2064 2023-12-24 05:14:40      1703375280 2023-12-25 17:28:23.071   \n",
       "2065 2023-12-24 05:14:40      1703375280 2023-12-25 17:28:23.071   \n",
       "2066 2023-12-24 05:14:40      1703375280 2023-12-25 17:28:23.071   \n",
       "2067 2023-12-24 05:14:40      1703375280 2023-12-25 17:28:23.071   \n",
       "2068 2023-12-24 05:14:40      1703375280 2023-12-25 17:28:23.071   \n",
       "2069 2023-12-24 05:14:40      1703375280 2023-12-25 17:28:23.071   \n",
       "2070 2023-12-24 05:14:40      1703375280 2023-12-25 17:28:23.071   \n",
       "2071 2023-12-24 05:14:40      1703375280 2023-12-25 17:28:23.071   \n",
       "2072 2023-12-24 05:14:40      1703375280 2023-12-25 17:28:23.071   \n",
       "\n",
       "      Duration (s)  Rem Sleep Duration (s)  Deep Sleep Duration (s)  \\\n",
       "2061         16000                    2200                     5040   \n",
       "2062         16000                    2200                     5040   \n",
       "2063         16000                    2200                     5040   \n",
       "2064         16000                    2200                     5040   \n",
       "2065         16000                    2200                     5040   \n",
       "2066         16000                    2200                     5040   \n",
       "2067         16000                    2200                     5040   \n",
       "2068         16000                    2200                     5040   \n",
       "2069         16000                    2200                     5040   \n",
       "2070         16000                    2200                     5040   \n",
       "2071         16000                    2200                     5040   \n",
       "2072         16000                    2200                     5040   \n",
       "\n",
       "      Light Sleep Duration (s)  ...  Sleep Efficiency  Sleep Score Value  \\\n",
       "2061                      7500  ...           0.99625               56.0   \n",
       "2062                      7500  ...           0.99625               56.0   \n",
       "2063                      7500  ...           0.99625               56.0   \n",
       "2064                      7500  ...           0.99625               56.0   \n",
       "2065                      7500  ...           0.99625               56.0   \n",
       "2066                      7500  ...           0.99625               56.0   \n",
       "2067                      7500  ...           0.99625               56.0   \n",
       "2068                      7500  ...           0.99625               56.0   \n",
       "2069                      7500  ...           0.99625               56.0   \n",
       "2070                      7500  ...           0.99625               56.0   \n",
       "2071                      7500  ...           0.99625               56.0   \n",
       "2072                      7500  ...           0.99625               56.0   \n",
       "\n",
       "      Sleep Score Qualifier  Source SleepPhaseStartTimeSec  \\\n",
       "2061                   Poor  device             1703376000   \n",
       "2062                   Poor  device             1703380920   \n",
       "2063                   Poor  device             1703387160   \n",
       "2064                   Poor  device             1703375280   \n",
       "2065                   Poor  device             1703378520   \n",
       "2066                   Poor  device             1703379780   \n",
       "2067                   Poor  device             1703382300   \n",
       "2068                   Poor  device             1703385720   \n",
       "2069                   Poor  device             1703388300   \n",
       "2070                   Poor  device             1703383440   \n",
       "2071                   Poor  device             1703390160   \n",
       "2072                   Poor  device             1703379720   \n",
       "\n",
       "      SleepPhaseEndTimeSec  SleepPhaseStartTime   SleepPhaseEndTime  \\\n",
       "2061            1703378520  2023-12-24 01:00:00 2023-12-24 01:42:00   \n",
       "2062            1703382300  2023-12-24 02:22:00 2023-12-24 02:45:00   \n",
       "2063            1703388300  2023-12-24 04:06:00 2023-12-24 04:25:00   \n",
       "2064            1703376000  2023-12-24 00:48:00 2023-12-24 01:00:00   \n",
       "2065            1703379720  2023-12-24 01:42:00 2023-12-24 02:02:00   \n",
       "2066            1703380920  2023-12-24 02:03:00 2023-12-24 02:22:00   \n",
       "2067            1703383440  2023-12-24 02:45:00 2023-12-24 03:04:00   \n",
       "2068            1703387160  2023-12-24 03:42:00 2023-12-24 04:06:00   \n",
       "2069            1703390160  2023-12-24 04:25:00 2023-12-24 04:56:00   \n",
       "2070            1703384520  2023-12-24 03:04:00 2023-12-24 03:22:00   \n",
       "2071            1703391280  2023-12-24 04:56:00 2023-12-24 05:14:40   \n",
       "2072            1703379780  2023-12-24 02:02:00 2023-12-24 02:03:00   \n",
       "\n",
       "     SleepPhaseDuration  SleepLevel  \n",
       "2061               2520        deep  \n",
       "2062               1380        deep  \n",
       "2063               1140        deep  \n",
       "2064                720       light  \n",
       "2065               1200       light  \n",
       "2066               1140       light  \n",
       "2067               1140       light  \n",
       "2068               1440       light  \n",
       "2069               1860       light  \n",
       "2070               1080         rem  \n",
       "2071               1120         rem  \n",
       "2072                 60       awake  \n",
       "\n",
       "[12 rows x 21 columns]"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Select user = P12 and day = 2023-12-24\n",
    "df_p12 = df[df['User First Name'] == 'P12']\n",
    "df_p12_xmas = df_p12[df_p12['Calendar Date (Local)'] == '2023-12-24']\n",
    "\n",
    "# Print\n",
    "df_p12_xmas"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "615dc83d-58ed-4b4f-a528-1839a621b816",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>User First Name</th>\n",
       "      <th>Calendar Date (Local)</th>\n",
       "      <th>Start Time (Local)</th>\n",
       "      <th>End Time (Local)</th>\n",
       "      <th>Start Time (s)</th>\n",
       "      <th>Processing Time</th>\n",
       "      <th>Duration (s)</th>\n",
       "      <th>Rem Sleep Duration (s)</th>\n",
       "      <th>Deep Sleep Duration (s)</th>\n",
       "      <th>Light Sleep Duration (s)</th>\n",
       "      <th>...</th>\n",
       "      <th>Sleep Efficiency</th>\n",
       "      <th>Sleep Score Value</th>\n",
       "      <th>Sleep Score Qualifier</th>\n",
       "      <th>Source</th>\n",
       "      <th>SleepPhaseStartTimeSec</th>\n",
       "      <th>SleepPhaseEndTimeSec</th>\n",
       "      <th>SleepPhaseStartTime</th>\n",
       "      <th>SleepPhaseEndTime</th>\n",
       "      <th>SleepPhaseDuration</th>\n",
       "      <th>SleepLevel</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2061</th>\n",
       "      <td>P12</td>\n",
       "      <td>2023-12-24</td>\n",
       "      <td>2023-12-24 00:48:00</td>\n",
       "      <td>2023-12-24 05:14:40</td>\n",
       "      <td>1703375280</td>\n",
       "      <td>2023-12-25 17:28:23.071</td>\n",
       "      <td>16000</td>\n",
       "      <td>2200</td>\n",
       "      <td>5040</td>\n",
       "      <td>7500</td>\n",
       "      <td>...</td>\n",
       "      <td>0.99625</td>\n",
       "      <td>56.0</td>\n",
       "      <td>Poor</td>\n",
       "      <td>device</td>\n",
       "      <td>1703376000</td>\n",
       "      <td>1703378520</td>\n",
       "      <td>2023-12-24 01:00:00</td>\n",
       "      <td>2023-12-24 01:42:00</td>\n",
       "      <td>2520</td>\n",
       "      <td>deep</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2062</th>\n",
       "      <td>P12</td>\n",
       "      <td>2023-12-24</td>\n",
       "      <td>2023-12-24 00:48:00</td>\n",
       "      <td>2023-12-24 05:14:40</td>\n",
       "      <td>1703375280</td>\n",
       "      <td>2023-12-25 17:28:23.071</td>\n",
       "      <td>16000</td>\n",
       "      <td>2200</td>\n",
       "      <td>5040</td>\n",
       "      <td>7500</td>\n",
       "      <td>...</td>\n",
       "      <td>0.99625</td>\n",
       "      <td>56.0</td>\n",
       "      <td>Poor</td>\n",
       "      <td>device</td>\n",
       "      <td>1703380920</td>\n",
       "      <td>1703382300</td>\n",
       "      <td>2023-12-24 02:22:00</td>\n",
       "      <td>2023-12-24 02:45:00</td>\n",
       "      <td>1380</td>\n",
       "      <td>deep</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2063</th>\n",
       "      <td>P12</td>\n",
       "      <td>2023-12-24</td>\n",
       "      <td>2023-12-24 00:48:00</td>\n",
       "      <td>2023-12-24 05:14:40</td>\n",
       "      <td>1703375280</td>\n",
       "      <td>2023-12-25 17:28:23.071</td>\n",
       "      <td>16000</td>\n",
       "      <td>2200</td>\n",
       "      <td>5040</td>\n",
       "      <td>7500</td>\n",
       "      <td>...</td>\n",
       "      <td>0.99625</td>\n",
       "      <td>56.0</td>\n",
       "      <td>Poor</td>\n",
       "      <td>device</td>\n",
       "      <td>1703387160</td>\n",
       "      <td>1703388300</td>\n",
       "      <td>2023-12-24 04:06:00</td>\n",
       "      <td>2023-12-24 04:25:00</td>\n",
       "      <td>1140</td>\n",
       "      <td>deep</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2064</th>\n",
       "      <td>P12</td>\n",
       "      <td>2023-12-24</td>\n",
       "      <td>2023-12-24 00:48:00</td>\n",
       "      <td>2023-12-24 05:14:40</td>\n",
       "      <td>1703375280</td>\n",
       "      <td>2023-12-25 17:28:23.071</td>\n",
       "      <td>16000</td>\n",
       "      <td>2200</td>\n",
       "      <td>5040</td>\n",
       "      <td>7500</td>\n",
       "      <td>...</td>\n",
       "      <td>0.99625</td>\n",
       "      <td>56.0</td>\n",
       "      <td>Poor</td>\n",
       "      <td>device</td>\n",
       "      <td>1703375280</td>\n",
       "      <td>1703376000</td>\n",
       "      <td>2023-12-24 00:48:00</td>\n",
       "      <td>2023-12-24 01:00:00</td>\n",
       "      <td>720</td>\n",
       "      <td>light</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2065</th>\n",
       "      <td>P12</td>\n",
       "      <td>2023-12-24</td>\n",
       "      <td>2023-12-24 00:48:00</td>\n",
       "      <td>2023-12-24 05:14:40</td>\n",
       "      <td>1703375280</td>\n",
       "      <td>2023-12-25 17:28:23.071</td>\n",
       "      <td>16000</td>\n",
       "      <td>2200</td>\n",
       "      <td>5040</td>\n",
       "      <td>7500</td>\n",
       "      <td>...</td>\n",
       "      <td>0.99625</td>\n",
       "      <td>56.0</td>\n",
       "      <td>Poor</td>\n",
       "      <td>device</td>\n",
       "      <td>1703378520</td>\n",
       "      <td>1703379720</td>\n",
       "      <td>2023-12-24 01:42:00</td>\n",
       "      <td>2023-12-24 02:02:00</td>\n",
       "      <td>1200</td>\n",
       "      <td>light</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2066</th>\n",
       "      <td>P12</td>\n",
       "      <td>2023-12-24</td>\n",
       "      <td>2023-12-24 00:48:00</td>\n",
       "      <td>2023-12-24 05:14:40</td>\n",
       "      <td>1703375280</td>\n",
       "      <td>2023-12-25 17:28:23.071</td>\n",
       "      <td>16000</td>\n",
       "      <td>2200</td>\n",
       "      <td>5040</td>\n",
       "      <td>7500</td>\n",
       "      <td>...</td>\n",
       "      <td>0.99625</td>\n",
       "      <td>56.0</td>\n",
       "      <td>Poor</td>\n",
       "      <td>device</td>\n",
       "      <td>1703379780</td>\n",
       "      <td>1703380920</td>\n",
       "      <td>2023-12-24 02:03:00</td>\n",
       "      <td>2023-12-24 02:22:00</td>\n",
       "      <td>1140</td>\n",
       "      <td>light</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2067</th>\n",
       "      <td>P12</td>\n",
       "      <td>2023-12-24</td>\n",
       "      <td>2023-12-24 00:48:00</td>\n",
       "      <td>2023-12-24 05:14:40</td>\n",
       "      <td>1703375280</td>\n",
       "      <td>2023-12-25 17:28:23.071</td>\n",
       "      <td>16000</td>\n",
       "      <td>2200</td>\n",
       "      <td>5040</td>\n",
       "      <td>7500</td>\n",
       "      <td>...</td>\n",
       "      <td>0.99625</td>\n",
       "      <td>56.0</td>\n",
       "      <td>Poor</td>\n",
       "      <td>device</td>\n",
       "      <td>1703382300</td>\n",
       "      <td>1703383440</td>\n",
       "      <td>2023-12-24 02:45:00</td>\n",
       "      <td>2023-12-24 03:04:00</td>\n",
       "      <td>1140</td>\n",
       "      <td>light</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2068</th>\n",
       "      <td>P12</td>\n",
       "      <td>2023-12-24</td>\n",
       "      <td>2023-12-24 00:48:00</td>\n",
       "      <td>2023-12-24 05:14:40</td>\n",
       "      <td>1703375280</td>\n",
       "      <td>2023-12-25 17:28:23.071</td>\n",
       "      <td>16000</td>\n",
       "      <td>2200</td>\n",
       "      <td>5040</td>\n",
       "      <td>7500</td>\n",
       "      <td>...</td>\n",
       "      <td>0.99625</td>\n",
       "      <td>56.0</td>\n",
       "      <td>Poor</td>\n",
       "      <td>device</td>\n",
       "      <td>1703385720</td>\n",
       "      <td>1703387160</td>\n",
       "      <td>2023-12-24 03:42:00</td>\n",
       "      <td>2023-12-24 04:06:00</td>\n",
       "      <td>1440</td>\n",
       "      <td>light</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2069</th>\n",
       "      <td>P12</td>\n",
       "      <td>2023-12-24</td>\n",
       "      <td>2023-12-24 00:48:00</td>\n",
       "      <td>2023-12-24 05:14:40</td>\n",
       "      <td>1703375280</td>\n",
       "      <td>2023-12-25 17:28:23.071</td>\n",
       "      <td>16000</td>\n",
       "      <td>2200</td>\n",
       "      <td>5040</td>\n",
       "      <td>7500</td>\n",
       "      <td>...</td>\n",
       "      <td>0.99625</td>\n",
       "      <td>56.0</td>\n",
       "      <td>Poor</td>\n",
       "      <td>device</td>\n",
       "      <td>1703388300</td>\n",
       "      <td>1703390160</td>\n",
       "      <td>2023-12-24 04:25:00</td>\n",
       "      <td>2023-12-24 04:56:00</td>\n",
       "      <td>1860</td>\n",
       "      <td>light</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2070</th>\n",
       "      <td>P12</td>\n",
       "      <td>2023-12-24</td>\n",
       "      <td>2023-12-24 00:48:00</td>\n",
       "      <td>2023-12-24 05:14:40</td>\n",
       "      <td>1703375280</td>\n",
       "      <td>2023-12-25 17:28:23.071</td>\n",
       "      <td>16000</td>\n",
       "      <td>2200</td>\n",
       "      <td>5040</td>\n",
       "      <td>7500</td>\n",
       "      <td>...</td>\n",
       "      <td>0.99625</td>\n",
       "      <td>56.0</td>\n",
       "      <td>Poor</td>\n",
       "      <td>device</td>\n",
       "      <td>1703383440</td>\n",
       "      <td>1703384520</td>\n",
       "      <td>2023-12-24 03:04:00</td>\n",
       "      <td>2023-12-24 03:22:00</td>\n",
       "      <td>1080</td>\n",
       "      <td>rem</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2071</th>\n",
       "      <td>P12</td>\n",
       "      <td>2023-12-24</td>\n",
       "      <td>2023-12-24 00:48:00</td>\n",
       "      <td>2023-12-24 05:14:40</td>\n",
       "      <td>1703375280</td>\n",
       "      <td>2023-12-25 17:28:23.071</td>\n",
       "      <td>16000</td>\n",
       "      <td>2200</td>\n",
       "      <td>5040</td>\n",
       "      <td>7500</td>\n",
       "      <td>...</td>\n",
       "      <td>0.99625</td>\n",
       "      <td>56.0</td>\n",
       "      <td>Poor</td>\n",
       "      <td>device</td>\n",
       "      <td>1703390160</td>\n",
       "      <td>1703391280</td>\n",
       "      <td>2023-12-24 04:56:00</td>\n",
       "      <td>2023-12-24 05:14:40</td>\n",
       "      <td>1120</td>\n",
       "      <td>rem</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2072</th>\n",
       "      <td>P12</td>\n",
       "      <td>2023-12-24</td>\n",
       "      <td>2023-12-24 00:48:00</td>\n",
       "      <td>2023-12-24 05:14:40</td>\n",
       "      <td>1703375280</td>\n",
       "      <td>2023-12-25 17:28:23.071</td>\n",
       "      <td>16000</td>\n",
       "      <td>2200</td>\n",
       "      <td>5040</td>\n",
       "      <td>7500</td>\n",
       "      <td>...</td>\n",
       "      <td>0.99625</td>\n",
       "      <td>56.0</td>\n",
       "      <td>Poor</td>\n",
       "      <td>device</td>\n",
       "      <td>1703379720</td>\n",
       "      <td>1703379780</td>\n",
       "      <td>2023-12-24 02:02:00</td>\n",
       "      <td>2023-12-24 02:03:00</td>\n",
       "      <td>60</td>\n",
       "      <td>awake</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>12 rows × 21 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "     User First Name Calendar Date (Local)  Start Time (Local)  \\\n",
       "2061             P12            2023-12-24 2023-12-24 00:48:00   \n",
       "2062             P12            2023-12-24 2023-12-24 00:48:00   \n",
       "2063             P12            2023-12-24 2023-12-24 00:48:00   \n",
       "2064             P12            2023-12-24 2023-12-24 00:48:00   \n",
       "2065             P12            2023-12-24 2023-12-24 00:48:00   \n",
       "2066             P12            2023-12-24 2023-12-24 00:48:00   \n",
       "2067             P12            2023-12-24 2023-12-24 00:48:00   \n",
       "2068             P12            2023-12-24 2023-12-24 00:48:00   \n",
       "2069             P12            2023-12-24 2023-12-24 00:48:00   \n",
       "2070             P12            2023-12-24 2023-12-24 00:48:00   \n",
       "2071             P12            2023-12-24 2023-12-24 00:48:00   \n",
       "2072             P12            2023-12-24 2023-12-24 00:48:00   \n",
       "\n",
       "        End Time (Local)  Start Time (s)         Processing Time  \\\n",
       "2061 2023-12-24 05:14:40      1703375280 2023-12-25 17:28:23.071   \n",
       "2062 2023-12-24 05:14:40      1703375280 2023-12-25 17:28:23.071   \n",
       "2063 2023-12-24 05:14:40      1703375280 2023-12-25 17:28:23.071   \n",
       "2064 2023-12-24 05:14:40      1703375280 2023-12-25 17:28:23.071   \n",
       "2065 2023-12-24 05:14:40      1703375280 2023-12-25 17:28:23.071   \n",
       "2066 2023-12-24 05:14:40      1703375280 2023-12-25 17:28:23.071   \n",
       "2067 2023-12-24 05:14:40      1703375280 2023-12-25 17:28:23.071   \n",
       "2068 2023-12-24 05:14:40      1703375280 2023-12-25 17:28:23.071   \n",
       "2069 2023-12-24 05:14:40      1703375280 2023-12-25 17:28:23.071   \n",
       "2070 2023-12-24 05:14:40      1703375280 2023-12-25 17:28:23.071   \n",
       "2071 2023-12-24 05:14:40      1703375280 2023-12-25 17:28:23.071   \n",
       "2072 2023-12-24 05:14:40      1703375280 2023-12-25 17:28:23.071   \n",
       "\n",
       "      Duration (s)  Rem Sleep Duration (s)  Deep Sleep Duration (s)  \\\n",
       "2061         16000                    2200                     5040   \n",
       "2062         16000                    2200                     5040   \n",
       "2063         16000                    2200                     5040   \n",
       "2064         16000                    2200                     5040   \n",
       "2065         16000                    2200                     5040   \n",
       "2066         16000                    2200                     5040   \n",
       "2067         16000                    2200                     5040   \n",
       "2068         16000                    2200                     5040   \n",
       "2069         16000                    2200                     5040   \n",
       "2070         16000                    2200                     5040   \n",
       "2071         16000                    2200                     5040   \n",
       "2072         16000                    2200                     5040   \n",
       "\n",
       "      Light Sleep Duration (s)  ...  Sleep Efficiency  Sleep Score Value  \\\n",
       "2061                      7500  ...           0.99625               56.0   \n",
       "2062                      7500  ...           0.99625               56.0   \n",
       "2063                      7500  ...           0.99625               56.0   \n",
       "2064                      7500  ...           0.99625               56.0   \n",
       "2065                      7500  ...           0.99625               56.0   \n",
       "2066                      7500  ...           0.99625               56.0   \n",
       "2067                      7500  ...           0.99625               56.0   \n",
       "2068                      7500  ...           0.99625               56.0   \n",
       "2069                      7500  ...           0.99625               56.0   \n",
       "2070                      7500  ...           0.99625               56.0   \n",
       "2071                      7500  ...           0.99625               56.0   \n",
       "2072                      7500  ...           0.99625               56.0   \n",
       "\n",
       "      Sleep Score Qualifier  Source SleepPhaseStartTimeSec  \\\n",
       "2061                   Poor  device             1703376000   \n",
       "2062                   Poor  device             1703380920   \n",
       "2063                   Poor  device             1703387160   \n",
       "2064                   Poor  device             1703375280   \n",
       "2065                   Poor  device             1703378520   \n",
       "2066                   Poor  device             1703379780   \n",
       "2067                   Poor  device             1703382300   \n",
       "2068                   Poor  device             1703385720   \n",
       "2069                   Poor  device             1703388300   \n",
       "2070                   Poor  device             1703383440   \n",
       "2071                   Poor  device             1703390160   \n",
       "2072                   Poor  device             1703379720   \n",
       "\n",
       "      SleepPhaseEndTimeSec  SleepPhaseStartTime   SleepPhaseEndTime  \\\n",
       "2061            1703378520  2023-12-24 01:00:00 2023-12-24 01:42:00   \n",
       "2062            1703382300  2023-12-24 02:22:00 2023-12-24 02:45:00   \n",
       "2063            1703388300  2023-12-24 04:06:00 2023-12-24 04:25:00   \n",
       "2064            1703376000  2023-12-24 00:48:00 2023-12-24 01:00:00   \n",
       "2065            1703379720  2023-12-24 01:42:00 2023-12-24 02:02:00   \n",
       "2066            1703380920  2023-12-24 02:03:00 2023-12-24 02:22:00   \n",
       "2067            1703383440  2023-12-24 02:45:00 2023-12-24 03:04:00   \n",
       "2068            1703387160  2023-12-24 03:42:00 2023-12-24 04:06:00   \n",
       "2069            1703390160  2023-12-24 04:25:00 2023-12-24 04:56:00   \n",
       "2070            1703384520  2023-12-24 03:04:00 2023-12-24 03:22:00   \n",
       "2071            1703391280  2023-12-24 04:56:00 2023-12-24 05:14:40   \n",
       "2072            1703379780  2023-12-24 02:02:00 2023-12-24 02:03:00   \n",
       "\n",
       "     SleepPhaseDuration  SleepLevel  \n",
       "2061               2520        deep  \n",
       "2062               1380        deep  \n",
       "2063               1140        deep  \n",
       "2064                720       light  \n",
       "2065               1200       light  \n",
       "2066               1140       light  \n",
       "2067               1140       light  \n",
       "2068               1440       light  \n",
       "2069               1860       light  \n",
       "2070               1080         rem  \n",
       "2071               1120         rem  \n",
       "2072                 60       awake  \n",
       "\n",
       "[12 rows x 21 columns]"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_p12_xmas = df_p12_xmas[df_p12_xmas['Source'] == 'device']\n",
    "\n",
    "# Print\n",
    "df_p12_xmas"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "08b94b14-b8f4-4e5c-abc8-9e88b3aa64c6",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Sleep duration:  0 days 04:26:40\n"
     ]
    }
   ],
   "source": [
    "# Get sleep duaration for a given day\n",
    "df_sleep = df_p12_xmas.iloc[0]\n",
    "sleep_duration = df_sleep['End Time (Local)'] - df_sleep['Start Time (Local)']\n",
    "print(\"Sleep duration: \", sleep_duration)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "b4b9b17e-9ac5-42c9-97a4-945c1573f9bc",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Calendar Date (Local)</th>\n",
       "      <th>Start Time (Local)</th>\n",
       "      <th>End Time (Local)</th>\n",
       "      <th>Duration (s)</th>\n",
       "      <th>Duration (m)</th>\n",
       "      <th>Duration (h)</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1289</th>\n",
       "      <td>2023-12-23</td>\n",
       "      <td>2023-12-23 00:52:00</td>\n",
       "      <td>2023-12-23 08:45:00</td>\n",
       "      <td>28380</td>\n",
       "      <td>473.000000</td>\n",
       "      <td>7.883333</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1613</th>\n",
       "      <td>2023-12-23</td>\n",
       "      <td>2023-12-23 05:21:00</td>\n",
       "      <td>2023-12-23 08:45:00</td>\n",
       "      <td>12240</td>\n",
       "      <td>204.000000</td>\n",
       "      <td>3.400000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1745</th>\n",
       "      <td>2023-12-23</td>\n",
       "      <td>2023-12-23 05:56:00</td>\n",
       "      <td>2023-12-23 08:45:00</td>\n",
       "      <td>10140</td>\n",
       "      <td>169.000000</td>\n",
       "      <td>2.816667</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1865</th>\n",
       "      <td>2023-12-23</td>\n",
       "      <td>2023-12-23 06:29:00</td>\n",
       "      <td>2023-12-23 08:45:00</td>\n",
       "      <td>8160</td>\n",
       "      <td>136.000000</td>\n",
       "      <td>2.266667</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1961</th>\n",
       "      <td>2023-12-23</td>\n",
       "      <td>2023-12-23 07:04:00</td>\n",
       "      <td>2023-12-23 08:45:00</td>\n",
       "      <td>6060</td>\n",
       "      <td>101.000000</td>\n",
       "      <td>1.683333</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2033</th>\n",
       "      <td>2023-12-23</td>\n",
       "      <td>2023-12-23 08:21:00</td>\n",
       "      <td>2023-12-23 08:45:00</td>\n",
       "      <td>1440</td>\n",
       "      <td>24.000000</td>\n",
       "      <td>0.400000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2061</th>\n",
       "      <td>2023-12-24</td>\n",
       "      <td>2023-12-24 00:48:00</td>\n",
       "      <td>2023-12-24 05:14:40</td>\n",
       "      <td>16000</td>\n",
       "      <td>266.666667</td>\n",
       "      <td>4.444444</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2073</th>\n",
       "      <td>2023-12-25</td>\n",
       "      <td>2023-12-25 00:31:00</td>\n",
       "      <td>2023-12-25 10:21:00</td>\n",
       "      <td>35400</td>\n",
       "      <td>590.000000</td>\n",
       "      <td>9.833333</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2101</th>\n",
       "      <td>2023-12-26</td>\n",
       "      <td>2023-12-26 01:06:00</td>\n",
       "      <td>2023-12-26 09:38:00</td>\n",
       "      <td>30720</td>\n",
       "      <td>512.000000</td>\n",
       "      <td>8.533333</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2134</th>\n",
       "      <td>2023-12-27</td>\n",
       "      <td>2023-12-27 00:27:00</td>\n",
       "      <td>2023-12-27 07:52:00</td>\n",
       "      <td>26700</td>\n",
       "      <td>445.000000</td>\n",
       "      <td>7.416667</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2170</th>\n",
       "      <td>2023-12-28</td>\n",
       "      <td>2023-12-28 01:13:00</td>\n",
       "      <td>2023-12-28 07:31:00</td>\n",
       "      <td>22680</td>\n",
       "      <td>378.000000</td>\n",
       "      <td>6.300000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2187</th>\n",
       "      <td>2023-12-29</td>\n",
       "      <td>2023-12-29 01:14:00</td>\n",
       "      <td>2023-12-29 08:58:00</td>\n",
       "      <td>27840</td>\n",
       "      <td>464.000000</td>\n",
       "      <td>7.733333</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2212</th>\n",
       "      <td>2023-12-30</td>\n",
       "      <td>2023-12-30 03:16:00</td>\n",
       "      <td>2023-12-30 11:35:00</td>\n",
       "      <td>29940</td>\n",
       "      <td>499.000000</td>\n",
       "      <td>8.316667</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2233</th>\n",
       "      <td>2023-12-31</td>\n",
       "      <td>2023-12-31 02:16:00</td>\n",
       "      <td>2023-12-31 11:40:00</td>\n",
       "      <td>33840</td>\n",
       "      <td>564.000000</td>\n",
       "      <td>9.400000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2266</th>\n",
       "      <td>2024-01-01</td>\n",
       "      <td>2024-01-01 02:20:00</td>\n",
       "      <td>2024-01-01 09:42:00</td>\n",
       "      <td>26520</td>\n",
       "      <td>442.000000</td>\n",
       "      <td>7.366667</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2365</th>\n",
       "      <td>2024-01-03</td>\n",
       "      <td>2024-01-03 02:24:00</td>\n",
       "      <td>2024-01-03 09:01:00</td>\n",
       "      <td>23820</td>\n",
       "      <td>397.000000</td>\n",
       "      <td>6.616667</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2382</th>\n",
       "      <td>2024-01-04</td>\n",
       "      <td>2024-01-04 01:07:00</td>\n",
       "      <td>2024-01-04 06:13:00</td>\n",
       "      <td>18360</td>\n",
       "      <td>306.000000</td>\n",
       "      <td>5.100000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     Calendar Date (Local)  Start Time (Local)    End Time (Local)  \\\n",
       "1289            2023-12-23 2023-12-23 00:52:00 2023-12-23 08:45:00   \n",
       "1613            2023-12-23 2023-12-23 05:21:00 2023-12-23 08:45:00   \n",
       "1745            2023-12-23 2023-12-23 05:56:00 2023-12-23 08:45:00   \n",
       "1865            2023-12-23 2023-12-23 06:29:00 2023-12-23 08:45:00   \n",
       "1961            2023-12-23 2023-12-23 07:04:00 2023-12-23 08:45:00   \n",
       "2033            2023-12-23 2023-12-23 08:21:00 2023-12-23 08:45:00   \n",
       "2061            2023-12-24 2023-12-24 00:48:00 2023-12-24 05:14:40   \n",
       "2073            2023-12-25 2023-12-25 00:31:00 2023-12-25 10:21:00   \n",
       "2101            2023-12-26 2023-12-26 01:06:00 2023-12-26 09:38:00   \n",
       "2134            2023-12-27 2023-12-27 00:27:00 2023-12-27 07:52:00   \n",
       "2170            2023-12-28 2023-12-28 01:13:00 2023-12-28 07:31:00   \n",
       "2187            2023-12-29 2023-12-29 01:14:00 2023-12-29 08:58:00   \n",
       "2212            2023-12-30 2023-12-30 03:16:00 2023-12-30 11:35:00   \n",
       "2233            2023-12-31 2023-12-31 02:16:00 2023-12-31 11:40:00   \n",
       "2266            2024-01-01 2024-01-01 02:20:00 2024-01-01 09:42:00   \n",
       "2365            2024-01-03 2024-01-03 02:24:00 2024-01-03 09:01:00   \n",
       "2382            2024-01-04 2024-01-04 01:07:00 2024-01-04 06:13:00   \n",
       "\n",
       "      Duration (s)  Duration (m)  Duration (h)  \n",
       "1289         28380    473.000000      7.883333  \n",
       "1613         12240    204.000000      3.400000  \n",
       "1745         10140    169.000000      2.816667  \n",
       "1865          8160    136.000000      2.266667  \n",
       "1961          6060    101.000000      1.683333  \n",
       "2033          1440     24.000000      0.400000  \n",
       "2061         16000    266.666667      4.444444  \n",
       "2073         35400    590.000000      9.833333  \n",
       "2101         30720    512.000000      8.533333  \n",
       "2134         26700    445.000000      7.416667  \n",
       "2170         22680    378.000000      6.300000  \n",
       "2187         27840    464.000000      7.733333  \n",
       "2212         29940    499.000000      8.316667  \n",
       "2233         33840    564.000000      9.400000  \n",
       "2266         26520    442.000000      7.366667  \n",
       "2365         23820    397.000000      6.616667  \n",
       "2382         18360    306.000000      5.100000  "
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Create a table of sleep times of a user for all days\n",
    "df_sleeptime = df_p12.loc[:, ['Calendar Date (Local)', 'Start Time (Local)', 'End Time (Local)', 'Duration (s)']]\n",
    "\n",
    "# Remove duplicates\n",
    "df_sleeptime = df_sleeptime.drop_duplicates()\n",
    "\n",
    "# Calculate sleep minutes and hours\n",
    "df_sleeptime['Duration (m)'] = df_sleeptime['Duration (s)'] / 60\n",
    "df_sleeptime['Duration (h)'] = df_sleeptime['Duration (m)'] / 60\n",
    "\n",
    "# Print\n",
    "df_sleeptime"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "76eeeb05-66f3-4117-90cc-9605cacb4f12",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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avjw4WrXrp3at2+vefPm6fTp0xo5cqQkadiwYapVq5ZmzZolSXrooYfUvXt3Pffcc+rfv79WrlyprVu36p///Kc7fwwAAOBBPH4A+tvf/qaff/5ZU6ZMUVZWllq1aqV169YpMjJSkpSZmSkfn/+eyOrcubNWrFihSZMm6fHHH1eDBg307rvvqlmzZuV+zYCAAE2dOrXEt8U8Da3m8KZWybt6aTUHreag1Rye0GozjPJ8VgwAAODy4dHXAAEAAJiBAQgAAFgOAxAAALAcBiAAAGA5DEAAAMByGIAuA+np6frzzz/dnXHZ4e/UXHwAFbA2d//uYgDSuTtFT506VV988YUkKSUlRfHx8br22mv12muvubnuwho1aqQDBw64O6NMx44d09SpUzV06FBNmDBB+/btc3eS3bp167Rz505J5+40PmPGDNWqVUsBAQGqXbu2Zs+e7VG/rAcMGKB//etf+u2339ydckEFBQWaMGGCunXrpjlz5kiSZs6cqZCQEIWGhur222837RupL8b333+vYcOGqV69egoKClLlypXVvHlzTZ482aM6JWnPnj26//771bp1a9WsWVM1a9ZU69atdf/992vPnj3uziu3tLQ0XXvtte7OKBdPa+V316Wx/H2A3njjDY0cOVItWrTQDz/8oBdffFHjx4/XzTffrKKiIr3xxht68803dfPNN7s7VUOGDClx+3vvvadrr71WoaGhkqS1a9dWZFaJgoODlZGRoYiICO3Zs0edO3dWRESEWrdurZ07dyozM1ObN29WixYt3J2qxo0ba/HixeratatmzZql5557Tk888YSaNGmi/fv3a9asWRo/frwee+wxd6dKknx8fOTr66vKlSsrISFBo0aNUtu2bd2dVaLExEStWrVKCQkJ+uijj9SzZ0998MEHevrpp+Xj46MpU6YoPj5e8+fPd3eqPvnkEw0ePFjXX3+9goKCtHbtWt15552qXLmy3n77bRmGoY0bN5b5vYIV5eOPP9agQYPUpk0b9e3b135j2OzsbH322Wfatm2b3nvvPfXt29fNpRf2/fffq02bNiosLHR3ygV5Uiu/uy6d5Qeg1q1ba+TIkRo7dqySk5M1YMAAPfXUUxo/frwk6bnnntM777yjjRs3urn03C++bt26qW7dug7bX3/9dQ0cOFBVqlSRJI+Y/H18fJSVlaUaNWpo0KBB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d9yhEydOlNpWWFio//u//9OAAQOK7QsODlZUVJRq166tjh07as6cOXrllVe0ePFiff755/bjHnvsMTVs2FDBwcGqV6+eJk+erD/++EOSdPjwYfn4+Gjr1q0Ozz1v3jzFxsaqqKhIOTk5Gjp0qCIiIhQUFKQGDRrotddesx971VVXKTo6Wu+8845Tf+8AnMcABMDtli9frurVq2vLli168MEHNXr0aN1yyy3q3LmzUlNT1adPH91xxx06c+aMJOnkyZO69tpr1bp1a23dulXr1q1Tdna2br311lJfY8eOHcrNzVW7du3K1TR8+HBVrVpVa9eutW8LDQ3VsmXLtGfPHr3wwgtavHix5s6dK0mKi4tT7969HQYaSXrttdc0YsQI+fj4aPLkydqzZ48+/vhj7d27VwsXLlT16tUdjm/fvr02bNhQrkYAF48BCIDbtWzZUpMmTVKDBg2UlJSkwMBAVa9eXXfffbcaNGigKVOm6JdfftGOHTsknfsOodatW+vpp59W48aN1bp1ay1dulRffvllqV+smJGRIV9fX9WoUaNcTT4+PmrYsKEOHz5s3zZp0iR17txZcXFxGjBggCZMmKDVq1fb948aNUpvvfWWCgoKJEmpqanauXOnRo4cKUnKzMxU69at1a5dO/vA9NczUtHR0crIyCj33x2Ai8MABMDtWrRoYf+zr6+vrrjiCjVv3ty+LTIyUpL0008/STp3MfOXX35pv6YoJCREjRs3liSlpaWV+Bq//fabAgICLnih9v8yDMPh+FWrVumaa66xv503adIkZWZm2vcPGjRIvr6+9rewli1bpp49eyouLk6SNHr0aK1cuVKtWrXSo48+qk2bNhV7zaCgIPuZLgDmYQAC4HaVKlVyWLfZbA7bzg8hRUVFkqT8/HwNGDBA27dvd1gOHDigbt26lfga1atX15kzZ3T27NlyNRUWFurAgQOqW7euJGnz5s0aOnSorr/+en3wwQf6z3/+oyeeeMLh+fz9/TVs2DC99tprOnv2rFasWKE777zTvj8+Pl4ZGRkaP368jh07pl69emnChAkOr/vrr78qIiKiXI0ALp6fuwMAwFlt2rTR22+/rbi4OPn5le+fsVatWkmS9uzZY/9zWZYvX66cnBzddNNNkqRNmzYpNjZWTzzxhP2Ykt6qGjVqlJo1a6aXX35Zf/75Z7GP0kdERGj48OEaPny4unbtqkceeUTPPvusff+uXbvUo0ePcv1MAC4eZ4AAeJ0xY8bo119/VUJCgr777julpaXpk08+0ciRI1VYWFjiYyIiItSmTRtt3Lix2L4zZ84oKytLR48e1TfffKPHHntM9913n0aPHq2ePXtKkho0aKDMzEytXLlSaWlpmj9/fomf1mrSpIk6duyoxx57TAkJCQoKCrLvmzJlit577z0dPHhQu3fv1gcffKAmTZo4dGzbtk19+vS51L8iABfAAATA60RHR+vrr79WYWGh+vTpo+bNm2vcuHGqUqWKfHxK/2dt1KhRevPNN4ttX7x4sWrWrKkrr7xSQ4YM0Z49e7Rq1Sq9/PLL9mMGDhyo8ePH64EHHlCrVq20adMmTZ48ucTXueuuu3T27FmHt7+kc2+RJSUlqUWLFurWrZt8fX21cuVK+/733ntPderUUdeuXZ39KwHgJG6ECMAyfvvtNzVq1EirVq1Sp06dTHudGTNmaM2aNfZPrZVXx44dNXbsWN1+++0mlQE4jzNAACwjKChIr7/+epk3TLwU+fn52rVrlxYsWKAHH3zQqceeOHFCQ4YMUUJCgiltABxxBggAXGTEiBF66623NGjQIK1YsUK+vr7uTgJQCgYgAABgObwFBgAALIcBCAAAWA4DEAAAsBwGIAAAYDkMQAAAwHIYgAAAgOUwAAEAAMthAAIAAJbz/wCvrLygvjedngAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "df_sleeptime_grouped = df_sleeptime.groupby(df_sleeptime['Calendar Date (Local)'].dt.date)['Duration (h)'].sum()\n",
    "\n",
    "df_sleeptime_grouped.plot(x ='Calendar Date (Local)', y='Duration (h)', kind='bar'),\n",
    "plt.ylim(ymin=0)\n",
    "plt.xlim(xmin=0)\n",
    "plt.ylabel(\"Sleep duration (h)\")\n",
    "plt.xlabel(\"Time (Days)\")\n",
    "\n",
    "plt.show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}