{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Example of Data Extraction" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "# import openLA as la\n", "import OpenLA as la" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "course_info, event_stream = la.start_analysis(files_dir=\"dataset_sample\", course_id=\"A\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Extract data about selected user" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "users = course_info.user_id()\n", "user_stream = la.select_user(event_stream, users[0])" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'A_U1'" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "users[0]" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
useridcontentsidoperationnamepagenomarkermemo_lengthdevicecodeeventtime
0A_U1C1PREV10NaN0tablet2018-04-09 10:57:15
1A_U1C1PREV9NaN0tablet2018-04-09 11:00:59
2A_U1C1PREV8NaN0tablet2018-04-09 11:03:31
3A_U1C1PREV30NaN0tablet2018-04-10 10:14:12
4A_U1C1PREV29NaN0tablet2018-04-10 10:27:24
...........................
1464A_U1C8NEXT2NaN0tablet2018-04-24 15:27:39
1465A_U1C8NEXT3NaN0tablet2018-04-24 15:27:57
1466A_U1C8NEXT4NaN0tablet2018-04-24 15:28:07
1467A_U1C8NEXT5NaN0tablet2018-05-29 15:42:36
1468A_U1C8NEXT6NaN0tablet2018-05-29 15:43:16
\n", "

1469 rows × 8 columns

\n", "
" ], "text/plain": [ " userid contentsid operationname pageno marker memo_length devicecode \\\n", "0 A_U1 C1 PREV 10 NaN 0 tablet \n", "1 A_U1 C1 PREV 9 NaN 0 tablet \n", "2 A_U1 C1 PREV 8 NaN 0 tablet \n", "3 A_U1 C1 PREV 30 NaN 0 tablet \n", "4 A_U1 C1 PREV 29 NaN 0 tablet \n", "... ... ... ... ... ... ... ... \n", "1464 A_U1 C8 NEXT 2 NaN 0 tablet \n", "1465 A_U1 C8 NEXT 3 NaN 0 tablet \n", "1466 A_U1 C8 NEXT 4 NaN 0 tablet \n", "1467 A_U1 C8 NEXT 5 NaN 0 tablet \n", "1468 A_U1 C8 NEXT 6 NaN 0 tablet \n", "\n", " eventtime \n", "0 2018-04-09 10:57:15 \n", "1 2018-04-09 11:00:59 \n", "2 2018-04-09 11:03:31 \n", "3 2018-04-10 10:14:12 \n", "4 2018-04-10 10:27:24 \n", "... ... \n", "1464 2018-04-24 15:27:39 \n", "1465 2018-04-24 15:27:57 \n", "1466 2018-04-24 15:28:07 \n", "1467 2018-05-29 15:42:36 \n", "1468 2018-05-29 15:43:16 \n", "\n", "[1469 rows x 8 columns]" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "user_stream.df # event stream related to user \"A_U1\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Extract data about selected contents" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "contents = course_info.contents_id()\n", "content_stream = la.select_contents(event_stream, contents[0])" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'C1'" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "contents[0]" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
useridcontentsidoperationnamepagenomarkermemo_lengthdevicecodeeventtime
0A_U1C1PREV10NaN0tablet2018-04-09 10:57:15
1A_U1C1PREV9NaN0tablet2018-04-09 11:00:59
2A_U1C1PREV8NaN0tablet2018-04-09 11:03:31
3A_U1C1PREV30NaN0tablet2018-04-10 10:14:12
4A_U1C1PREV29NaN0tablet2018-04-10 10:27:24
...........................
262022A_U99C1NEXT15NaN0pc2018-06-05 16:07:52
262023A_U99C1ADD MARKER64important0pc2018-06-05 16:08:15
262024A_U99C1NEXT9NaN0pc2018-06-05 16:13:05
262025A_U99C1ADD BOOKMARK23NaN0pc2018-06-05 16:29:09
262026A_U99C1NEXT23NaN0pc2018-06-05 16:29:52
\n", "

53992 rows × 8 columns

\n", "
" ], "text/plain": [ " userid contentsid operationname pageno marker memo_length \\\n", "0 A_U1 C1 PREV 10 NaN 0 \n", "1 A_U1 C1 PREV 9 NaN 0 \n", "2 A_U1 C1 PREV 8 NaN 0 \n", "3 A_U1 C1 PREV 30 NaN 0 \n", "4 A_U1 C1 PREV 29 NaN 0 \n", "... ... ... ... ... ... ... \n", "262022 A_U99 C1 NEXT 15 NaN 0 \n", "262023 A_U99 C1 ADD MARKER 64 important 0 \n", "262024 A_U99 C1 NEXT 9 NaN 0 \n", "262025 A_U99 C1 ADD BOOKMARK 23 NaN 0 \n", "262026 A_U99 C1 NEXT 23 NaN 0 \n", "\n", " devicecode eventtime \n", "0 tablet 2018-04-09 10:57:15 \n", "1 tablet 2018-04-09 11:00:59 \n", "2 tablet 2018-04-09 11:03:31 \n", "3 tablet 2018-04-10 10:14:12 \n", "4 tablet 2018-04-10 10:27:24 \n", "... ... ... \n", "262022 pc 2018-06-05 16:07:52 \n", "262023 pc 2018-06-05 16:08:15 \n", "262024 pc 2018-06-05 16:13:05 \n", "262025 pc 2018-06-05 16:29:09 \n", "262026 pc 2018-06-05 16:29:52 \n", "\n", "[53992 rows x 8 columns]" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "content_stream.df # event stream related to content \"C1\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 'select_user()' and 'select_contents()' are used for not only EventStream class but also converted classes." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "page_transition = la.convert_into_page_wise(event_stream, invalid_seconds=3)\n", "user_page_transition = la.select_user(page_transition, users[0:2])\n", "contents_page_transition = la.select_contents(user_page_transition, contents[0:2])" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['A_U1', 'A_U10']" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "users[0:2]" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['C1', 'C2']" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "contents[0:2]" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
useridcontentsidpagenonum_visitsaverage_reading_secondsreading_secondsPREVNEXTCLOSEPAGE_JUMP...ADD BOOKMARKADD MARKERDELETE MARKERDELETE BOOKMARKADD MEMODELETE_MEMOCHANGE MEMOSEARCHSEARCH_JUMPLINK_CLICK
0A_U1C11136686.2307698692107010...0000000000
1A_U1C129214.22222219280610...0210000000
2A_U1C13768.1428574770700...0000000000
3A_U1C14674.8333334491500...0000000000
4A_U1C15687.8333335270600...0000000000
..................................................................
442A_U10C2581179.0000001790100...0000000000
443A_U10C259172.000000720100...0000000000
444A_U10C260116.000000160100...0000000000
445A_U10C261194.000000940100...0000000000
446A_U10C2622310.0000006201001...0000000000
\n", "

258 rows × 22 columns

\n", "
" ], "text/plain": [ " userid contentsid pageno num_visits average_reading_seconds \\\n", "0 A_U1 C1 1 13 6686.230769 \n", "1 A_U1 C1 2 9 214.222222 \n", "2 A_U1 C1 3 7 68.142857 \n", "3 A_U1 C1 4 6 74.833333 \n", "4 A_U1 C1 5 6 87.833333 \n", ".. ... ... ... ... ... \n", "442 A_U10 C2 58 1 179.000000 \n", "443 A_U10 C2 59 1 72.000000 \n", "444 A_U10 C2 60 1 16.000000 \n", "445 A_U10 C2 61 1 94.000000 \n", "446 A_U10 C2 62 2 310.000000 \n", "\n", " reading_seconds PREV NEXT CLOSE PAGE_JUMP ... ADD BOOKMARK \\\n", "0 86921 0 7 0 10 ... 0 \n", "1 1928 0 6 1 0 ... 0 \n", "2 477 0 7 0 0 ... 0 \n", "3 449 1 5 0 0 ... 0 \n", "4 527 0 6 0 0 ... 0 \n", ".. ... ... ... ... ... ... ... \n", "442 179 0 1 0 0 ... 0 \n", "443 72 0 1 0 0 ... 0 \n", "444 16 0 1 0 0 ... 0 \n", "445 94 0 1 0 0 ... 0 \n", "446 620 1 0 0 1 ... 0 \n", "\n", " ADD MARKER DELETE MARKER DELETE BOOKMARK ADD MEMO DELETE_MEMO \\\n", "0 0 0 0 0 0 \n", "1 2 1 0 0 0 \n", "2 0 0 0 0 0 \n", "3 0 0 0 0 0 \n", "4 0 0 0 0 0 \n", ".. ... ... ... ... ... \n", "442 0 0 0 0 0 \n", "443 0 0 0 0 0 \n", "444 0 0 0 0 0 \n", "445 0 0 0 0 0 \n", "446 0 0 0 0 0 \n", "\n", " CHANGE MEMO SEARCH SEARCH_JUMP LINK_CLICK \n", "0 0 0 0 0 \n", "1 0 0 0 0 \n", "2 0 0 0 0 \n", "3 0 0 0 0 \n", "4 0 0 0 0 \n", ".. ... ... ... ... \n", "442 0 0 0 0 \n", "443 0 0 0 0 \n", "444 0 0 0 0 \n", "445 0 0 0 0 \n", "446 0 0 0 0 \n", "\n", "[258 rows x 22 columns]" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "contents_page_transition.df # page transition data related to users \"A_U1\" and \"A_u10\", and contents \"C1\" and \"C2\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Extract data during, before, and after a lecture" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### During lecture" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [], "source": [ "lecture_week=2\n", "\n", "event_stream_ = la.select_user(la.select_contents(event_stream, contents[0]), users[0]) # related to user 'A_U1' and content 'C1'\n", "\n", "stream_during_lecture = la.select_by_lecture_time(course_info, event_stream_, lecture_week=2, timing=\"during\") \n", "\n", "lecture_start = course_info.lecture_start_time(lecture_week)\n", "lecture_end = course_info.lecture_end_time(lecture_week)" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Timestamp('2018-04-17 14:50:00')" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "lecture_start" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Timestamp('2018-04-17 16:20:00')" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "lecture_end" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
useridcontentsidoperationnamepagenomarkermemo_lengthdevicecodeeventtime
47A_U1C1PAGE_JUMP1NaN0tablet2018-04-17 14:50:01
48A_U1C1NEXT1NaN0tablet2018-04-17 14:51:40
49A_U1C1NEXT2NaN0tablet2018-04-17 14:51:44
50A_U1C1NEXT3NaN0tablet2018-04-17 14:54:24
51A_U1C1NEXT4NaN0tablet2018-04-17 14:54:24
...........................
135A_U1C1NEXT59NaN0tablet2018-04-17 16:03:39
136A_U1C1NEXT60NaN0tablet2018-04-17 16:03:54
137A_U1C1NEXT61NaN0tablet2018-04-17 16:04:22
138A_U1C1NEXT62NaN0tablet2018-04-17 16:04:37
139A_U1C1NEXT63NaN0tablet2018-04-17 16:05:12
\n", "

93 rows × 8 columns

\n", "
" ], "text/plain": [ " userid contentsid operationname pageno marker memo_length devicecode \\\n", "47 A_U1 C1 PAGE_JUMP 1 NaN 0 tablet \n", "48 A_U1 C1 NEXT 1 NaN 0 tablet \n", "49 A_U1 C1 NEXT 2 NaN 0 tablet \n", "50 A_U1 C1 NEXT 3 NaN 0 tablet \n", "51 A_U1 C1 NEXT 4 NaN 0 tablet \n", ".. ... ... ... ... ... ... ... \n", "135 A_U1 C1 NEXT 59 NaN 0 tablet \n", "136 A_U1 C1 NEXT 60 NaN 0 tablet \n", "137 A_U1 C1 NEXT 61 NaN 0 tablet \n", "138 A_U1 C1 NEXT 62 NaN 0 tablet \n", "139 A_U1 C1 NEXT 63 NaN 0 tablet \n", "\n", " eventtime \n", "47 2018-04-17 14:50:01 \n", "48 2018-04-17 14:51:40 \n", "49 2018-04-17 14:51:44 \n", "50 2018-04-17 14:54:24 \n", "51 2018-04-17 14:54:24 \n", ".. ... \n", "135 2018-04-17 16:03:39 \n", "136 2018-04-17 16:03:54 \n", "137 2018-04-17 16:04:22 \n", "138 2018-04-17 16:04:37 \n", "139 2018-04-17 16:05:12 \n", "\n", "[93 rows x 8 columns]" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stream_during_lecture.df # during the lecture time (between '2018-04-17 14:50:00' and '2018-04-17 16:20:00')" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [], "source": [ "# If you want to include 5 minutes before the begin of lecture and after the end of lecture, \n", "# the arguments 'extension_minutes_before_lecture' and 'extension_minutes_after_lecture' are useful.\n", "\n", "stream_during_lecture_add_5minutes = la.select_by_lecture_time(course_info, event_stream_, \n", " lecture_week=2, timing=\"during\",\n", " extension_minutes_before_lecture=5,\n", " extension_minutes_after_lecture=5\n", " ) " ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
useridcontentsidoperationnamepagenomarkermemo_lengthdevicecodeeventtime
46A_U1C1OPEN1NaN0tablet2018-04-17 14:49:55
47A_U1C1PAGE_JUMP1NaN0tablet2018-04-17 14:50:01
48A_U1C1NEXT1NaN0tablet2018-04-17 14:51:40
49A_U1C1NEXT2NaN0tablet2018-04-17 14:51:44
50A_U1C1NEXT3NaN0tablet2018-04-17 14:54:24
...........................
135A_U1C1NEXT59NaN0tablet2018-04-17 16:03:39
136A_U1C1NEXT60NaN0tablet2018-04-17 16:03:54
137A_U1C1NEXT61NaN0tablet2018-04-17 16:04:22
138A_U1C1NEXT62NaN0tablet2018-04-17 16:04:37
139A_U1C1NEXT63NaN0tablet2018-04-17 16:05:12
\n", "

94 rows × 8 columns

\n", "
" ], "text/plain": [ " userid contentsid operationname pageno marker memo_length devicecode \\\n", "46 A_U1 C1 OPEN 1 NaN 0 tablet \n", "47 A_U1 C1 PAGE_JUMP 1 NaN 0 tablet \n", "48 A_U1 C1 NEXT 1 NaN 0 tablet \n", "49 A_U1 C1 NEXT 2 NaN 0 tablet \n", "50 A_U1 C1 NEXT 3 NaN 0 tablet \n", ".. ... ... ... ... ... ... ... \n", "135 A_U1 C1 NEXT 59 NaN 0 tablet \n", "136 A_U1 C1 NEXT 60 NaN 0 tablet \n", "137 A_U1 C1 NEXT 61 NaN 0 tablet \n", "138 A_U1 C1 NEXT 62 NaN 0 tablet \n", "139 A_U1 C1 NEXT 63 NaN 0 tablet \n", "\n", " eventtime \n", "46 2018-04-17 14:49:55 \n", "47 2018-04-17 14:50:01 \n", "48 2018-04-17 14:51:40 \n", "49 2018-04-17 14:51:44 \n", "50 2018-04-17 14:54:24 \n", ".. ... \n", "135 2018-04-17 16:03:39 \n", "136 2018-04-17 16:03:54 \n", "137 2018-04-17 16:04:22 \n", "138 2018-04-17 16:04:37 \n", "139 2018-04-17 16:05:12 \n", "\n", "[94 rows x 8 columns]" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stream_during_lecture_add_5minutes.df # between '2018-04-17 14:50:00 - 5 minutes' and '2018-04-17 16:20:00 + 5 minutes'" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [], "source": [ "# If you want to omit 10 minutes after the begin of lecture and before the end of lecture,\n", "# negative value can be used for the arguments 'extension_minutes_before_lecture' and 'extension_minutes_after_lecture'\n", "\n", "stream_during_lecture_omit_10minutes = la.select_by_lecture_time(course_info, event_stream, \n", " lecture_week=2, timing=\"during\",\n", " extension_minutes_before_lecture=-10,\n", " extension_minutes_after_lecture=-10\n", " ) " ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
useridcontentsidoperationnamepagenomarkermemo_lengthdevicecodeeventtime
54A_U1C1NEXT7NaN0tablet2018-04-17 15:01:43
55A_U1C1NEXT8NaN0tablet2018-04-17 15:01:44
56A_U1C1NEXT9NaN0tablet2018-04-17 15:01:47
57A_U1C1NEXT10NaN0tablet2018-04-17 15:01:56
58A_U1C1NEXT11NaN0tablet2018-04-17 15:01:56
...........................
263140A_U99C8PREV61NaN0pc2018-04-17 15:48:56
263141A_U99C8PREV60NaN0pc2018-04-17 15:49:01
263142A_U99C8NEXT52NaN0pc2018-04-17 15:50:11
263143A_U99C8NEXT53NaN0pc2018-04-17 15:51:26
263144A_U99C8NEXT54NaN0pc2018-04-17 15:51:32
\n", "

24586 rows × 8 columns

\n", "
" ], "text/plain": [ " userid contentsid operationname pageno marker memo_length devicecode \\\n", "54 A_U1 C1 NEXT 7 NaN 0 tablet \n", "55 A_U1 C1 NEXT 8 NaN 0 tablet \n", "56 A_U1 C1 NEXT 9 NaN 0 tablet \n", "57 A_U1 C1 NEXT 10 NaN 0 tablet \n", "58 A_U1 C1 NEXT 11 NaN 0 tablet \n", "... ... ... ... ... ... ... ... \n", "263140 A_U99 C8 PREV 61 NaN 0 pc \n", "263141 A_U99 C8 PREV 60 NaN 0 pc \n", "263142 A_U99 C8 NEXT 52 NaN 0 pc \n", "263143 A_U99 C8 NEXT 53 NaN 0 pc \n", "263144 A_U99 C8 NEXT 54 NaN 0 pc \n", "\n", " eventtime \n", "54 2018-04-17 15:01:43 \n", "55 2018-04-17 15:01:44 \n", "56 2018-04-17 15:01:47 \n", "57 2018-04-17 15:01:56 \n", "58 2018-04-17 15:01:56 \n", "... ... \n", "263140 2018-04-17 15:48:56 \n", "263141 2018-04-17 15:49:01 \n", "263142 2018-04-17 15:50:11 \n", "263143 2018-04-17 15:51:26 \n", "263144 2018-04-17 15:51:32 \n", "\n", "[24586 rows x 8 columns]" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stream_during_lecture_omit_10minutes.df # between '2018-04-17 14:50:00 + 10 minutes' and '2018-04-17 16:20:00 - 10 minutes'" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Before lecture" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [], "source": [ "stream_before_lecture = la.select_by_lecture_time(course_info, event_stream_, lecture_week=lecture_week, timing=\"before\")" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Timestamp('2018-04-17 14:50:00')" ] }, "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ "lecture_start" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
useridcontentsidoperationnamepagenomarkermemo_lengthdevicecodeeventtime
36A_U1C1CLOSE53NaN0tablet2018-04-10 16:21:24
37A_U1C1NEXT23NaN0tablet2018-04-10 16:22:21
38A_U1C1NEXT24NaN0tablet2018-04-10 16:22:39
39A_U1C1NEXT25NaN0tablet2018-04-10 16:22:56
40A_U1C1PAGE_JUMP1NaN0tablet2018-04-10 16:51:07
41A_U1C1OPEN1NaN0tablet2018-04-10 16:51:28
42A_U1C1NEXT29NaN0tablet2018-04-17 00:05:16
43A_U1C1NEXT30NaN0tablet2018-04-17 00:05:33
44A_U1C1BOOKMARK_JUMP53NaN0tablet2018-04-17 14:00:03
45A_U1C1PAGE_JUMP1NaN0tablet2018-04-17 14:00:44
46A_U1C1OPEN1NaN0tablet2018-04-17 14:49:55
\n", "
" ], "text/plain": [ " userid contentsid operationname pageno marker memo_length devicecode \\\n", "36 A_U1 C1 CLOSE 53 NaN 0 tablet \n", "37 A_U1 C1 NEXT 23 NaN 0 tablet \n", "38 A_U1 C1 NEXT 24 NaN 0 tablet \n", "39 A_U1 C1 NEXT 25 NaN 0 tablet \n", "40 A_U1 C1 PAGE_JUMP 1 NaN 0 tablet \n", "41 A_U1 C1 OPEN 1 NaN 0 tablet \n", "42 A_U1 C1 NEXT 29 NaN 0 tablet \n", "43 A_U1 C1 NEXT 30 NaN 0 tablet \n", "44 A_U1 C1 BOOKMARK_JUMP 53 NaN 0 tablet \n", "45 A_U1 C1 PAGE_JUMP 1 NaN 0 tablet \n", "46 A_U1 C1 OPEN 1 NaN 0 tablet \n", "\n", " eventtime \n", "36 2018-04-10 16:21:24 \n", "37 2018-04-10 16:22:21 \n", "38 2018-04-10 16:22:39 \n", "39 2018-04-10 16:22:56 \n", "40 2018-04-10 16:51:07 \n", "41 2018-04-10 16:51:28 \n", "42 2018-04-17 00:05:16 \n", "43 2018-04-17 00:05:33 \n", "44 2018-04-17 14:00:03 \n", "45 2018-04-17 14:00:44 \n", "46 2018-04-17 14:49:55 " ] }, "execution_count": 39, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stream_before_lecture.df # between the end of lecture 1 and the begin of lecture 2 ('2018-04-10 16:20:00' - '2018-04-17 14:50:00')" ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [], "source": [ "# If you want to include all logs before lecture 2, set the argument 'include_other_lecture_time' to True\n", "stream_before_lecture2_include_other_lecture_time = la.select_by_lecture_time(course_info, event_stream_, \n", " lecture_week=2, timing=\"before\",\n", " include_other_lecture_time=True)" ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
useridcontentsidoperationnamepagenomarkermemo_lengthdevicecodeeventtime
0A_U1C1PREV10NaN0tablet2018-04-09 10:57:15
1A_U1C1PREV9NaN0tablet2018-04-09 11:00:59
2A_U1C1PREV8NaN0tablet2018-04-09 11:03:31
3A_U1C1PREV30NaN0tablet2018-04-10 10:14:12
4A_U1C1PREV29NaN0tablet2018-04-10 10:27:24
5A_U1C1PREV28NaN0tablet2018-04-10 10:27:24
6A_U1C1PREV27NaN0tablet2018-04-10 10:37:19
7A_U1C1PREV26NaN0tablet2018-04-10 15:13:55
8A_U1C1NEXT28NaN0tablet2018-04-10 15:15:34
9A_U1C1PREV7NaN0tablet2018-04-10 15:21:19
10A_U1C1NEXT29NaN0tablet2018-04-10 15:22:54
11A_U1C1NEXT30NaN0tablet2018-04-10 15:24:29
12A_U1C1NEXT31NaN0tablet2018-04-10 15:26:12
13A_U1C1PREV25NaN0tablet2018-04-10 15:31:14
14A_U1C1NEXT32NaN0tablet2018-04-10 15:31:35
15A_U1C1NEXT33NaN0tablet2018-04-10 15:34:19
16A_U1C1NEXT34NaN0tablet2018-04-10 15:34:58
17A_U1C1NEXT35NaN0tablet2018-04-10 15:38:19
18A_U1C1NEXT12NaN0tablet2018-04-10 15:40:26
19A_U1C1PREV6NaN0tablet2018-04-10 15:41:01
20A_U1C1NEXT36NaN0tablet2018-04-10 15:42:10
21A_U1C1NEXT37NaN0tablet2018-04-10 15:45:54
22A_U1C1NEXT38NaN0tablet2018-04-10 15:47:09
23A_U1C1NEXT39NaN0tablet2018-04-10 15:47:46
24A_U1C1NEXT13NaN0tablet2018-04-10 15:55:49
25A_U1C1NEXT8NaN0tablet2018-04-10 15:56:38
26A_U1C1NEXT5NaN0tablet2018-04-10 15:57:56
27A_U1C1NEXT14NaN0tablet2018-04-10 15:58:40
28A_U1C1NEXT9NaN0tablet2018-04-10 15:58:45
29A_U1C1PREV24NaN0tablet2018-04-10 16:00:24
30A_U1C1NEXT15NaN0tablet2018-04-10 16:05:57
31A_U1C1NEXT6NaN0tablet2018-04-10 16:07:44
32A_U1C1NEXT16NaN0tablet2018-04-10 16:15:31
33A_U1C1NEXT16NaN0tablet2018-04-10 16:15:34
34A_U1C1NEXT7NaN0tablet2018-04-10 16:17:20
35A_U1C1PREV23NaN0tablet2018-04-10 16:19:10
36A_U1C1CLOSE53NaN0tablet2018-04-10 16:21:24
37A_U1C1NEXT23NaN0tablet2018-04-10 16:22:21
38A_U1C1NEXT24NaN0tablet2018-04-10 16:22:39
39A_U1C1NEXT25NaN0tablet2018-04-10 16:22:56
40A_U1C1PAGE_JUMP1NaN0tablet2018-04-10 16:51:07
41A_U1C1OPEN1NaN0tablet2018-04-10 16:51:28
42A_U1C1NEXT29NaN0tablet2018-04-17 00:05:16
43A_U1C1NEXT30NaN0tablet2018-04-17 00:05:33
44A_U1C1BOOKMARK_JUMP53NaN0tablet2018-04-17 14:00:03
45A_U1C1PAGE_JUMP1NaN0tablet2018-04-17 14:00:44
46A_U1C1OPEN1NaN0tablet2018-04-17 14:49:55
\n", "
" ], "text/plain": [ " userid contentsid operationname pageno marker memo_length devicecode \\\n", "0 A_U1 C1 PREV 10 NaN 0 tablet \n", "1 A_U1 C1 PREV 9 NaN 0 tablet \n", "2 A_U1 C1 PREV 8 NaN 0 tablet \n", "3 A_U1 C1 PREV 30 NaN 0 tablet \n", "4 A_U1 C1 PREV 29 NaN 0 tablet \n", "5 A_U1 C1 PREV 28 NaN 0 tablet \n", "6 A_U1 C1 PREV 27 NaN 0 tablet \n", "7 A_U1 C1 PREV 26 NaN 0 tablet \n", "8 A_U1 C1 NEXT 28 NaN 0 tablet \n", "9 A_U1 C1 PREV 7 NaN 0 tablet \n", "10 A_U1 C1 NEXT 29 NaN 0 tablet \n", "11 A_U1 C1 NEXT 30 NaN 0 tablet \n", "12 A_U1 C1 NEXT 31 NaN 0 tablet \n", "13 A_U1 C1 PREV 25 NaN 0 tablet \n", "14 A_U1 C1 NEXT 32 NaN 0 tablet \n", "15 A_U1 C1 NEXT 33 NaN 0 tablet \n", "16 A_U1 C1 NEXT 34 NaN 0 tablet \n", "17 A_U1 C1 NEXT 35 NaN 0 tablet \n", "18 A_U1 C1 NEXT 12 NaN 0 tablet \n", "19 A_U1 C1 PREV 6 NaN 0 tablet \n", "20 A_U1 C1 NEXT 36 NaN 0 tablet \n", "21 A_U1 C1 NEXT 37 NaN 0 tablet \n", "22 A_U1 C1 NEXT 38 NaN 0 tablet \n", "23 A_U1 C1 NEXT 39 NaN 0 tablet \n", "24 A_U1 C1 NEXT 13 NaN 0 tablet \n", "25 A_U1 C1 NEXT 8 NaN 0 tablet \n", "26 A_U1 C1 NEXT 5 NaN 0 tablet \n", "27 A_U1 C1 NEXT 14 NaN 0 tablet \n", "28 A_U1 C1 NEXT 9 NaN 0 tablet \n", "29 A_U1 C1 PREV 24 NaN 0 tablet \n", "30 A_U1 C1 NEXT 15 NaN 0 tablet \n", "31 A_U1 C1 NEXT 6 NaN 0 tablet \n", "32 A_U1 C1 NEXT 16 NaN 0 tablet \n", "33 A_U1 C1 NEXT 16 NaN 0 tablet \n", "34 A_U1 C1 NEXT 7 NaN 0 tablet \n", "35 A_U1 C1 PREV 23 NaN 0 tablet \n", "36 A_U1 C1 CLOSE 53 NaN 0 tablet \n", "37 A_U1 C1 NEXT 23 NaN 0 tablet \n", "38 A_U1 C1 NEXT 24 NaN 0 tablet \n", "39 A_U1 C1 NEXT 25 NaN 0 tablet \n", "40 A_U1 C1 PAGE_JUMP 1 NaN 0 tablet \n", "41 A_U1 C1 OPEN 1 NaN 0 tablet \n", "42 A_U1 C1 NEXT 29 NaN 0 tablet \n", "43 A_U1 C1 NEXT 30 NaN 0 tablet \n", "44 A_U1 C1 BOOKMARK_JUMP 53 NaN 0 tablet \n", "45 A_U1 C1 PAGE_JUMP 1 NaN 0 tablet \n", "46 A_U1 C1 OPEN 1 NaN 0 tablet \n", "\n", " eventtime \n", "0 2018-04-09 10:57:15 \n", "1 2018-04-09 11:00:59 \n", "2 2018-04-09 11:03:31 \n", "3 2018-04-10 10:14:12 \n", "4 2018-04-10 10:27:24 \n", "5 2018-04-10 10:27:24 \n", "6 2018-04-10 10:37:19 \n", "7 2018-04-10 15:13:55 \n", "8 2018-04-10 15:15:34 \n", "9 2018-04-10 15:21:19 \n", "10 2018-04-10 15:22:54 \n", "11 2018-04-10 15:24:29 \n", "12 2018-04-10 15:26:12 \n", "13 2018-04-10 15:31:14 \n", "14 2018-04-10 15:31:35 \n", "15 2018-04-10 15:34:19 \n", "16 2018-04-10 15:34:58 \n", "17 2018-04-10 15:38:19 \n", "18 2018-04-10 15:40:26 \n", "19 2018-04-10 15:41:01 \n", "20 2018-04-10 15:42:10 \n", "21 2018-04-10 15:45:54 \n", "22 2018-04-10 15:47:09 \n", "23 2018-04-10 15:47:46 \n", "24 2018-04-10 15:55:49 \n", "25 2018-04-10 15:56:38 \n", "26 2018-04-10 15:57:56 \n", "27 2018-04-10 15:58:40 \n", "28 2018-04-10 15:58:45 \n", "29 2018-04-10 16:00:24 \n", "30 2018-04-10 16:05:57 \n", "31 2018-04-10 16:07:44 \n", "32 2018-04-10 16:15:31 \n", "33 2018-04-10 16:15:34 \n", "34 2018-04-10 16:17:20 \n", "35 2018-04-10 16:19:10 \n", "36 2018-04-10 16:21:24 \n", "37 2018-04-10 16:22:21 \n", "38 2018-04-10 16:22:39 \n", "39 2018-04-10 16:22:56 \n", "40 2018-04-10 16:51:07 \n", "41 2018-04-10 16:51:28 \n", "42 2018-04-17 00:05:16 \n", "43 2018-04-17 00:05:33 \n", "44 2018-04-17 14:00:03 \n", "45 2018-04-17 14:00:44 \n", "46 2018-04-17 14:49:55 " ] }, "execution_count": 41, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stream_before_lecture2_include_other_lecture_time.df # from the begin of logs to the begin of lecture 2 ('2018-04-17 14:50:00')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### After lecture" ] }, { "cell_type": "code", "execution_count": 54, "metadata": {}, "outputs": [], "source": [ "stream_after_lecture = la.select_by_lecture_time(course_info, event_stream_, lecture_week=2, timing=\"after\")" ] }, { "cell_type": "code", "execution_count": 55, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Timestamp('2018-04-17 16:20:00')" ] }, "execution_count": 55, "metadata": {}, "output_type": "execute_result" } ], "source": [ "lecture_end" ] }, { "cell_type": "code", "execution_count": 56, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
useridcontentsidoperationnamepagenomarkermemo_lengthdevicecodeeventtime
140A_U1C1NEXT17NaN0tablet2018-04-24 14:06:08
141A_U1C1NEXT49NaN0tablet2018-04-24 14:40:09
142A_U1C1NEXT50NaN0tablet2018-04-24 14:40:46
143A_U1C1NEXT51NaN0tablet2018-04-24 14:40:52
144A_U1C1NEXT52NaN0tablet2018-04-24 14:41:00
\n", "
" ], "text/plain": [ " userid contentsid operationname pageno marker memo_length devicecode \\\n", "140 A_U1 C1 NEXT 17 NaN 0 tablet \n", "141 A_U1 C1 NEXT 49 NaN 0 tablet \n", "142 A_U1 C1 NEXT 50 NaN 0 tablet \n", "143 A_U1 C1 NEXT 51 NaN 0 tablet \n", "144 A_U1 C1 NEXT 52 NaN 0 tablet \n", "\n", " eventtime \n", "140 2018-04-24 14:06:08 \n", "141 2018-04-24 14:40:09 \n", "142 2018-04-24 14:40:46 \n", "143 2018-04-24 14:40:52 \n", "144 2018-04-24 14:41:00 " ] }, "execution_count": 56, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stream_after_lecture.df # between the end of lecture 2 and the begin of lecture 3 ('2018-04-17 16:20:00' - '2018-04-24 14:50:00')" ] }, { "cell_type": "code", "execution_count": 57, "metadata": {}, "outputs": [], "source": [ "# If you want to include all logs after lecture 2, set the argument 'include_other_lecture_time' to True\n", "stream_after_lecture2_include_other_lecture_time = la.select_by_lecture_time(course_info, event_stream_, \n", " lecture_week=2, timing=\"after\",\n", " include_other_lecture_time=True)" ] }, { "cell_type": "code", "execution_count": 58, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
useridcontentsidoperationnamepagenomarkermemo_lengthdevicecodeeventtime
140A_U1C1NEXT17NaN0tablet2018-04-24 14:06:08
141A_U1C1NEXT49NaN0tablet2018-04-24 14:40:09
142A_U1C1NEXT50NaN0tablet2018-04-24 14:40:46
143A_U1C1NEXT51NaN0tablet2018-04-24 14:40:52
144A_U1C1NEXT52NaN0tablet2018-04-24 14:41:00
...........................
467A_U1C1PREV55NaN0tablet2018-06-05 16:06:27
468A_U1C1PREV54NaN0tablet2018-06-05 16:07:32
469A_U1C1PREV11NaN0tablet2018-06-05 16:07:49
470A_U1C1NEXT23NaN0tablet2018-06-05 16:22:51
471A_U1C1PREV24NaN0tablet2018-06-05 16:24:36
\n", "

332 rows × 8 columns

\n", "
" ], "text/plain": [ " userid contentsid operationname pageno marker memo_length devicecode \\\n", "140 A_U1 C1 NEXT 17 NaN 0 tablet \n", "141 A_U1 C1 NEXT 49 NaN 0 tablet \n", "142 A_U1 C1 NEXT 50 NaN 0 tablet \n", "143 A_U1 C1 NEXT 51 NaN 0 tablet \n", "144 A_U1 C1 NEXT 52 NaN 0 tablet \n", ".. ... ... ... ... ... ... ... \n", "467 A_U1 C1 PREV 55 NaN 0 tablet \n", "468 A_U1 C1 PREV 54 NaN 0 tablet \n", "469 A_U1 C1 PREV 11 NaN 0 tablet \n", "470 A_U1 C1 NEXT 23 NaN 0 tablet \n", "471 A_U1 C1 PREV 24 NaN 0 tablet \n", "\n", " eventtime \n", "140 2018-04-24 14:06:08 \n", "141 2018-04-24 14:40:09 \n", "142 2018-04-24 14:40:46 \n", "143 2018-04-24 14:40:52 \n", "144 2018-04-24 14:41:00 \n", ".. ... \n", "467 2018-06-05 16:06:27 \n", "468 2018-06-05 16:07:32 \n", "469 2018-06-05 16:07:49 \n", "470 2018-06-05 16:22:51 \n", "471 2018-06-05 16:24:36 \n", "\n", "[332 rows x 8 columns]" ] }, "execution_count": 58, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stream_after_lecture2_include_other_lecture_time.df # from the end of lecture 2 ('2018-04-17 16:20:00') to the end of logs." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Other than the above functions, following functions are available for EventStream\n", "\n", "- select_operation\n", "\n", "- select_marker_type\n", "\n", "- select_device\n", "\n", "- select_page\n", "\n", "- select_memo_length\n", "\n", "- select_time" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "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.7.3" }, "pycharm": { "stem_cell": { "cell_type": "raw", "metadata": { "collapsed": false }, "source": [] } } }, "nbformat": 4, "nbformat_minor": 4 }