stress_at_work_analysis/test/test_screen_sequences.ipynb

1366 lines
148 KiB
Plaintext
Raw Normal View History

2021-09-13 11:47:19 +02:00
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "c15c9866",
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import re\n",
"import os\n",
"import sys\n",
"\n",
"from tabulate import tabulate\n",
"\n",
"nb_dir = os.path.split(os.getcwd())[0]\n",
"if nb_dir not in sys.path:\n",
" sys.path.append(nb_dir)\n",
"\n",
"import participants.query_db\n",
"from features.screen import *"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "91e8d1f0",
"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>id</th>\n",
" <th>_id</th>\n",
" <th>timestamp</th>\n",
" <th>device_id</th>\n",
" <th>screen_status</th>\n",
" <th>participant_id</th>\n",
" <th>username</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>11923</td>\n",
" <td>1</td>\n",
" <td>1581933295955</td>\n",
" <td>78082f9f-98c2-468d-b4a2-7c835bd812bd</td>\n",
" <td>0</td>\n",
" <td>13</td>\n",
" <td>uploader_20449</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>11960</td>\n",
" <td>2</td>\n",
" <td>1581933741144</td>\n",
" <td>78082f9f-98c2-468d-b4a2-7c835bd812bd</td>\n",
" <td>1</td>\n",
" <td>13</td>\n",
" <td>uploader_20449</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>11961</td>\n",
" <td>3</td>\n",
" <td>1581933741213</td>\n",
" <td>78082f9f-98c2-468d-b4a2-7c835bd812bd</td>\n",
" <td>3</td>\n",
" <td>13</td>\n",
" <td>uploader_20449</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>11969</td>\n",
" <td>4</td>\n",
" <td>1581933914555</td>\n",
" <td>78082f9f-98c2-468d-b4a2-7c835bd812bd</td>\n",
" <td>0</td>\n",
" <td>13</td>\n",
" <td>uploader_20449</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>11970</td>\n",
" <td>5</td>\n",
" <td>1581933967403</td>\n",
" <td>78082f9f-98c2-468d-b4a2-7c835bd812bd</td>\n",
" <td>1</td>\n",
" <td>13</td>\n",
" <td>uploader_20449</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",
" </tr>\n",
" <tr>\n",
" <th>310182</th>\n",
" <td>408335</td>\n",
" <td>9405</td>\n",
" <td>1626151058187</td>\n",
" <td>4b62a655-cbf0-4ac0-a448-06726f45b56a</td>\n",
" <td>2</td>\n",
" <td>90</td>\n",
" <td>uploader_53573</td>\n",
" </tr>\n",
" <tr>\n",
" <th>310183</th>\n",
" <td>408336</td>\n",
" <td>9406</td>\n",
" <td>1626152741826</td>\n",
" <td>4b62a655-cbf0-4ac0-a448-06726f45b56a</td>\n",
" <td>1</td>\n",
" <td>90</td>\n",
" <td>uploader_53573</td>\n",
" </tr>\n",
" <tr>\n",
" <th>310184</th>\n",
" <td>408337</td>\n",
" <td>9407</td>\n",
" <td>1626152742536</td>\n",
" <td>4b62a655-cbf0-4ac0-a448-06726f45b56a</td>\n",
" <td>3</td>\n",
" <td>90</td>\n",
" <td>uploader_53573</td>\n",
" </tr>\n",
" <tr>\n",
" <th>310185</th>\n",
" <td>408338</td>\n",
" <td>9408</td>\n",
" <td>1626152746336</td>\n",
" <td>4b62a655-cbf0-4ac0-a448-06726f45b56a</td>\n",
" <td>0</td>\n",
" <td>90</td>\n",
" <td>uploader_53573</td>\n",
" </tr>\n",
" <tr>\n",
" <th>310186</th>\n",
" <td>408339</td>\n",
" <td>9409</td>\n",
" <td>1626152746350</td>\n",
" <td>4b62a655-cbf0-4ac0-a448-06726f45b56a</td>\n",
" <td>2</td>\n",
" <td>90</td>\n",
" <td>uploader_53573</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>310187 rows × 7 columns</p>\n",
"</div>"
],
"text/plain": [
" id _id timestamp device_id \\\n",
"0 11923 1 1581933295955 78082f9f-98c2-468d-b4a2-7c835bd812bd \n",
"1 11960 2 1581933741144 78082f9f-98c2-468d-b4a2-7c835bd812bd \n",
"2 11961 3 1581933741213 78082f9f-98c2-468d-b4a2-7c835bd812bd \n",
"3 11969 4 1581933914555 78082f9f-98c2-468d-b4a2-7c835bd812bd \n",
"4 11970 5 1581933967403 78082f9f-98c2-468d-b4a2-7c835bd812bd \n",
"... ... ... ... ... \n",
"310182 408335 9405 1626151058187 4b62a655-cbf0-4ac0-a448-06726f45b56a \n",
"310183 408336 9406 1626152741826 4b62a655-cbf0-4ac0-a448-06726f45b56a \n",
"310184 408337 9407 1626152742536 4b62a655-cbf0-4ac0-a448-06726f45b56a \n",
"310185 408338 9408 1626152746336 4b62a655-cbf0-4ac0-a448-06726f45b56a \n",
"310186 408339 9409 1626152746350 4b62a655-cbf0-4ac0-a448-06726f45b56a \n",
"\n",
" screen_status participant_id username \n",
"0 0 13 uploader_20449 \n",
"1 1 13 uploader_20449 \n",
"2 3 13 uploader_20449 \n",
"3 0 13 uploader_20449 \n",
"4 1 13 uploader_20449 \n",
"... ... ... ... \n",
"310182 2 90 uploader_53573 \n",
"310183 1 90 uploader_53573 \n",
"310184 3 90 uploader_53573 \n",
"310185 0 90 uploader_53573 \n",
"310186 2 90 uploader_53573 \n",
"\n",
"[310187 rows x 7 columns]"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"participants_inactive_usernames = participants.query_db.get_usernames()\n",
"df_screen_inactive = get_screen_data(participants_inactive_usernames)\n",
"df_screen_inactive"
]
},
{
"cell_type": "markdown",
"id": "ad829a51",
"metadata": {},
"source": [
"##### Demonstration of the functioning of the function *identify_screen_sequence*"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "b90a0c12",
"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>participant_id</th>\n",
" <th>device_id</th>\n",
2021-09-22 16:34:33 +02:00
" <th>seq_id</th>\n",
2021-09-13 11:47:19 +02:00
" <th>sequence_type</th>\n",
2021-09-22 16:34:33 +02:00
" <th>group</th>\n",
" <th>beginning_abs</th>\n",
" <th>end_abs</th>\n",
" <th>duration_abs</th>\n",
" <th>beginning_rel</th>\n",
" <th>end_rel</th>\n",
" <th>duration_rel</th>\n",
2021-09-13 11:47:19 +02:00
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>75</td>\n",
" <td>01594408-b636-4842-bd0d-f925f10544a9</td>\n",
2021-09-22 16:34:33 +02:00
" <td>0</td>\n",
2021-09-13 11:47:19 +02:00
" <td>unlock</td>\n",
2021-09-22 16:34:33 +02:00
" <td>0</td>\n",
" <td>1615293112969</td>\n",
" <td>1615293173309</td>\n",
" <td>60340</td>\n",
2021-09-13 11:47:19 +02:00
" <td>1615293112969</td>\n",
" <td>1615293173309</td>\n",
" <td>60340</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>75</td>\n",
" <td>01594408-b636-4842-bd0d-f925f10544a9</td>\n",
2021-09-22 16:34:33 +02:00
" <td>1</td>\n",
2021-09-13 11:47:19 +02:00
" <td>unlock</td>\n",
2021-09-22 16:34:33 +02:00
" <td>0</td>\n",
" <td>1615293658662</td>\n",
" <td>1615293690054</td>\n",
" <td>31392</td>\n",
2021-09-13 11:47:19 +02:00
" <td>1615293658662</td>\n",
" <td>1615293690054</td>\n",
" <td>31392</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>75</td>\n",
" <td>01594408-b636-4842-bd0d-f925f10544a9</td>\n",
2021-09-22 16:34:33 +02:00
" <td>2</td>\n",
2021-09-13 11:47:19 +02:00
" <td>unlock</td>\n",
2021-09-22 16:34:33 +02:00
" <td>0</td>\n",
" <td>1615295718916</td>\n",
" <td>1615295758055</td>\n",
" <td>39139</td>\n",
2021-09-13 11:47:19 +02:00
" <td>1615295718916</td>\n",
" <td>1615295758055</td>\n",
" <td>39139</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>75</td>\n",
" <td>01594408-b636-4842-bd0d-f925f10544a9</td>\n",
2021-09-22 16:34:33 +02:00
" <td>3</td>\n",
2021-09-13 11:47:19 +02:00
" <td>unlock</td>\n",
2021-09-22 16:34:33 +02:00
" <td>0</td>\n",
" <td>1615298325519</td>\n",
" <td>1615298437787</td>\n",
" <td>112268</td>\n",
2021-09-13 11:47:19 +02:00
" <td>1615298325519</td>\n",
" <td>1615298437787</td>\n",
" <td>112268</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>75</td>\n",
" <td>01594408-b636-4842-bd0d-f925f10544a9</td>\n",
2021-09-22 16:34:33 +02:00
" <td>4</td>\n",
2021-09-13 11:47:19 +02:00
" <td>unlock</td>\n",
2021-09-22 16:34:33 +02:00
" <td>0</td>\n",
" <td>1615300829591</td>\n",
" <td>1615302061324</td>\n",
" <td>1231733</td>\n",
2021-09-13 11:47:19 +02:00
" <td>1615300829591</td>\n",
" <td>1615302061324</td>\n",
" <td>1231733</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",
2021-09-22 16:34:33 +02:00
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
2021-09-13 11:47:19 +02:00
" </tr>\n",
" <tr>\n",
" <th>84061</th>\n",
" <td>55</td>\n",
" <td>ffd2bd86-e427-4e58-911b-f803898be134</td>\n",
2021-09-22 16:34:33 +02:00
" <td>84061</td>\n",
2021-09-13 11:47:19 +02:00
" <td>check</td>\n",
2021-09-22 16:34:33 +02:00
" <td>0</td>\n",
" <td>1615541984037</td>\n",
" <td>1615541986753</td>\n",
" <td>2716</td>\n",
2021-09-13 11:47:19 +02:00
" <td>1615541984037</td>\n",
" <td>1615541986753</td>\n",
" <td>2716</td>\n",
" </tr>\n",
" <tr>\n",
" <th>84062</th>\n",
" <td>55</td>\n",
" <td>ffd2bd86-e427-4e58-911b-f803898be134</td>\n",
2021-09-22 16:34:33 +02:00
" <td>84062</td>\n",
2021-09-13 11:47:19 +02:00
" <td>check</td>\n",
2021-09-22 16:34:33 +02:00
" <td>0</td>\n",
" <td>1615542689686</td>\n",
" <td>1615542692116</td>\n",
" <td>2430</td>\n",
2021-09-13 11:47:19 +02:00
" <td>1615542689686</td>\n",
" <td>1615542692116</td>\n",
" <td>2430</td>\n",
" </tr>\n",
" <tr>\n",
" <th>84063</th>\n",
" <td>55</td>\n",
" <td>ffd2bd86-e427-4e58-911b-f803898be134</td>\n",
2021-09-22 16:34:33 +02:00
" <td>84063</td>\n",
2021-09-13 11:47:19 +02:00
" <td>check</td>\n",
2021-09-22 16:34:33 +02:00
" <td>0</td>\n",
" <td>1615542812361</td>\n",
" <td>1615542814928</td>\n",
" <td>2567</td>\n",
2021-09-13 11:47:19 +02:00
" <td>1615542812361</td>\n",
" <td>1615542814928</td>\n",
" <td>2567</td>\n",
" </tr>\n",
" <tr>\n",
" <th>84064</th>\n",
" <td>55</td>\n",
" <td>ffd2bd86-e427-4e58-911b-f803898be134</td>\n",
2021-09-22 16:34:33 +02:00
" <td>84064</td>\n",
2021-09-13 11:47:19 +02:00
" <td>check</td>\n",
2021-09-22 16:34:33 +02:00
" <td>0</td>\n",
" <td>1615542921422</td>\n",
" <td>1615542924725</td>\n",
" <td>3303</td>\n",
2021-09-13 11:47:19 +02:00
" <td>1615542921422</td>\n",
" <td>1615542924725</td>\n",
" <td>3303</td>\n",
" </tr>\n",
" <tr>\n",
" <th>84065</th>\n",
" <td>55</td>\n",
" <td>ffd2bd86-e427-4e58-911b-f803898be134</td>\n",
2021-09-22 16:34:33 +02:00
" <td>84065</td>\n",
2021-09-13 11:47:19 +02:00
" <td>check</td>\n",
2021-09-22 16:34:33 +02:00
" <td>0</td>\n",
" <td>1615543040302</td>\n",
" <td>1615543043454</td>\n",
" <td>3152</td>\n",
2021-09-13 11:47:19 +02:00
" <td>1615543040302</td>\n",
" <td>1615543043454</td>\n",
" <td>3152</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
2021-09-22 16:34:33 +02:00
"<p>84066 rows × 11 columns</p>\n",
2021-09-13 11:47:19 +02:00
"</div>"
],
"text/plain": [
2021-09-22 16:34:33 +02:00
" participant_id device_id seq_id \\\n",
"0 75 01594408-b636-4842-bd0d-f925f10544a9 0 \n",
"1 75 01594408-b636-4842-bd0d-f925f10544a9 1 \n",
"2 75 01594408-b636-4842-bd0d-f925f10544a9 2 \n",
"3 75 01594408-b636-4842-bd0d-f925f10544a9 3 \n",
"4 75 01594408-b636-4842-bd0d-f925f10544a9 4 \n",
"... ... ... ... \n",
"84061 55 ffd2bd86-e427-4e58-911b-f803898be134 84061 \n",
"84062 55 ffd2bd86-e427-4e58-911b-f803898be134 84062 \n",
"84063 55 ffd2bd86-e427-4e58-911b-f803898be134 84063 \n",
"84064 55 ffd2bd86-e427-4e58-911b-f803898be134 84064 \n",
"84065 55 ffd2bd86-e427-4e58-911b-f803898be134 84065 \n",
"\n",
" sequence_type group beginning_abs end_abs duration_abs \\\n",
"0 unlock 0 1615293112969 1615293173309 60340 \n",
"1 unlock 0 1615293658662 1615293690054 31392 \n",
"2 unlock 0 1615295718916 1615295758055 39139 \n",
"3 unlock 0 1615298325519 1615298437787 112268 \n",
"4 unlock 0 1615300829591 1615302061324 1231733 \n",
"... ... ... ... ... ... \n",
"84061 check 0 1615541984037 1615541986753 2716 \n",
"84062 check 0 1615542689686 1615542692116 2430 \n",
"84063 check 0 1615542812361 1615542814928 2567 \n",
"84064 check 0 1615542921422 1615542924725 3303 \n",
"84065 check 0 1615543040302 1615543043454 3152 \n",
2021-09-13 11:47:19 +02:00
"\n",
2021-09-22 16:34:33 +02:00
" beginning_rel end_rel duration_rel \n",
"0 1615293112969 1615293173309 60340 \n",
"1 1615293658662 1615293690054 31392 \n",
"2 1615295718916 1615295758055 39139 \n",
"3 1615298325519 1615298437787 112268 \n",
"4 1615300829591 1615302061324 1231733 \n",
"... ... ... ... \n",
"84061 1615541984037 1615541986753 2716 \n",
"84062 1615542689686 1615542692116 2430 \n",
"84063 1615542812361 1615542814928 2567 \n",
"84064 1615542921422 1615542924725 3303 \n",
"84065 1615543040302 1615543043454 3152 \n",
2021-09-13 11:47:19 +02:00
"\n",
2021-09-22 16:34:33 +02:00
"[84066 rows x 11 columns]"
2021-09-13 11:47:19 +02:00
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sequences = identify_screen_sequence(df_screen_inactive)\n",
"sequences"
]
},
{
"cell_type": "code",
"execution_count": 4,
2021-09-22 16:34:33 +02:00
"id": "14cbf7ba",
"metadata": {
"scrolled": true
},
2021-09-13 11:47:19 +02:00
"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>participant_id</th>\n",
2021-09-22 16:34:33 +02:00
" <th>device_id</th>\n",
" <th>seq_id</th>\n",
" <th>sequence_type</th>\n",
" <th>group</th>\n",
" <th>beginning_abs</th>\n",
" <th>end_abs</th>\n",
" <th>duration_abs</th>\n",
" <th>beginning_rel</th>\n",
" <th>end_rel</th>\n",
" <th>duration_rel</th>\n",
2021-09-13 11:47:19 +02:00
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
2021-09-22 16:34:33 +02:00
" <th>0</th>\n",
" <td>75</td>\n",
2021-09-13 11:47:19 +02:00
" <td>01594408-b636-4842-bd0d-f925f10544a9</td>\n",
" <td>0</td>\n",
2021-09-22 16:34:33 +02:00
" <td>unlock</td>\n",
" <td>2021-03-09</td>\n",
" <td>1615293112969</td>\n",
" <td>1615293173309</td>\n",
" <td>60340</td>\n",
" <td>1615293112969</td>\n",
" <td>1615293173309</td>\n",
" <td>60340</td>\n",
2021-09-13 11:47:19 +02:00
" </tr>\n",
" <tr>\n",
2021-09-22 16:34:33 +02:00
" <th>1</th>\n",
" <td>75</td>\n",
2021-09-13 11:47:19 +02:00
" <td>01594408-b636-4842-bd0d-f925f10544a9</td>\n",
" <td>1</td>\n",
2021-09-22 16:34:33 +02:00
" <td>unlock</td>\n",
" <td>2021-03-09</td>\n",
" <td>1615293658662</td>\n",
" <td>1615293690054</td>\n",
" <td>31392</td>\n",
" <td>1615293658662</td>\n",
" <td>1615293690054</td>\n",
" <td>31392</td>\n",
2021-09-13 11:47:19 +02:00
" </tr>\n",
" <tr>\n",
2021-09-22 16:34:33 +02:00
" <th>2</th>\n",
2021-09-13 11:47:19 +02:00
" <td>75</td>\n",
2021-09-22 16:34:33 +02:00
" <td>01594408-b636-4842-bd0d-f925f10544a9</td>\n",
" <td>2</td>\n",
" <td>unlock</td>\n",
" <td>2021-03-09</td>\n",
" <td>1615295718916</td>\n",
" <td>1615295758055</td>\n",
" <td>39139</td>\n",
" <td>1615295718916</td>\n",
" <td>1615295758055</td>\n",
" <td>39139</td>\n",
2021-09-13 11:47:19 +02:00
" </tr>\n",
" <tr>\n",
2021-09-22 16:34:33 +02:00
" <th>3</th>\n",
2021-09-13 11:47:19 +02:00
" <td>75</td>\n",
2021-09-22 16:34:33 +02:00
" <td>01594408-b636-4842-bd0d-f925f10544a9</td>\n",
" <td>3</td>\n",
" <td>unlock</td>\n",
" <td>2021-03-09</td>\n",
" <td>1615298325519</td>\n",
" <td>1615298437787</td>\n",
" <td>112268</td>\n",
" <td>1615298325519</td>\n",
" <td>1615298437787</td>\n",
" <td>112268</td>\n",
2021-09-13 11:47:19 +02:00
" </tr>\n",
" <tr>\n",
2021-09-22 16:34:33 +02:00
" <th>4</th>\n",
2021-09-13 11:47:19 +02:00
" <td>75</td>\n",
2021-09-22 16:34:33 +02:00
" <td>01594408-b636-4842-bd0d-f925f10544a9</td>\n",
" <td>4</td>\n",
" <td>unlock</td>\n",
" <td>2021-03-09</td>\n",
" <td>1615300829591</td>\n",
" <td>1615302061324</td>\n",
" <td>1231733</td>\n",
" <td>1615300829591</td>\n",
" <td>1615302061324</td>\n",
" <td>1231733</td>\n",
2021-09-13 11:47:19 +02:00
" </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",
2021-09-22 16:34:33 +02:00
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
2021-09-13 11:47:19 +02:00
" </tr>\n",
" <tr>\n",
2021-09-22 16:34:33 +02:00
" <th>84252</th>\n",
" <td>55</td>\n",
" <td>ffd2bd86-e427-4e58-911b-f803898be134</td>\n",
" <td>84061</td>\n",
" <td>check</td>\n",
" <td>2021-03-12</td>\n",
" <td>1615541984037</td>\n",
" <td>1615541986753</td>\n",
" <td>2716</td>\n",
" <td>1615541984037</td>\n",
" <td>1615541986753</td>\n",
" <td>2716</td>\n",
2021-09-13 11:47:19 +02:00
" </tr>\n",
" <tr>\n",
2021-09-22 16:34:33 +02:00
" <th>84253</th>\n",
" <td>55</td>\n",
" <td>ffd2bd86-e427-4e58-911b-f803898be134</td>\n",
" <td>84062</td>\n",
" <td>check</td>\n",
" <td>2021-03-12</td>\n",
" <td>1615542689686</td>\n",
" <td>1615542692116</td>\n",
" <td>2430</td>\n",
" <td>1615542689686</td>\n",
" <td>1615542692116</td>\n",
" <td>2430</td>\n",
2021-09-13 11:47:19 +02:00
" </tr>\n",
" <tr>\n",
2021-09-22 16:34:33 +02:00
" <th>84254</th>\n",
" <td>55</td>\n",
" <td>ffd2bd86-e427-4e58-911b-f803898be134</td>\n",
" <td>84063</td>\n",
" <td>check</td>\n",
" <td>2021-03-12</td>\n",
" <td>1615542812361</td>\n",
" <td>1615542814928</td>\n",
" <td>2567</td>\n",
" <td>1615542812361</td>\n",
" <td>1615542814928</td>\n",
" <td>2567</td>\n",
2021-09-13 11:47:19 +02:00
" </tr>\n",
" <tr>\n",
2021-09-22 16:34:33 +02:00
" <th>84255</th>\n",
" <td>55</td>\n",
" <td>ffd2bd86-e427-4e58-911b-f803898be134</td>\n",
" <td>84064</td>\n",
" <td>check</td>\n",
" <td>2021-03-12</td>\n",
" <td>1615542921422</td>\n",
" <td>1615542924725</td>\n",
" <td>3303</td>\n",
" <td>1615542921422</td>\n",
" <td>1615542924725</td>\n",
" <td>3303</td>\n",
2021-09-13 11:47:19 +02:00
" </tr>\n",
" <tr>\n",
2021-09-22 16:34:33 +02:00
" <th>84256</th>\n",
" <td>55</td>\n",
" <td>ffd2bd86-e427-4e58-911b-f803898be134</td>\n",
" <td>84065</td>\n",
" <td>check</td>\n",
" <td>2021-03-12</td>\n",
" <td>1615543040302</td>\n",
" <td>1615543043454</td>\n",
" <td>3152</td>\n",
" <td>1615543040302</td>\n",
" <td>1615543043454</td>\n",
" <td>3152</td>\n",
2021-09-13 11:47:19 +02:00
" </tr>\n",
" </tbody>\n",
"</table>\n",
2021-09-22 16:34:33 +02:00
"<p>84257 rows × 11 columns</p>\n",
2021-09-13 11:47:19 +02:00
"</div>"
],
"text/plain": [
2021-09-22 16:34:33 +02:00
" participant_id device_id seq_id \\\n",
"0 75 01594408-b636-4842-bd0d-f925f10544a9 0 \n",
"1 75 01594408-b636-4842-bd0d-f925f10544a9 1 \n",
"2 75 01594408-b636-4842-bd0d-f925f10544a9 2 \n",
"3 75 01594408-b636-4842-bd0d-f925f10544a9 3 \n",
"4 75 01594408-b636-4842-bd0d-f925f10544a9 4 \n",
"... ... ... ... \n",
"84252 55 ffd2bd86-e427-4e58-911b-f803898be134 84061 \n",
"84253 55 ffd2bd86-e427-4e58-911b-f803898be134 84062 \n",
"84254 55 ffd2bd86-e427-4e58-911b-f803898be134 84063 \n",
"84255 55 ffd2bd86-e427-4e58-911b-f803898be134 84064 \n",
"84256 55 ffd2bd86-e427-4e58-911b-f803898be134 84065 \n",
2021-09-13 11:47:19 +02:00
"\n",
2021-09-22 16:34:33 +02:00
" sequence_type group beginning_abs end_abs duration_abs \\\n",
"0 unlock 2021-03-09 1615293112969 1615293173309 60340 \n",
"1 unlock 2021-03-09 1615293658662 1615293690054 31392 \n",
"2 unlock 2021-03-09 1615295718916 1615295758055 39139 \n",
"3 unlock 2021-03-09 1615298325519 1615298437787 112268 \n",
"4 unlock 2021-03-09 1615300829591 1615302061324 1231733 \n",
"... ... ... ... ... ... \n",
"84252 check 2021-03-12 1615541984037 1615541986753 2716 \n",
"84253 check 2021-03-12 1615542689686 1615542692116 2430 \n",
"84254 check 2021-03-12 1615542812361 1615542814928 2567 \n",
"84255 check 2021-03-12 1615542921422 1615542924725 3303 \n",
"84256 check 2021-03-12 1615543040302 1615543043454 3152 \n",
2021-09-13 11:47:19 +02:00
"\n",
2021-09-22 16:34:33 +02:00
" beginning_rel end_rel duration_rel \n",
"0 1615293112969 1615293173309 60340 \n",
"1 1615293658662 1615293690054 31392 \n",
"2 1615295718916 1615295758055 39139 \n",
"3 1615298325519 1615298437787 112268 \n",
"4 1615300829591 1615302061324 1231733 \n",
"... ... ... ... \n",
"84252 1615541984037 1615541986753 2716 \n",
"84253 1615542689686 1615542692116 2430 \n",
"84254 1615542812361 1615542814928 2567 \n",
"84255 1615542921422 1615542924725 3303 \n",
"84256 1615543040302 1615543043454 3152 \n",
"\n",
"[84257 rows x 11 columns]"
2021-09-13 11:47:19 +02:00
]
},
2021-09-22 16:34:33 +02:00
"execution_count": 4,
2021-09-13 11:47:19 +02:00
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
2021-09-22 16:34:33 +02:00
"df_screen_inactive[\"group\"] = pd.to_datetime(df_screen_inactive.timestamp, unit=\"ms\").dt.date\n",
"sequences = identify_screen_sequence(df_screen_inactive, grouping=True)\n",
"sequences"
2021-09-13 11:47:19 +02:00
]
},
{
"cell_type": "code",
2021-09-22 16:34:33 +02:00
"execution_count": 5,
"id": "f840c89c",
2021-09-13 11:47:19 +02:00
"metadata": {},
"outputs": [],
"source": [
2021-09-22 16:34:33 +02:00
"df_nokia = get_screen_data([\"nokia_0000003\"])"
2021-09-13 11:47:19 +02:00
]
},
{
"cell_type": "code",
2021-09-22 16:34:33 +02:00
"execution_count": 6,
"id": "9831f485",
"metadata": {
"scrolled": false
},
2021-09-13 11:47:19 +02:00
"outputs": [
{
2021-09-22 16:34:33 +02:00
"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>participant_id</th>\n",
" <th>device_id</th>\n",
" <th>seq_id</th>\n",
" <th>sequence_type</th>\n",
" <th>group</th>\n",
" <th>beginning_abs</th>\n",
" <th>end_abs</th>\n",
" <th>duration_abs</th>\n",
" <th>beginning_rel</th>\n",
" <th>end_rel</th>\n",
" <th>duration_rel</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>21</td>\n",
" <td>049df3f8-8541-4cf5-af2b-83f6b3f0cf4b</td>\n",
" <td>0</td>\n",
" <td>unlock</td>\n",
" <td>0</td>\n",
" <td>1601289095653</td>\n",
" <td>1601289128539</td>\n",
" <td>32886</td>\n",
" <td>1601289095653</td>\n",
" <td>1601289128539</td>\n",
" <td>32886</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>21</td>\n",
" <td>049df3f8-8541-4cf5-af2b-83f6b3f0cf4b</td>\n",
" <td>1</td>\n",
" <td>unlock</td>\n",
" <td>0</td>\n",
" <td>1601297553835</td>\n",
" <td>1601297662588</td>\n",
" <td>108753</td>\n",
" <td>1601297553835</td>\n",
" <td>1601297662588</td>\n",
" <td>108753</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>21</td>\n",
" <td>049df3f8-8541-4cf5-af2b-83f6b3f0cf4b</td>\n",
" <td>2</td>\n",
" <td>unlock</td>\n",
" <td>0</td>\n",
" <td>1601299166958</td>\n",
" <td>1601299204181</td>\n",
" <td>37223</td>\n",
" <td>1601299166958</td>\n",
" <td>1601299204181</td>\n",
" <td>37223</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>21</td>\n",
" <td>049df3f8-8541-4cf5-af2b-83f6b3f0cf4b</td>\n",
" <td>3</td>\n",
" <td>unlock</td>\n",
" <td>0</td>\n",
" <td>1602509223934</td>\n",
" <td>1602509236271</td>\n",
" <td>12337</td>\n",
" <td>1602509223934</td>\n",
" <td>1602509236271</td>\n",
" <td>12337</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>21</td>\n",
" <td>049df3f8-8541-4cf5-af2b-83f6b3f0cf4b</td>\n",
" <td>4</td>\n",
" <td>unlock</td>\n",
" <td>0</td>\n",
" <td>1602509468322</td>\n",
" <td>1602509728170</td>\n",
" <td>259848</td>\n",
" <td>1602509468322</td>\n",
" <td>1602509728170</td>\n",
" <td>259848</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>21</td>\n",
" <td>049df3f8-8541-4cf5-af2b-83f6b3f0cf4b</td>\n",
" <td>5</td>\n",
" <td>unlock</td>\n",
" <td>0</td>\n",
" <td>1602513572437</td>\n",
" <td>1602513610713</td>\n",
" <td>38276</td>\n",
" <td>1602513572437</td>\n",
" <td>1602513610713</td>\n",
" <td>38276</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>21</td>\n",
" <td>049df3f8-8541-4cf5-af2b-83f6b3f0cf4b</td>\n",
" <td>6</td>\n",
" <td>unlock</td>\n",
" <td>0</td>\n",
" <td>1602600340397</td>\n",
" <td>1602600772725</td>\n",
" <td>432328</td>\n",
" <td>1602600340397</td>\n",
" <td>1602600772725</td>\n",
" <td>432328</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>21</td>\n",
" <td>049df3f8-8541-4cf5-af2b-83f6b3f0cf4b</td>\n",
" <td>7</td>\n",
" <td>unlock</td>\n",
" <td>0</td>\n",
" <td>1602855510176</td>\n",
" <td>1602856582255</td>\n",
" <td>1072079</td>\n",
" <td>1602855510176</td>\n",
" <td>1602856582255</td>\n",
" <td>1072079</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>21</td>\n",
" <td>049df3f8-8541-4cf5-af2b-83f6b3f0cf4b</td>\n",
" <td>8</td>\n",
" <td>unlock</td>\n",
" <td>0</td>\n",
" <td>1602866239691</td>\n",
" <td>1603356614694</td>\n",
" <td>490375003</td>\n",
" <td>1602866239691</td>\n",
" <td>1603356614694</td>\n",
" <td>490375003</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>21</td>\n",
" <td>049df3f8-8541-4cf5-af2b-83f6b3f0cf4b</td>\n",
" <td>9</td>\n",
" <td>unlock</td>\n",
" <td>0</td>\n",
" <td>1603358436594</td>\n",
" <td>1603358443477</td>\n",
" <td>6883</td>\n",
" <td>1603358436594</td>\n",
" <td>1603358443477</td>\n",
" <td>6883</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" participant_id device_id seq_id sequence_type \\\n",
"0 21 049df3f8-8541-4cf5-af2b-83f6b3f0cf4b 0 unlock \n",
"1 21 049df3f8-8541-4cf5-af2b-83f6b3f0cf4b 1 unlock \n",
"2 21 049df3f8-8541-4cf5-af2b-83f6b3f0cf4b 2 unlock \n",
"3 21 049df3f8-8541-4cf5-af2b-83f6b3f0cf4b 3 unlock \n",
"4 21 049df3f8-8541-4cf5-af2b-83f6b3f0cf4b 4 unlock \n",
"5 21 049df3f8-8541-4cf5-af2b-83f6b3f0cf4b 5 unlock \n",
"6 21 049df3f8-8541-4cf5-af2b-83f6b3f0cf4b 6 unlock \n",
"7 21 049df3f8-8541-4cf5-af2b-83f6b3f0cf4b 7 unlock \n",
"8 21 049df3f8-8541-4cf5-af2b-83f6b3f0cf4b 8 unlock \n",
"9 21 049df3f8-8541-4cf5-af2b-83f6b3f0cf4b 9 unlock \n",
"\n",
" group beginning_abs end_abs duration_abs beginning_rel \\\n",
"0 0 1601289095653 1601289128539 32886 1601289095653 \n",
"1 0 1601297553835 1601297662588 108753 1601297553835 \n",
"2 0 1601299166958 1601299204181 37223 1601299166958 \n",
"3 0 1602509223934 1602509236271 12337 1602509223934 \n",
"4 0 1602509468322 1602509728170 259848 1602509468322 \n",
"5 0 1602513572437 1602513610713 38276 1602513572437 \n",
"6 0 1602600340397 1602600772725 432328 1602600340397 \n",
"7 0 1602855510176 1602856582255 1072079 1602855510176 \n",
"8 0 1602866239691 1603356614694 490375003 1602866239691 \n",
"9 0 1603358436594 1603358443477 6883 1603358436594 \n",
"\n",
" end_rel duration_rel \n",
"0 1601289128539 32886 \n",
"1 1601297662588 108753 \n",
"2 1601299204181 37223 \n",
"3 1602509236271 12337 \n",
"4 1602509728170 259848 \n",
"5 1602513610713 38276 \n",
"6 1602600772725 432328 \n",
"7 1602856582255 1072079 \n",
"8 1603356614694 490375003 \n",
"9 1603358443477 6883 "
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
2021-09-13 11:47:19 +02:00
}
],
"source": [
2021-09-22 16:34:33 +02:00
"sequences = identify_screen_sequence(df_nokia)\n",
"sequences.head(10)"
2021-09-13 11:47:19 +02:00
]
},
{
"cell_type": "code",
2021-09-22 16:34:33 +02:00
"execution_count": 7,
"id": "8f5567c1",
"metadata": {},
2021-09-13 11:47:19 +02:00
"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>participant_id</th>\n",
2021-09-22 16:34:33 +02:00
" <th>device_id</th>\n",
" <th>seq_id</th>\n",
" <th>sequence_type</th>\n",
" <th>group</th>\n",
" <th>beginning_abs</th>\n",
" <th>end_abs</th>\n",
" <th>duration_abs</th>\n",
" <th>beginning_rel</th>\n",
" <th>end_rel</th>\n",
" <th>duration_rel</th>\n",
2021-09-13 11:47:19 +02:00
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
2021-09-22 16:34:33 +02:00
" <th>0</th>\n",
" <td>21</td>\n",
" <td>049df3f8-8541-4cf5-af2b-83f6b3f0cf4b</td>\n",
" <td>0</td>\n",
" <td>unlock</td>\n",
" <td>2020-09-28</td>\n",
" <td>1601289095653</td>\n",
" <td>1601289128539</td>\n",
" <td>32886</td>\n",
" <td>1601289095653</td>\n",
" <td>1601289128539</td>\n",
" <td>32886</td>\n",
2021-09-13 11:47:19 +02:00
" </tr>\n",
" <tr>\n",
2021-09-22 16:34:33 +02:00
" <th>1</th>\n",
" <td>21</td>\n",
" <td>049df3f8-8541-4cf5-af2b-83f6b3f0cf4b</td>\n",
" <td>1</td>\n",
" <td>unlock</td>\n",
" <td>2020-09-28</td>\n",
" <td>1601297553835</td>\n",
" <td>1601297662588</td>\n",
" <td>108753</td>\n",
" <td>1601297553835</td>\n",
" <td>1601297662588</td>\n",
" <td>108753</td>\n",
2021-09-13 11:47:19 +02:00
" </tr>\n",
" <tr>\n",
2021-09-22 16:34:33 +02:00
" <th>2</th>\n",
" <td>21</td>\n",
" <td>049df3f8-8541-4cf5-af2b-83f6b3f0cf4b</td>\n",
" <td>2</td>\n",
" <td>unlock</td>\n",
" <td>2020-09-28</td>\n",
" <td>1601299166958</td>\n",
" <td>1601299204181</td>\n",
" <td>37223</td>\n",
" <td>1601299166958</td>\n",
" <td>1601299204181</td>\n",
" <td>37223</td>\n",
2021-09-13 11:47:19 +02:00
" </tr>\n",
" <tr>\n",
2021-09-22 16:34:33 +02:00
" <th>3</th>\n",
" <td>21</td>\n",
" <td>049df3f8-8541-4cf5-af2b-83f6b3f0cf4b</td>\n",
" <td>3</td>\n",
" <td>unlock</td>\n",
" <td>2020-10-12</td>\n",
" <td>1602509223934</td>\n",
" <td>1602509236271</td>\n",
" <td>12337</td>\n",
" <td>1602509223934</td>\n",
" <td>1602509236271</td>\n",
" <td>12337</td>\n",
2021-09-13 11:47:19 +02:00
" </tr>\n",
" <tr>\n",
2021-09-22 16:34:33 +02:00
" <th>4</th>\n",
" <td>21</td>\n",
" <td>049df3f8-8541-4cf5-af2b-83f6b3f0cf4b</td>\n",
" <td>4</td>\n",
" <td>unlock</td>\n",
" <td>2020-10-12</td>\n",
" <td>1602509468322</td>\n",
" <td>1602509728170</td>\n",
" <td>259848</td>\n",
" <td>1602509468322</td>\n",
" <td>1602509728170</td>\n",
" <td>259848</td>\n",
2021-09-13 11:47:19 +02:00
" </tr>\n",
" <tr>\n",
2021-09-22 16:34:33 +02:00
" <th>5</th>\n",
" <td>21</td>\n",
" <td>049df3f8-8541-4cf5-af2b-83f6b3f0cf4b</td>\n",
" <td>5</td>\n",
" <td>unlock</td>\n",
" <td>2020-10-12</td>\n",
" <td>1602513572437</td>\n",
" <td>1602513610713</td>\n",
" <td>38276</td>\n",
" <td>1602513572437</td>\n",
" <td>1602513610713</td>\n",
" <td>38276</td>\n",
2021-09-13 11:47:19 +02:00
" </tr>\n",
" <tr>\n",
2021-09-22 16:34:33 +02:00
" <th>6</th>\n",
" <td>21</td>\n",
" <td>049df3f8-8541-4cf5-af2b-83f6b3f0cf4b</td>\n",
" <td>6</td>\n",
" <td>unlock</td>\n",
" <td>2020-10-13</td>\n",
" <td>1602600340397</td>\n",
" <td>1602600772725</td>\n",
" <td>432328</td>\n",
" <td>1602600340397</td>\n",
" <td>1602600772725</td>\n",
" <td>432328</td>\n",
2021-09-13 11:47:19 +02:00
" </tr>\n",
" <tr>\n",
2021-09-22 16:34:33 +02:00
" <th>7</th>\n",
" <td>21</td>\n",
" <td>049df3f8-8541-4cf5-af2b-83f6b3f0cf4b</td>\n",
" <td>7</td>\n",
" <td>unlock</td>\n",
" <td>2020-10-16</td>\n",
" <td>1602855510176</td>\n",
" <td>1602856582255</td>\n",
" <td>1072079</td>\n",
" <td>1602855510176</td>\n",
" <td>1602856582255</td>\n",
" <td>1072079</td>\n",
2021-09-13 11:47:19 +02:00
" </tr>\n",
" <tr>\n",
2021-09-22 16:34:33 +02:00
" <th>8</th>\n",
" <td>21</td>\n",
" <td>049df3f8-8541-4cf5-af2b-83f6b3f0cf4b</td>\n",
" <td>8</td>\n",
" <td>unlock</td>\n",
" <td>2020-10-16</td>\n",
" <td>1602866239691</td>\n",
" <td>1603356614694</td>\n",
" <td>490375003</td>\n",
" <td>1602866239691</td>\n",
" <td>1602866242667</td>\n",
" <td>2976</td>\n",
2021-09-13 11:47:19 +02:00
" </tr>\n",
" <tr>\n",
2021-09-22 16:34:33 +02:00
" <th>9</th>\n",
" <td>21</td>\n",
" <td>049df3f8-8541-4cf5-af2b-83f6b3f0cf4b</td>\n",
" <td>8</td>\n",
" <td>unlock</td>\n",
" <td>2020-10-22</td>\n",
" <td>1602866239691</td>\n",
" <td>1603356614694</td>\n",
" <td>490375003</td>\n",
" <td>1603356614649</td>\n",
" <td>1603356614694</td>\n",
" <td>45</td>\n",
2021-09-13 11:47:19 +02:00
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
2021-09-22 16:34:33 +02:00
" participant_id device_id seq_id sequence_type \\\n",
"0 21 049df3f8-8541-4cf5-af2b-83f6b3f0cf4b 0 unlock \n",
"1 21 049df3f8-8541-4cf5-af2b-83f6b3f0cf4b 1 unlock \n",
"2 21 049df3f8-8541-4cf5-af2b-83f6b3f0cf4b 2 unlock \n",
"3 21 049df3f8-8541-4cf5-af2b-83f6b3f0cf4b 3 unlock \n",
"4 21 049df3f8-8541-4cf5-af2b-83f6b3f0cf4b 4 unlock \n",
"5 21 049df3f8-8541-4cf5-af2b-83f6b3f0cf4b 5 unlock \n",
"6 21 049df3f8-8541-4cf5-af2b-83f6b3f0cf4b 6 unlock \n",
"7 21 049df3f8-8541-4cf5-af2b-83f6b3f0cf4b 7 unlock \n",
"8 21 049df3f8-8541-4cf5-af2b-83f6b3f0cf4b 8 unlock \n",
"9 21 049df3f8-8541-4cf5-af2b-83f6b3f0cf4b 8 unlock \n",
2021-09-13 11:47:19 +02:00
"\n",
2021-09-22 16:34:33 +02:00
" group beginning_abs end_abs duration_abs beginning_rel \\\n",
"0 2020-09-28 1601289095653 1601289128539 32886 1601289095653 \n",
"1 2020-09-28 1601297553835 1601297662588 108753 1601297553835 \n",
"2 2020-09-28 1601299166958 1601299204181 37223 1601299166958 \n",
"3 2020-10-12 1602509223934 1602509236271 12337 1602509223934 \n",
"4 2020-10-12 1602509468322 1602509728170 259848 1602509468322 \n",
"5 2020-10-12 1602513572437 1602513610713 38276 1602513572437 \n",
"6 2020-10-13 1602600340397 1602600772725 432328 1602600340397 \n",
"7 2020-10-16 1602855510176 1602856582255 1072079 1602855510176 \n",
"8 2020-10-16 1602866239691 1603356614694 490375003 1602866239691 \n",
"9 2020-10-22 1602866239691 1603356614694 490375003 1603356614649 \n",
2021-09-13 11:47:19 +02:00
"\n",
2021-09-22 16:34:33 +02:00
" end_rel duration_rel \n",
"0 1601289128539 32886 \n",
"1 1601297662588 108753 \n",
"2 1601299204181 37223 \n",
"3 1602509236271 12337 \n",
"4 1602509728170 259848 \n",
"5 1602513610713 38276 \n",
"6 1602600772725 432328 \n",
"7 1602856582255 1072079 \n",
"8 1602866242667 2976 \n",
"9 1603356614694 45 "
2021-09-13 11:47:19 +02:00
]
},
2021-09-22 16:34:33 +02:00
"execution_count": 7,
2021-09-13 11:47:19 +02:00
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
2021-09-22 16:34:33 +02:00
"df_nokia[\"group\"] = pd.to_datetime(df_nokia.timestamp, unit=\"ms\").dt.date\n",
"sequences = identify_screen_sequence(df_nokia, grouping=True)\n",
"sequences.head(10)"
]
},
{
"cell_type": "markdown",
"id": "c4ae6ce4",
"metadata": {},
"source": [
"##### Demonstration of the heuristics for identifying sequences"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "3e06bc77",
"metadata": {},
"outputs": [],
"source": [
"def colored(r, g, b, text):\n",
" return \"\\033[38;2;{};{};{}m{} \\033[38;2;255;255;255m\".format(r, g, b, text)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "420f03cd",
"metadata": {},
"outputs": [],
"source": [
"single_device_df = df_screen_inactive[df_screen_inactive[\"device_id\"] == \"78082f9f-98c2-468d-b4a2-7c835bd812bd\"]\n",
"test_list = single_device_df[\"screen_status\"].tolist()"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "047bcd40",
"metadata": {},
"outputs": [],
"source": [
"test_string = \"\".join([str(n) for n in test_list])\n",
"test_timestamps = single_device_df[\"timestamp\"].tolist()"
2021-09-13 11:47:19 +02:00
]
},
{
"cell_type": "code",
2021-09-22 16:34:33 +02:00
"execution_count": 7,
"id": "036034e9",
2021-09-13 11:47:19 +02:00
"metadata": {},
"outputs": [],
"source": [
2021-09-22 16:34:33 +02:00
"unlock_pat = re.compile(r\"(?=[0,2]((13|31)(0+|010)2))\")\n",
"check_pat = re.compile(r\"(?=[0,2](10+))\")"
2021-09-13 11:47:19 +02:00
]
},
{
"cell_type": "code",
2021-09-22 16:34:33 +02:00
"execution_count": 8,
"id": "1dce2689",
2021-09-13 11:47:19 +02:00
"metadata": {},
"outputs": [],
"source": [
2021-09-22 16:34:33 +02:00
"unlock_events = list()\n",
"check_events = list()"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "3d444ccd",
"metadata": {},
"outputs": [],
"source": [
"for match in unlock_pat.finditer(test_string):\n",
" beginning = match.start(1)\n",
" end = match.end(1)\n",
" for n in range(beginning, end):\n",
" unlock_events.append(n)\n",
"for match in check_pat.finditer(test_string):\n",
" beginning = match.start(1)\n",
" end = match.end(1)\n",
" for n in range(beginning, end):\n",
" check_events.append(n)"
]
},
{
"cell_type": "markdown",
"id": "c4a84510",
"metadata": {},
"source": [
"*Unlock sequences are printed in blue; screen-check sequences are printed in red*"
2021-09-13 11:47:19 +02:00
]
},
{
"cell_type": "code",
2021-09-22 16:34:33 +02:00
"execution_count": 10,
"id": "b039cb7a",
2021-09-13 11:47:19 +02:00
"metadata": {},
"outputs": [
{
2021-09-22 16:34:33 +02:00
"name": "stdout",
"output_type": "stream",
"text": [
"\u001b[38;2;0;0;0m0 \u001b[38;2;255;255;255m\u001b[38;2;0;0;0m1 \u001b[38;2;255;255;255m\u001b[38;2;0;0;0m3 \u001b[38;2;255;255;255m\u001b[38;2;0;0;0m0 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m1 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m3 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m0 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m2 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m1 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m3 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m0 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m2 \u001b[38;2;255;255;255m\u001b[38;2;0;0;0m0 \u001b[38;2;255;255;255m\u001b[38;2;0;0;0m2 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m1 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m3 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m0 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m2 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m1 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m3 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m0 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m2 \u001b[38;2;255;255;255m\u001b[38;2;0;0;0m0 \u001b[38;2;255;255;255m\u001b[38;2;0;0;0m2 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m1 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m3 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m0 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m0 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m2 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m1 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m3 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m0 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m2 \u001b[38;2;255;255;255m\u001b[38;2;250;0;0m1 \u001b[38;2;255;255;255m\u001b[38;2;250;0;0m0 \u001b[38;2;255;255;255m\u001b[38;2;0;0;0m2 \u001b[38;2;255;255;255m\u001b[38;2;0;0;0m0 \u001b[38;2;255;255;255m\u001b[38;2;250;0;0m1 \u001b[38;2;255;255;255m\u001b[38;2;250;0;0m0 \u001b[38;2;255;255;255m\u001b[38;2;250;0;0m1 \u001b[38;2;255;255;255m\u001b[38;2;250;0;0m0 \u001b[38;2;255;255;255m\u001b[38;2;0;0;0m2 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m1 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m3 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m0 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m2 \u001b[38;2;255;255;255m\u001b[38;2;0;0;0m0 \u001b[38;2;255;255;255m\u001b[38;2;0;0;0m2 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m1 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m3 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m0 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m2 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m1 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m3 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m0 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m2 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m1 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m3 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m0 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m2 \u001b[38;2;255;255;255m\u001b[38;2;250;0;0m1 \u001b[38;2;255;255;255m\u001b[38;2;250;0;0m0 \u001b[38;2;255;255;255m\u001b[38;2;0;0;0m2 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m1 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m3 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m0 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m2 \u001b[38;2;255;255;255m\u001b[38;2;0;0;0m3 \u001b[38;2;255;255;255m\u001b[38;2;0;0;0m0 \u001b[38;2;255;255;255m\u001b[38;2;250;0;0m1 \u001b[38;2;255;255;255m\u001b[38;2;250;0;0m0 \u001b[38;2;255;255;255m\u001b[38;2;250;0;0m1 \u001b[38;2;255;255;255m\u001b[38;2;250;0;0m0 \u001b[38;2;255;255;255m\u001b[38;2;250;0;0m1 \u001b[38;2;255;255;255m\u001b[38;2;250;0;0m0 \u001b[38;2;255;255;255m\u001b[38;2;0;0;0m2 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m3 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m1 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m0 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m2 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m3 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m1 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m0 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m2 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m3 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m1 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m0 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m2 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m3 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m1 \u001b
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\u001b[38;2;250;0;0m1 \u001b[38;2;255;255;255m\u001b[38;2;250;0;0m0 \u001b[38;2;255;255;255m\u001b[38;2;0;0;0m2 \u001b[38;2;255;255;255m\u001b[38;2;250;0;0m1 \u001b[38;2;255;255;255m\u001b[38;2;250;0;0m0 \u001b[38;2;255;255;255m\u001b[38;2;0;0;0m2 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m1 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m3 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m0 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m2 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m3 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m1 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m0 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m2 \u001b[38;2;255;255;255m\u001b[38;2;0;0;0m0 \u001b[38;2;255;255;255m\u001b[38;2;0;0;0m2 \u001b[38;2;255;255;255m\u001b[38;2;250;0;0m1 \u001b[38;2;255;255;255m\u001b[38;2;250;0;0m0 \u001b[38;2;255;255;255m\u001b[38;2;0;0;0m2 \u001b[38;2;255;255;255m\u001b[38;2;0;0;0m0 \u001b[38;2;255;255;255m\u001b[38;2;0;0;0m2 \u001b[38;2;255;255;255m\u001b[38;2;250;0;0m1 \u001b[38;2;255;255;255m\u001b[38;2;250;0;0m0 \u001b[38;2;255;255;255m\u001b[38;2;0;0;0m2 \u001b[38;2;255;255;255m\u001b[38;2;0;0;0m0 \u001b[38;2;255;255;255m\u001b[38;2;0;0;0m2 \u001b[38;2;255;255;255m\u001b[38;2;250;0;0m1 \u001b[38;2;255;255;255m\u001b[38;2;250;0;0m0 \u001b[38;2;255;255;255m\u001b[38;2;0;0;0m2 \u001b[38;2;255;255;255m\u001b[38;2;0;0;0m3 \u001b[38;2;255;255;255m\u001b[38;2;0;0;0m1 \u001b[38;2;255;255;255m\u001b[38;2;0;0;0m3 \u001b[38;2;255;255;255m\u001b[38;2;0;0;0m1 \u001b[38;2;255;255;255m\u001b[38;2;0;0;0m0 \u001b[38;2;255;255;255m\u001b[38;2;0;0;0m2 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m3 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m1 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m0 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m2 \u001b[38;2;255;255;255m\u001b[38;2;250;0;0m1 \u001b[38;2;255;255;255m\u001b[38;2;250;0;0m0 \u001b[38;2;255;255;255m\u001b[38;2;0;0;0m2 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m3 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m1 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m0 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m2 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m1 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m3 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m0 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m2 \u001b[38;2;255;255;255m\u001b[38;2;0;0;0m1 \u001b[38;2;255;255;255m\u001b[38;2;0;0;0m3 \u001b[38;2;255;255;255m\u001b[38;2;0;0;0m3 \u001b[38;2;255;255;255m\u001b[38;2;0;0;0m0 \u001b[38;2;255;255;255m\u001b[38;2;0;0;0m2 \u001b[38;2;255;255;255m\u001b[38;2;0;0;0m3 \u001b[38;2;255;255;255m\u001b[38;2;0;0;0m0 \u001b[38;2;255;255;255m\u001b[38;2;0;0;0m2 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m3 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m1 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m0 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m2 \u001b[38;2;255;255;255m\u001b[38;2;250;0;0m1 \u001b[38;2;255;255;255m\u001b[38;2;250;0;0m0 \u001b[38;2;255;255;255m\u001b[38;2;0;0;0m2 \u001b[38;2;255;255;255m\u001b[38;2;0;0;0m0 \u001b[38;2;255;255;255m\u001b[38;2;0;0;0m2 \u001b[38;2;255;255;255m\u001b[38;2;250;0;0m1 \u001b[38;2;255;255;255m\u001b[38;2;250;0;0m0 \u001b[38;2;255;255;255m\u001b[38;2;0;0;0m2 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m3 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m1 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m0 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m2 \u001b[38;2;255;255;255m\u001b[38;2;0;0;0m3 \u001b[38;2;255;255;255m\u001b[38;2;0;0;0m1 \u001b[38;2;255;255;255m\u001b[38;2;0;0;0m3 \u001b[38;2;255;255;255m\u001b[38;2;0;0;0m1 \u001b[38;2;255;255;255m\u001b[38;2;0;0;0m0 \u001b[38;2;255;255;255m\u001b[38;2;0;0;0m2 \u001b[38;2;255;255;255m\u001b[38;2;0;0;0m3 \u001b[38;2;255;255;255m\u001b[38;2;0;0;0m0 \u001b[38;2;255;255;255m\u001b[38;2;0;0;0m0 \u001b[38;2;255;255;255m\u001b[38;2;0;0;0m2 \u001b[38;2;255;255;255m\u001b[38;2;0;0;0m0 \u001b[38;2;255;255;255m\u001b[38;2;0;0;0m2 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m1 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m3 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m0 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m2 \u001b[38;2;255;255;255m\u001b[38;2;0;0;250m3 \u001b[38;
]
2021-09-13 11:47:19 +02:00
}
],
"source": [
2021-09-22 16:34:33 +02:00
"for i in range(len(test_string)):\n",
" if i in unlock_events:\n",
" print(colored(0,0,250,test_string[i]), end=\"\")\n",
" elif i in check_events:\n",
" print(colored(250,0,0,test_string[i]), end=\"\")\n",
" else:\n",
" print(colored(0,0,0,test_string[i]), end=\"\")"
]
},
{
"cell_type": "markdown",
"id": "4a6ac4ff",
"metadata": {},
"source": [
"#### Time statistics"
2021-09-13 11:47:19 +02:00
]
}
],
"metadata": {
"kernelspec": {
"display_name": "straw2analysis",
"language": "python",
"name": "straw2analysis"
},
"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
}