{ "cells": [ { "cell_type": "code", "execution_count": 86, "metadata": {}, "outputs": [], "source": [ "import os\n", "os.listdir('../../scripts')\n", "import sys\n", "sys.path.append('../../Scripts')" ] }, { "cell_type": "code", "execution_count": 87, "metadata": {}, "outputs": [], "source": [ "from generate_signals import SignalGenerator" ] }, { "cell_type": "code", "execution_count": 88, "metadata": {}, "outputs": [], "source": [ "from preprocess_daily import DailyPreprocessor" ] }, { "cell_type": "code", "execution_count": 89, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1. 데이터를 준비합니다.\n", "1-1. 네트워크가 로드되었습니다.\n", "1-2. 테이블들이 로드되었습니다.\n", "2. 신호이력 테이블을 변환합니다.\n", "3. 이동류정보 테이블을 변환합니다.\n", "4. 통합 테이블을 생성합니다.\n" ] } ], "source": [ "self = SignalGenerator()\n", "self.prepare_data()\n", "self.process_history()\n", "self.process_movement()\n", "self.make_histids()\n", "self.set_timepoints()" ] }, { "cell_type": "code", "execution_count": 90, "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", "
Unnamed: 0inter_noend_unixdura_A1dura_A2dura_A3dura_A4dura_A5dura_A6dura_A7...dura_B1dura_B2dura_B3dura_B4dura_B5dura_B6dura_B7dura_B8cycleoffset
77175170438056037395529000...37392559000016057
1515175170438072137395529000...37392559000016057
2424175170438088037395529000...37392559000016057
3333175170438104037395529000...37392559000016057
4141175170438119937395529000...37392559000016057
..................................................................
38863886175170446288046485541000...46483759000019018
38933893175170446307046485541000...46483759000019018
39003900175170446326146485541000...46483759000019018
39073907175170446345046485541000...46483759000019018
39143914175170446364046485541000...46483759000019018
\n", "

478 rows × 21 columns

\n", "
" ], "text/plain": [ " Unnamed: 0 inter_no end_unix dura_A1 dura_A2 dura_A3 dura_A4 \\\n", "7 7 175 1704380560 37 39 55 29 \n", "15 15 175 1704380721 37 39 55 29 \n", "24 24 175 1704380880 37 39 55 29 \n", "33 33 175 1704381040 37 39 55 29 \n", "41 41 175 1704381199 37 39 55 29 \n", "... ... ... ... ... ... ... ... \n", "3886 3886 175 1704462880 46 48 55 41 \n", "3893 3893 175 1704463070 46 48 55 41 \n", "3900 3900 175 1704463261 46 48 55 41 \n", "3907 3907 175 1704463450 46 48 55 41 \n", "3914 3914 175 1704463640 46 48 55 41 \n", "\n", " dura_A5 dura_A6 dura_A7 ... dura_B1 dura_B2 dura_B3 dura_B4 \\\n", "7 0 0 0 ... 37 39 25 59 \n", "15 0 0 0 ... 37 39 25 59 \n", "24 0 0 0 ... 37 39 25 59 \n", "33 0 0 0 ... 37 39 25 59 \n", "41 0 0 0 ... 37 39 25 59 \n", "... ... ... ... ... ... ... ... ... \n", "3886 0 0 0 ... 46 48 37 59 \n", "3893 0 0 0 ... 46 48 37 59 \n", "3900 0 0 0 ... 46 48 37 59 \n", "3907 0 0 0 ... 46 48 37 59 \n", "3914 0 0 0 ... 46 48 37 59 \n", "\n", " dura_B5 dura_B6 dura_B7 dura_B8 cycle offset \n", "7 0 0 0 0 160 57 \n", "15 0 0 0 0 160 57 \n", "24 0 0 0 0 160 57 \n", "33 0 0 0 0 160 57 \n", "41 0 0 0 0 160 57 \n", "... ... ... ... ... ... ... \n", "3886 0 0 0 0 190 18 \n", "3893 0 0 0 0 190 18 \n", "3900 0 0 0 0 190 18 \n", "3907 0 0 0 0 190 18 \n", "3914 0 0 0 0 190 18 \n", "\n", "[478 rows x 21 columns]" ] }, "execution_count": 90, "metadata": {}, "output_type": "execute_result" } ], "source": [ "inter_no = 175\n", "Node_id = 'i0'\n", "self.history.query('inter_no==@inter_no') # 1-2 원본파일" ] }, { "cell_type": "code", "execution_count": 91, "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", "
inter_nostart_unixdura_A1dura_A2dura_A3dura_A4dura_A5dura_A6dura_A7dura_A8dura_B1dura_B2dura_B3dura_B4dura_B5dura_B6dura_B7dura_B8cycle
18161751704414509434555370000434533590000180
18241751704414690434555370000434533590000180
18321751704414871434555370000434533590000180
18401751704415050434555370000434533590000180
18491751704415230434555370000434533590000180
18571751704415410434555370000434533590000180
18651751704415589434555370000434533590000180
18741751704415770434555370000434533590000180
18821751704415950434555370000434533590000180
18931751704416178434555370000434533590000180
01751704416820434555370000434533590000180
\n", "
" ], "text/plain": [ " inter_no start_unix dura_A1 dura_A2 dura_A3 dura_A4 dura_A5 \\\n", "1816 175 1704414509 43 45 55 37 0 \n", "1824 175 1704414690 43 45 55 37 0 \n", "1832 175 1704414871 43 45 55 37 0 \n", "1840 175 1704415050 43 45 55 37 0 \n", "1849 175 1704415230 43 45 55 37 0 \n", "1857 175 1704415410 43 45 55 37 0 \n", "1865 175 1704415589 43 45 55 37 0 \n", "1874 175 1704415770 43 45 55 37 0 \n", "1882 175 1704415950 43 45 55 37 0 \n", "1893 175 1704416178 43 45 55 37 0 \n", "0 175 1704416820 43 45 55 37 0 \n", "\n", " dura_A6 dura_A7 dura_A8 dura_B1 dura_B2 dura_B3 dura_B4 dura_B5 \\\n", "1816 0 0 0 43 45 33 59 0 \n", "1824 0 0 0 43 45 33 59 0 \n", "1832 0 0 0 43 45 33 59 0 \n", "1840 0 0 0 43 45 33 59 0 \n", "1849 0 0 0 43 45 33 59 0 \n", "1857 0 0 0 43 45 33 59 0 \n", "1865 0 0 0 43 45 33 59 0 \n", "1874 0 0 0 43 45 33 59 0 \n", "1882 0 0 0 43 45 33 59 0 \n", "1893 0 0 0 43 45 33 59 0 \n", "0 0 0 0 43 45 33 59 0 \n", "\n", " dura_B6 dura_B7 dura_B8 cycle \n", "1816 0 0 0 180 \n", "1824 0 0 0 180 \n", "1832 0 0 0 180 \n", "1840 0 0 0 180 \n", "1849 0 0 0 180 \n", "1857 0 0 0 180 \n", "1865 0 0 0 180 \n", "1874 0 0 0 180 \n", "1882 0 0 0 180 \n", "1893 0 0 0 180 \n", "0 0 0 0 180 " ] }, "execution_count": 91, "metadata": {}, "output_type": "execute_result" } ], "source": [ "self.rhistory.query('inter_no==@inter_no') # 2-1 현재시점 기준 30분 전부터의 이력" ] }, { "cell_type": "code", "execution_count": 92, "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", "
inter_nostart_unixdura_A1dura_A2dura_A3dura_A4dura_B1dura_B2dura_B3dura_B4...red_A4red_B4red_A5red_B5red_A6red_B6red_A7red_B7red_A8red_B8
617517044155894345553743453359...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
717517044157704345553743453359...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
817517044159504345553743453359...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
917517044161785457704754574275...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
1017517044163584345553743453359...1.01.01.01.01.01.01.01.01.01.0
1117517044165384345553743453359...1.01.01.01.01.01.01.01.01.01.0
1217517044167184345553743453359...1.01.01.01.01.01.01.01.01.01.0
1317517044168202426312124261933...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
\n", "

8 rows × 43 columns

\n", "
" ], "text/plain": [ " inter_no start_unix dura_A1 dura_A2 dura_A3 dura_A4 dura_B1 \\\n", "6 175 1704415589 43 45 55 37 43 \n", "7 175 1704415770 43 45 55 37 43 \n", "8 175 1704415950 43 45 55 37 43 \n", "9 175 1704416178 54 57 70 47 54 \n", "10 175 1704416358 43 45 55 37 43 \n", "11 175 1704416538 43 45 55 37 43 \n", "12 175 1704416718 43 45 55 37 43 \n", "13 175 1704416820 24 26 31 21 24 \n", "\n", " dura_B2 dura_B3 dura_B4 ... red_A4 red_B4 red_A5 red_B5 red_A6 \\\n", "6 45 33 59 ... NaN NaN NaN NaN NaN \n", "7 45 33 59 ... NaN NaN NaN NaN NaN \n", "8 45 33 59 ... NaN NaN NaN NaN NaN \n", "9 57 42 75 ... NaN NaN NaN NaN NaN \n", "10 45 33 59 ... 1.0 1.0 1.0 1.0 1.0 \n", "11 45 33 59 ... 1.0 1.0 1.0 1.0 1.0 \n", "12 45 33 59 ... 1.0 1.0 1.0 1.0 1.0 \n", "13 26 19 33 ... NaN NaN NaN NaN NaN \n", "\n", " red_B6 red_A7 red_B7 red_A8 red_B8 \n", "6 NaN NaN NaN NaN NaN \n", "7 NaN NaN NaN NaN NaN \n", "8 NaN NaN NaN NaN NaN \n", "9 NaN NaN NaN NaN NaN \n", "10 1.0 1.0 1.0 1.0 1.0 \n", "11 1.0 1.0 1.0 1.0 1.0 \n", "12 1.0 1.0 1.0 1.0 1.0 \n", "13 NaN NaN NaN NaN NaN \n", "\n", "[8 rows x 43 columns]" ] }, "execution_count": 92, "metadata": {}, "output_type": "execute_result" } ], "source": [ "######\n", "self.rhists.query('inter_no==@inter_no')\\\n", " .drop(['dura_A5', 'dura_A6', 'dura_A7', 'dura_A8', # 2-2 참값판단 프로세스\n", " 'dura_B5', 'dura_B6', 'dura_B7', 'dura_B8',\n", " 'D_n', 'S_n', 'Unnamed: 0'], axis=1)" ] }, { "cell_type": "code", "execution_count": 93, "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", "
inter_nostart_unixphas_Aphas_Bduration
18417517044155891143
18517517044155892245
18617517044155893333
18717517044155893422
18817517044155894437
18917517044157701143
19017517044157702245
19117517044157703333
19217517044157703422
19317517044157704437
19417517044159501143
19517517044159502245
19617517044159503333
19717517044159503422
19817517044159504437
\n", "
" ], "text/plain": [ " inter_no start_unix phas_A phas_B duration\n", "184 175 1704415589 1 1 43\n", "185 175 1704415589 2 2 45\n", "186 175 1704415589 3 3 33\n", "187 175 1704415589 3 4 22\n", "188 175 1704415589 4 4 37\n", "189 175 1704415770 1 1 43\n", "190 175 1704415770 2 2 45\n", "191 175 1704415770 3 3 33\n", "192 175 1704415770 3 4 22\n", "193 175 1704415770 4 4 37\n", "194 175 1704415950 1 1 43\n", "195 175 1704415950 2 2 45\n", "196 175 1704415950 3 3 33\n", "197 175 1704415950 3 4 22\n", "198 175 1704415950 4 4 37" ] }, "execution_count": 93, "metadata": {}, "output_type": "execute_result" } ], "source": [ "######\n", "self.hrhists.reset_index(drop=True).query('inter_no==@inter_no')[:15] # 2-3 계층화" ] }, { "cell_type": "code", "execution_count": 94, "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", "
inter_nostart_unixphas_Aphas_Bmove_Amove_Bdurationnode_idstate
1851751704415950118443i0gGGrgrrrgGGGGrgrr
1861751704415950227345i0grrGgrrrgrrrrGgrr
1871751704415950336133i0grrrgGGGgrrrrrgrr
1881751704415950346222i0grrrgGGrgrrrrrgGr
1891751704415950445237i0grrrgrrrgrrrrrgGG
1901751704416178118454i0gGGrgrrrgGGGGrgrr
1911751704416178227357i0grrGgrrrgrrrrGgrr
1921751704416178336142i0grrrgGGGgrrrrrgrr
1931751704416178346228i0grrrgGGrgrrrrrgGr
1941751704416178445247i0grrrgrrrgrrrrrgGG
1951751704416358118443i0gGGrgrrrgGGGGrgrr
1961751704416358227345i0grrGgrrrgrrrrGgrr
1971751704416358336133i0grrrgGGGgrrrrrgrr
1981751704416358346222i0grrrgGGrgrrrrrgGr
1991751704416358445237i0grrrgrrrgrrrrrgGG
\n", "
" ], "text/plain": [ " inter_no start_unix phas_A phas_B move_A move_B duration node_id \\\n", "185 175 1704415950 1 1 8 4 43 i0 \n", "186 175 1704415950 2 2 7 3 45 i0 \n", "187 175 1704415950 3 3 6 1 33 i0 \n", "188 175 1704415950 3 4 6 2 22 i0 \n", "189 175 1704415950 4 4 5 2 37 i0 \n", "190 175 1704416178 1 1 8 4 54 i0 \n", "191 175 1704416178 2 2 7 3 57 i0 \n", "192 175 1704416178 3 3 6 1 42 i0 \n", "193 175 1704416178 3 4 6 2 28 i0 \n", "194 175 1704416178 4 4 5 2 47 i0 \n", "195 175 1704416358 1 1 8 4 43 i0 \n", "196 175 1704416358 2 2 7 3 45 i0 \n", "197 175 1704416358 3 3 6 1 33 i0 \n", "198 175 1704416358 3 4 6 2 22 i0 \n", "199 175 1704416358 4 4 5 2 37 i0 \n", "\n", " state \n", "185 gGGrgrrrgGGGGrgrr \n", "186 grrGgrrrgrrrrGgrr \n", "187 grrrgGGGgrrrrrgrr \n", "188 grrrgGGrgrrrrrgGr \n", "189 grrrgrrrgrrrrrgGG \n", "190 gGGrgrrrgGGGGrgrr \n", "191 grrGgrrrgrrrrGgrr \n", "192 grrrgGGGgrrrrrgrr \n", "193 grrrgGGrgrrrrrgGr \n", "194 grrrgrrrgrrrrrgGG \n", "195 gGGrgrrrgGGGGrgrr \n", "196 grrGgrrrgrrrrGgrr \n", "197 grrrgGGGgrrrrrgrr \n", "198 grrrgGGrgrrrrrgGr \n", "199 grrrgrrrgrrrrrgGG " ] }, "execution_count": 94, "metadata": {}, "output_type": "execute_result" } ], "source": [ "self.histid.query('node_id==@Node_id')[:15] # 4-2 state 붙임" ] }, { "cell_type": "code", "execution_count": 95, "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", "
inter_nonode_idstart_unixphas_Aphas_Bmove_Amove_Bdurationstate
44175i01704415950118443gGGrgrrrgGGGGrgrr
45175i01704415950227345grrGgrrrgrrrrGgrr
46175i01704415950336133grrrgGGGgrrrrrgrr
47175i01704415950346222grrrgGGrgrrrrrgGr
48175i01704415950445237grrrgrrrgrrrrrgGG
118175i01704416178118454gGGrgrrrgGGGGrgrr
119175i01704416178227357grrGgrrrgrrrrGgrr
120175i01704416178336142grrrgGGGgrrrrrgrr
121175i01704416178346228grrrgGGrgrrrrrgGr
122175i01704416178445247grrrgrrrgrrrrrgGG
200175i01704416358118443gGGrgrrrgGGGGrgrr
201175i01704416358227345grrGgrrrgrrrrGgrr
202175i01704416358336133grrrgGGGgrrrrrgrr
203175i01704416358346222grrrgGGrgrrrrrgGr
204175i01704416358445237grrrgrrrgrrrrrgGG
\n", "
" ], "text/plain": [ " inter_no node_id start_unix phas_A phas_B move_A move_B duration \\\n", "44 175 i0 1704415950 1 1 8 4 43 \n", "45 175 i0 1704415950 2 2 7 3 45 \n", "46 175 i0 1704415950 3 3 6 1 33 \n", "47 175 i0 1704415950 3 4 6 2 22 \n", "48 175 i0 1704415950 4 4 5 2 37 \n", "118 175 i0 1704416178 1 1 8 4 54 \n", "119 175 i0 1704416178 2 2 7 3 57 \n", "120 175 i0 1704416178 3 3 6 1 42 \n", "121 175 i0 1704416178 3 4 6 2 28 \n", "122 175 i0 1704416178 4 4 5 2 47 \n", "200 175 i0 1704416358 1 1 8 4 43 \n", "201 175 i0 1704416358 2 2 7 3 45 \n", "202 175 i0 1704416358 3 3 6 1 33 \n", "203 175 i0 1704416358 3 4 6 2 22 \n", "204 175 i0 1704416358 4 4 5 2 37 \n", "\n", " state \n", "44 gGGrgrrrgGGGGrgrr \n", "45 grrGgrrrgrrrrGgrr \n", "46 grrrgGGGgrrrrrgrr \n", "47 grrrgGGrgrrrrrgGr \n", "48 grrrgrrrgrrrrrgGG \n", "118 gGGrgrrrgGGGGrgrr \n", "119 grrGgrrrgrrrrGgrr \n", "120 grrrgGGGgrrrrrgrr \n", "121 grrrgGGrgrrrrrgGr \n", "122 grrrgrrrgrrrrrgGG \n", "200 gGGrgrrrgGGGGrgrr \n", "201 grrGgrrrgrrrrGgrr \n", "202 grrrgGGGgrrrrrgrr \n", "203 grrrgGGrgrrrrrgGr \n", "204 grrrgrrrgrrrrrgGG " ] }, "execution_count": 95, "metadata": {}, "output_type": "execute_result" } ], "source": [ "self.histids.query('node_id==@Node_id')[:15] # 4-3 부교차로 정보 추가" ] }, { "cell_type": "code", "execution_count": 96, "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", "
inter_nonode_idstart_unixphas_Aphas_Bmove_Amove_Bdurationstatephase_sumo
16175i01704415950118443gGGrgrrrgGGGGrgrr0
17175i01704415950227345grrGgrrrgrrrrGgrr1
18175i01704415950336133grrrgGGGgrrrrrgrr2
19175i01704415950346222grrrgGGrgrrrrrgGr3
20175i01704415950445237grrrgrrrgrrrrrgGG4
21175i01704416178118454gGGrgrrrgGGGGrgrr0
22175i01704416178227357grrGgrrrgrrrrGgrr1
23175i01704416178336142grrrgGGGgrrrrrgrr2
24175i01704416178346228grrrgGGrgrrrrrgGr3
25175i01704416178445247grrrgrrrgrrrrrgGG4
26175i01704416358118443gGGrgrrrgGGGGrgrr0
27175i01704416358227345grrGgrrrgrrrrGgrr1
28175i01704416358336133grrrgGGGgrrrrrgrr2
29175i01704416358346222grrrgGGrgrrrrrgGr3
30175i01704416358445237grrrgrrrgrrrrrgGG4
\n", "
" ], "text/plain": [ " inter_no node_id start_unix phas_A phas_B move_A move_B duration \\\n", "16 175 i0 1704415950 1 1 8 4 43 \n", "17 175 i0 1704415950 2 2 7 3 45 \n", "18 175 i0 1704415950 3 3 6 1 33 \n", "19 175 i0 1704415950 3 4 6 2 22 \n", "20 175 i0 1704415950 4 4 5 2 37 \n", "21 175 i0 1704416178 1 1 8 4 54 \n", "22 175 i0 1704416178 2 2 7 3 57 \n", "23 175 i0 1704416178 3 3 6 1 42 \n", "24 175 i0 1704416178 3 4 6 2 28 \n", "25 175 i0 1704416178 4 4 5 2 47 \n", "26 175 i0 1704416358 1 1 8 4 43 \n", "27 175 i0 1704416358 2 2 7 3 45 \n", "28 175 i0 1704416358 3 3 6 1 33 \n", "29 175 i0 1704416358 3 4 6 2 22 \n", "30 175 i0 1704416358 4 4 5 2 37 \n", "\n", " state phase_sumo \n", "16 gGGrgrrrgGGGGrgrr 0 \n", "17 grrGgrrrgrrrrGgrr 1 \n", "18 grrrgGGGgrrrrrgrr 2 \n", "19 grrrgGGrgrrrrrgGr 3 \n", "20 grrrgrrrgrrrrrgGG 4 \n", "21 gGGrgrrrgGGGGrgrr 0 \n", "22 grrGgrrrgrrrrGgrr 1 \n", "23 grrrgGGGgrrrrrgrr 2 \n", "24 grrrgGGrgrrrrrgGr 3 \n", "25 grrrgrrrgrrrrrgGG 4 \n", "26 gGGrgrrrgGGGGrgrr 0 \n", "27 grrGgrrrgrrrrGgrr 1 \n", "28 grrrgGGGgrrrrrgrr 2 \n", "29 grrrgGGrgrrrrrgGr 3 \n", "30 grrrgrrrgrrrrrgGG 4 " ] }, "execution_count": 96, "metadata": {}, "output_type": "execute_result" } ], "source": [ "######\n", "self.sigtable.query('node_id==@Node_id')[:15] # 5-1 시작, 종료시점 설정" ] }, { "cell_type": "code", "execution_count": 97, "metadata": {}, "outputs": [], "source": [ "# self.SIGTABLE.query('node_id==@Node_id')[:15] # 5-2 적색 황색신호 부여" ] }, { "cell_type": "code", "execution_count": 98, "metadata": {}, "outputs": [], "source": [ "# dp = DailyPreprocessor()\n", "# dp.load_data()\n", "# dp.get_intermediates()" ] }, { "cell_type": "code", "execution_count": 99, "metadata": {}, "outputs": [], "source": [ "# 4-2. histid\n", "self.histid = self.movedur.copy()\n", "self.histid['node_id'] = self.histid['inter_no'].map(self.inter2node)\n", "histid_start = self.present_time - 600\n", "self.histid = self.histid[self.histid.start_unix > histid_start]\n", "\n", "mapping_dict = self.matching.set_index(['node_id', 'move_no'])['state'].to_dict()\n", "\n", "for i, row in self.histid.iterrows():\n", " node_id = row.node_id\n", " move_A = row.move_A\n", " move_B = row.move_B\n", " \n", " # A링의 state 지정\n", " if (node_id, move_A) in mapping_dict:\n", " state_A = mapping_dict[(node_id, move_A)]\n", " else:\n", " state_A = ''.join(self.node2init[node_id])\n", " self.histid.at[i, 'state_A'] = state_A\n", "\n", " # B링의 state 지정\n", " if (node_id, move_B) in mapping_dict:\n", " state_B = mapping_dict[(node_id, move_B)]\n", " else:\n", " state_B = ''.join(self.node2init[node_id])\n", " self.histid.at[i, 'state_B'] = state_B " ] }, { "cell_type": "code", "execution_count": 100, "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", "
inter_nonode_idstart_unixphas_Aphas_Bmove_Amove_Bdurationstate_Astate_B
44175i01704415950118443grrrgrrrgGGGGrgrrgGGrgrrrgrrrrrgrr
45175i01704415950227345grrGgrrrgrrrrrgrrgrrrgrrrgrrrrGgrr
46175i01704415950336133grrrgGGrgrrrrrgrrgrrrgrrGgrrrrrgrr
47175i01704415950346222grrrgGGrgrrrrrgrrgrrrgrrrgrrrrrgGr
48175i01704415950445237grrrgrrrgrrrrrgrGgrrrgrrrgrrrrrgGr
118175i01704416178118454grrrgrrrgGGGGrgrrgGGrgrrrgrrrrrgrr
119175i01704416178227357grrGgrrrgrrrrrgrrgrrrgrrrgrrrrGgrr
120175i01704416178336142grrrgGGrgrrrrrgrrgrrrgrrGgrrrrrgrr
121175i01704416178346228grrrgGGrgrrrrrgrrgrrrgrrrgrrrrrgGr
122175i01704416178445247grrrgrrrgrrrrrgrGgrrrgrrrgrrrrrgGr
200175i01704416358118443grrrgrrrgGGGGrgrrgGGrgrrrgrrrrrgrr
201175i01704416358227345grrGgrrrgrrrrrgrrgrrrgrrrgrrrrGgrr
202175i01704416358336133grrrgGGrgrrrrrgrrgrrrgrrGgrrrrrgrr
203175i01704416358346222grrrgGGrgrrrrrgrrgrrrgrrrgrrrrrgGr
204175i01704416358445237grrrgrrrgrrrrrgrGgrrrgrrrgrrrrrgGr
262175i01704416538118443grrrgrrrgGGGGrgrrgGGrgrrrgrrrrrgrr
263175i01704416538227345grrGgrrrgrrrrrgrrgrrrgrrrgrrrrGgrr
264175i01704416538336133grrrgGGrgrrrrrgrrgrrrgrrGgrrrrrgrr
265175i01704416538346222grrrgGGrgrrrrrgrrgrrrgrrrgrrrrrgGr
266175i01704416538445237grrrgrrrgrrrrrgrGgrrrgrrrgrrrrrgGr
324175i01704416718118443grrrgrrrgGGGGrgrrgGGrgrrrgrrrrrgrr
325175i01704416718227345grrGgrrrgrrrrrgrrgrrrgrrrgrrrrGgrr
326175i01704416718336133grrrgGGrgrrrrrgrrgrrrgrrGgrrrrrgrr
327175i01704416718346222grrrgGGrgrrrrrgrrgrrrgrrrgrrrrrgGr
328175i01704416718445237grrrgrrrgrrrrrgrGgrrrgrrrgrrrrrgGr
362175i01704416820118424grrrgrrrgGGGGrgrrgGGrgrrrgrrrrrgrr
363175i01704416820227326grrGgrrrgrrrrrgrrgrrrgrrrgrrrrGgrr
364175i01704416820336119grrrgGGrgrrrrrgrrgrrrgrrGgrrrrrgrr
365175i01704416820346212grrrgGGrgrrrrrgrrgrrrgrrrgrrrrrgGr
366175i01704416820445221grrrgrrrgrrrrrgrGgrrrgrrrgrrrrrgGr
\n", "
" ], "text/plain": [ " inter_no node_id start_unix phas_A phas_B move_A move_B duration \\\n", "44 175 i0 1704415950 1 1 8 4 43 \n", "45 175 i0 1704415950 2 2 7 3 45 \n", "46 175 i0 1704415950 3 3 6 1 33 \n", "47 175 i0 1704415950 3 4 6 2 22 \n", "48 175 i0 1704415950 4 4 5 2 37 \n", "118 175 i0 1704416178 1 1 8 4 54 \n", "119 175 i0 1704416178 2 2 7 3 57 \n", "120 175 i0 1704416178 3 3 6 1 42 \n", "121 175 i0 1704416178 3 4 6 2 28 \n", "122 175 i0 1704416178 4 4 5 2 47 \n", "200 175 i0 1704416358 1 1 8 4 43 \n", "201 175 i0 1704416358 2 2 7 3 45 \n", "202 175 i0 1704416358 3 3 6 1 33 \n", "203 175 i0 1704416358 3 4 6 2 22 \n", "204 175 i0 1704416358 4 4 5 2 37 \n", "262 175 i0 1704416538 1 1 8 4 43 \n", "263 175 i0 1704416538 2 2 7 3 45 \n", "264 175 i0 1704416538 3 3 6 1 33 \n", "265 175 i0 1704416538 3 4 6 2 22 \n", "266 175 i0 1704416538 4 4 5 2 37 \n", "324 175 i0 1704416718 1 1 8 4 43 \n", "325 175 i0 1704416718 2 2 7 3 45 \n", "326 175 i0 1704416718 3 3 6 1 33 \n", "327 175 i0 1704416718 3 4 6 2 22 \n", "328 175 i0 1704416718 4 4 5 2 37 \n", "362 175 i0 1704416820 1 1 8 4 24 \n", "363 175 i0 1704416820 2 2 7 3 26 \n", "364 175 i0 1704416820 3 3 6 1 19 \n", "365 175 i0 1704416820 3 4 6 2 12 \n", "366 175 i0 1704416820 4 4 5 2 21 \n", "\n", " state_A state_B \n", "44 grrrgrrrgGGGGrgrr gGGrgrrrgrrrrrgrr \n", "45 grrGgrrrgrrrrrgrr grrrgrrrgrrrrGgrr \n", "46 grrrgGGrgrrrrrgrr grrrgrrGgrrrrrgrr \n", "47 grrrgGGrgrrrrrgrr grrrgrrrgrrrrrgGr \n", "48 grrrgrrrgrrrrrgrG grrrgrrrgrrrrrgGr \n", "118 grrrgrrrgGGGGrgrr gGGrgrrrgrrrrrgrr \n", "119 grrGgrrrgrrrrrgrr grrrgrrrgrrrrGgrr \n", "120 grrrgGGrgrrrrrgrr grrrgrrGgrrrrrgrr \n", "121 grrrgGGrgrrrrrgrr grrrgrrrgrrrrrgGr \n", "122 grrrgrrrgrrrrrgrG grrrgrrrgrrrrrgGr \n", "200 grrrgrrrgGGGGrgrr gGGrgrrrgrrrrrgrr \n", "201 grrGgrrrgrrrrrgrr grrrgrrrgrrrrGgrr \n", "202 grrrgGGrgrrrrrgrr grrrgrrGgrrrrrgrr \n", "203 grrrgGGrgrrrrrgrr grrrgrrrgrrrrrgGr \n", "204 grrrgrrrgrrrrrgrG grrrgrrrgrrrrrgGr \n", "262 grrrgrrrgGGGGrgrr gGGrgrrrgrrrrrgrr \n", "263 grrGgrrrgrrrrrgrr grrrgrrrgrrrrGgrr \n", "264 grrrgGGrgrrrrrgrr grrrgrrGgrrrrrgrr \n", "265 grrrgGGrgrrrrrgrr grrrgrrrgrrrrrgGr \n", "266 grrrgrrrgrrrrrgrG grrrgrrrgrrrrrgGr \n", "324 grrrgrrrgGGGGrgrr gGGrgrrrgrrrrrgrr \n", "325 grrGgrrrgrrrrrgrr grrrgrrrgrrrrGgrr \n", "326 grrrgGGrgrrrrrgrr grrrgrrGgrrrrrgrr \n", "327 grrrgGGrgrrrrrgrr grrrgrrrgrrrrrgGr \n", "328 grrrgrrrgrrrrrgrG grrrgrrrgrrrrrgGr \n", "362 grrrgrrrgGGGGrgrr gGGrgrrrgrrrrrgrr \n", "363 grrGgrrrgrrrrrgrr grrrgrrrgrrrrGgrr \n", "364 grrrgGGrgrrrrrgrr grrrgrrGgrrrrrgrr \n", "365 grrrgGGrgrrrrrgrr grrrgrrrgrrrrrgGr \n", "366 grrrgrrrgrrrrrgrG grrrgrrrgrrrrrgGr " ] }, "execution_count": 100, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# 4-3. histids\n", "new_histids = []\n", "for parent_id in self.parent_ids:\n", " for child_id in self.pa2ch[parent_id]:\n", " new_histid = self.histid.copy()[self.histid.node_id==parent_id].drop(columns=['state_A', 'state_B'])\n", " # new_histid[['inc_edge_A', 'out_edge_A', 'inc_edge_B', 'out_edge_B']] = np.nan\n", " for i, row in new_histid.iterrows():\n", " phas_A = row.phas_A\n", " phas_B = row.phas_B\n", " new_match = self.match6[self.match6.node_id==child_id]\n", " Arow = new_match[(new_match.phase_no==phas_A) & (new_match.ring_type=='A')]\n", "\n", " # A링의 state 지정\n", " state_A = Arow.iloc[0].state\n", " new_histid.at[i, 'state_A'] = state_A\n", "\n", " # B링의 state 지정\n", " Brow = new_match[(new_match.phase_no==phas_B) & (new_match.ring_type=='B')]\n", " state_B = Brow.iloc[0].state\n", " new_histid.at[i, 'state_B'] = state_B\n", "\n", " new_histid.at[i, 'node_id'] = child_id\n", " new_histids.append(new_histid)\n", "import pandas as pd\n", "new_histids = pd.concat(new_histids)\n", "self.histids = pd.concat([self.histid.copy(), new_histids])\n", "self.histids = self.histids.sort_values(by=['start_unix', 'node_id', 'phas_A', 'phas_B']).reset_index(drop=True)\n", "self.histids = self.histids[['inter_no', 'node_id', 'start_unix', 'phas_A', 'phas_B', 'move_A', 'move_B', 'duration', 'state_A', 'state_B']]\n", "self.histids.query('node_id==@Node_id')" ] }, { "cell_type": "code", "execution_count": 101, "metadata": {}, "outputs": [], "source": [ "self.set_timepoints()" ] }, { "cell_type": "code", "execution_count": 102, "metadata": {}, "outputs": [], "source": [ "df = self.sigtable.query('node_id==@Node_id')" ] }, { "cell_type": "code", "execution_count": 103, "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", "
inter_nonode_idstart_unixphas_Aphas_Bmove_Amove_Bdurationstate_Astate_Bphase_sumo
16175i01704415950118443grrrgrrrgGGGGrgrrgGGrgrrrgrrrrrgrr0
17175i01704415950227345grrGgrrrgrrrrrgrrgrrrgrrrgrrrrGgrr1
18175i01704415950336133grrrgGGrgrrrrrgrrgrrrgrrGgrrrrrgrr2
19175i01704415950346222grrrgGGrgrrrrrgrrgrrrgrrrgrrrrrgGr3
20175i01704415950445237grrrgrrrgrrrrrgrGgrrrgrrrgrrrrrgGr4
21175i01704416178118454grrrgrrrgGGGGrgrrgGGrgrrrgrrrrrgrr0
22175i01704416178227357grrGgrrrgrrrrrgrrgrrrgrrrgrrrrGgrr1
23175i01704416178336142grrrgGGrgrrrrrgrrgrrrgrrGgrrrrrgrr2
24175i01704416178346228grrrgGGrgrrrrrgrrgrrrgrrrgrrrrrgGr3
25175i01704416178445247grrrgrrrgrrrrrgrGgrrrgrrrgrrrrrgGr4
26175i01704416358118443grrrgrrrgGGGGrgrrgGGrgrrrgrrrrrgrr0
27175i01704416358227345grrGgrrrgrrrrrgrrgrrrgrrrgrrrrGgrr1
28175i01704416358336133grrrgGGrgrrrrrgrrgrrrgrrGgrrrrrgrr2
29175i01704416358346222grrrgGGrgrrrrrgrrgrrrgrrrgrrrrrgGr3
30175i01704416358445237grrrgrrrgrrrrrgrGgrrrgrrrgrrrrrgGr4
\n", "
" ], "text/plain": [ " inter_no node_id start_unix phas_A phas_B move_A move_B duration \\\n", "16 175 i0 1704415950 1 1 8 4 43 \n", "17 175 i0 1704415950 2 2 7 3 45 \n", "18 175 i0 1704415950 3 3 6 1 33 \n", "19 175 i0 1704415950 3 4 6 2 22 \n", "20 175 i0 1704415950 4 4 5 2 37 \n", "21 175 i0 1704416178 1 1 8 4 54 \n", "22 175 i0 1704416178 2 2 7 3 57 \n", "23 175 i0 1704416178 3 3 6 1 42 \n", "24 175 i0 1704416178 3 4 6 2 28 \n", "25 175 i0 1704416178 4 4 5 2 47 \n", "26 175 i0 1704416358 1 1 8 4 43 \n", "27 175 i0 1704416358 2 2 7 3 45 \n", "28 175 i0 1704416358 3 3 6 1 33 \n", "29 175 i0 1704416358 3 4 6 2 22 \n", "30 175 i0 1704416358 4 4 5 2 37 \n", "\n", " state_A state_B phase_sumo \n", "16 grrrgrrrgGGGGrgrr gGGrgrrrgrrrrrgrr 0 \n", "17 grrGgrrrgrrrrrgrr grrrgrrrgrrrrGgrr 1 \n", "18 grrrgGGrgrrrrrgrr grrrgrrGgrrrrrgrr 2 \n", "19 grrrgGGrgrrrrrgrr grrrgrrrgrrrrrgGr 3 \n", "20 grrrgrrrgrrrrrgrG grrrgrrrgrrrrrgGr 4 \n", "21 grrrgrrrgGGGGrgrr gGGrgrrrgrrrrrgrr 0 \n", "22 grrGgrrrgrrrrrgrr grrrgrrrgrrrrGgrr 1 \n", "23 grrrgGGrgrrrrrgrr grrrgrrGgrrrrrgrr 2 \n", "24 grrrgGGrgrrrrrgrr grrrgrrrgrrrrrgGr 3 \n", "25 grrrgrrrgrrrrrgrG grrrgrrrgrrrrrgGr 4 \n", "26 grrrgrrrgGGGGrgrr gGGrgrrrgrrrrrgrr 0 \n", "27 grrGgrrrgrrrrrgrr grrrgrrrgrrrrGgrr 1 \n", "28 grrrgGGrgrrrrrgrr grrrgrrGgrrrrrgrr 2 \n", "29 grrrgGGrgrrrrrgrr grrrgrrrgrrrrrgGr 3 \n", "30 grrrgrrrgrrrrrgrG grrrgrrrgrrrrrgGr 4 " ] }, "execution_count": 103, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df" ] }, { "cell_type": "code", "execution_count": 104, "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", "
inter_nonode_idstart_unixphas_Aphas_Bmove_Amove_Bdurationstate_Astate_Bphase_sumo
16175i01704415950118443grrrgrrrgGGGGrgrrgGGrgrrrgrrrrrgrr0
17175i01704415950227345grrGgrrrgrrrrrgrrgrrrgrrrgrrrrGgrr1
18175i01704415950336133grrrgGGrgrrrrrgrrgrrrgrrGgrrrrrgrr2
19175i01704415950346222grrrgGGrgrrrrrgrrgrrrgrrrgrrrrrgGr3
20175i01704415950445237grrrgrrrgrrrrrgrGgrrrgrrrgrrrrrgGr4
21175i01704416178118454grrrgrrrgGGGGrgrrgGGrgrrrgrrrrrgrr0
22175i01704416178227357grrGgrrrgrrrrrgrrgrrrgrrrgrrrrGgrr1
23175i01704416178336142grrrgGGrgrrrrrgrrgrrrgrrGgrrrrrgrr2
24175i01704416178346228grrrgGGrgrrrrrgrrgrrrgrrrgrrrrrgGr3
25175i01704416178445247grrrgrrrgrrrrrgrGgrrrgrrrgrrrrrgGr4
26175i01704416358118443grrrgrrrgGGGGrgrrgGGrgrrrgrrrrrgrr0
27175i01704416358227345grrGgrrrgrrrrrgrrgrrrgrrrgrrrrGgrr1
28175i01704416358336133grrrgGGrgrrrrrgrrgrrrgrrGgrrrrrgrr2
29175i01704416358346222grrrgGGrgrrrrrgrrgrrrgrrrgrrrrrgGr3
30175i01704416358445237grrrgrrrgrrrrrgrGgrrrgrrrgrrrrrgGr4
\n", "
" ], "text/plain": [ " inter_no node_id start_unix phas_A phas_B move_A move_B duration \\\n", "16 175 i0 1704415950 1 1 8 4 43 \n", "17 175 i0 1704415950 2 2 7 3 45 \n", "18 175 i0 1704415950 3 3 6 1 33 \n", "19 175 i0 1704415950 3 4 6 2 22 \n", "20 175 i0 1704415950 4 4 5 2 37 \n", "21 175 i0 1704416178 1 1 8 4 54 \n", "22 175 i0 1704416178 2 2 7 3 57 \n", "23 175 i0 1704416178 3 3 6 1 42 \n", "24 175 i0 1704416178 3 4 6 2 28 \n", "25 175 i0 1704416178 4 4 5 2 47 \n", "26 175 i0 1704416358 1 1 8 4 43 \n", "27 175 i0 1704416358 2 2 7 3 45 \n", "28 175 i0 1704416358 3 3 6 1 33 \n", "29 175 i0 1704416358 3 4 6 2 22 \n", "30 175 i0 1704416358 4 4 5 2 37 \n", "\n", " state_A state_B phase_sumo \n", "16 grrrgrrrgGGGGrgrr gGGrgrrrgrrrrrgrr 0 \n", "17 grrGgrrrgrrrrrgrr grrrgrrrgrrrrGgrr 1 \n", "18 grrrgGGrgrrrrrgrr grrrgrrGgrrrrrgrr 2 \n", "19 grrrgGGrgrrrrrgrr grrrgrrrgrrrrrgGr 3 \n", "20 grrrgrrrgrrrrrgrG grrrgrrrgrrrrrgGr 4 \n", "21 grrrgrrrgGGGGrgrr gGGrgrrrgrrrrrgrr 0 \n", "22 grrGgrrrgrrrrrgrr grrrgrrrgrrrrGgrr 1 \n", "23 grrrgGGrgrrrrrgrr grrrgrrGgrrrrrgrr 2 \n", "24 grrrgGGrgrrrrrgrr grrrgrrrgrrrrrgGr 3 \n", "25 grrrgrrrgrrrrrgrG grrrgrrrgrrrrrgGr 4 \n", "26 grrrgrrrgGGGGrgrr gGGrgrrrgrrrrrgrr 0 \n", "27 grrGgrrrgrrrrrgrr grrrgrrrgrrrrGgrr 1 \n", "28 grrrgGGrgrrrrrgrr grrrgrrGgrrrrrgrr 2 \n", "29 grrrgGGrgrrrrrgrr grrrgrrrgrrrrrgGr 3 \n", "30 grrrgrrrgrrrrrgrG grrrgrrrgrrrrrgGr 4 " ] }, "execution_count": 104, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = self.sigtable.query('node_id==@Node_id')\n", "df" ] }, { "cell_type": "code", "execution_count": 105, "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", "
inter_nonode_idstart_unixphas_Aphas_Bdurationstate_Astate_Bphase_sumored_Ared_Byellow_Ayellow_B
16175i017044159501143grrrgrrrgGGGGrgrrgGGrgrrrgrrrrrgrr01144
17175i017044159502245grrGgrrrgrrrrrgrrgrrrgrrrgrrrrGgrr11144
18175i017044159503333grrrgGGrgrrrrrgrrgrrrgrrGgrrrrrgrr21144
19175i017044159503422grrrgGGrgrrrrrgrrgrrrgrrrgrrrrrgGr31144
20175i017044159504437grrrgrrrgrrrrrgrGgrrrgrrrgrrrrrgGr41144
21175i017044161781154grrrgrrrgGGGGrgrrgGGrgrrrgrrrrrgrr01144
22175i017044161782257grrGgrrrgrrrrrgrrgrrrgrrrgrrrrGgrr11144
23175i017044161783342grrrgGGrgrrrrrgrrgrrrgrrGgrrrrrgrr21144
24175i017044161783428grrrgGGrgrrrrrgrrgrrrgrrrgrrrrrgGr31144
25175i017044161784447grrrgrrrgrrrrrgrGgrrrgrrrgrrrrrgGr41144
26175i017044163581143grrrgrrrgGGGGrgrrgGGrgrrrgrrrrrgrr01144
27175i017044163582245grrGgrrrgrrrrrgrrgrrrgrrrgrrrrGgrr11144
28175i017044163583333grrrgGGrgrrrrrgrrgrrrgrrGgrrrrrgrr21144
29175i017044163583422grrrgGGrgrrrrrgrrgrrrgrrrgrrrrrgGr31144
30175i017044163584437grrrgrrrgrrrrrgrGgrrrgrrrgrrrrrgGr41144
\n", "
" ], "text/plain": [ " inter_no node_id start_unix phas_A phas_B duration state_A \\\n", "16 175 i0 1704415950 1 1 43 grrrgrrrgGGGGrgrr \n", "17 175 i0 1704415950 2 2 45 grrGgrrrgrrrrrgrr \n", "18 175 i0 1704415950 3 3 33 grrrgGGrgrrrrrgrr \n", "19 175 i0 1704415950 3 4 22 grrrgGGrgrrrrrgrr \n", "20 175 i0 1704415950 4 4 37 grrrgrrrgrrrrrgrG \n", "21 175 i0 1704416178 1 1 54 grrrgrrrgGGGGrgrr \n", "22 175 i0 1704416178 2 2 57 grrGgrrrgrrrrrgrr \n", "23 175 i0 1704416178 3 3 42 grrrgGGrgrrrrrgrr \n", "24 175 i0 1704416178 3 4 28 grrrgGGrgrrrrrgrr \n", "25 175 i0 1704416178 4 4 47 grrrgrrrgrrrrrgrG \n", "26 175 i0 1704416358 1 1 43 grrrgrrrgGGGGrgrr \n", "27 175 i0 1704416358 2 2 45 grrGgrrrgrrrrrgrr \n", "28 175 i0 1704416358 3 3 33 grrrgGGrgrrrrrgrr \n", "29 175 i0 1704416358 3 4 22 grrrgGGrgrrrrrgrr \n", "30 175 i0 1704416358 4 4 37 grrrgrrrgrrrrrgrG \n", "\n", " state_B phase_sumo red_A red_B yellow_A yellow_B \n", "16 gGGrgrrrgrrrrrgrr 0 1 1 4 4 \n", "17 grrrgrrrgrrrrGgrr 1 1 1 4 4 \n", "18 grrrgrrGgrrrrrgrr 2 1 1 4 4 \n", "19 grrrgrrrgrrrrrgGr 3 1 1 4 4 \n", "20 grrrgrrrgrrrrrgGr 4 1 1 4 4 \n", "21 gGGrgrrrgrrrrrgrr 0 1 1 4 4 \n", "22 grrrgrrrgrrrrGgrr 1 1 1 4 4 \n", "23 grrrgrrGgrrrrrgrr 2 1 1 4 4 \n", "24 grrrgrrrgrrrrrgGr 3 1 1 4 4 \n", "25 grrrgrrrgrrrrrgGr 4 1 1 4 4 \n", "26 gGGrgrrrgrrrrrgrr 0 1 1 4 4 \n", "27 grrrgrrrgrrrrGgrr 1 1 1 4 4 \n", "28 grrrgrrGgrrrrrgrr 2 1 1 4 4 \n", "29 grrrgrrrgrrrrrgGr 3 1 1 4 4 \n", "30 grrrgrrrgrrrrrgGr 4 1 1 4 4 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "for i, row in df.iterrows():\n", " inter_no = row.inter_no\n", " phas_A = row.phas_A\n", " phas_B = row.phas_B\n", " start_unix = row.start_unix\n", " prow = self.load_prow(inter_no, start_unix)[1].iloc[0]\n", " red_A = prow[f'red_A{phas_A}']\n", " yellow_A = prow[f'yellow_A{phas_A}']\n", " red_B = prow[f'red_B{phas_B}']\n", " yellow_B = prow[f'yellow_B{phas_B}']\n", " df.loc[i, ['red_A', 'red_B', 'yellow_A', 'yellow_B']] = red_A, red_B, yellow_A, yellow_B\n", "df = df.astype({'red_A': int, 'red_B': int, 'yellow_A': int, 'yellow_B': int,\n", " 'phas_A':str, 'phas_B':str})\n", "df = df.drop(['move_A','move_B'], axis=1)\n", "display(df)" ] }, { "cell_type": "code", "execution_count": 110, "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", "
phas_Adurationstate_Ared_Ayellow_A
0143grrrgrrrgGGGGrgrr14
1245grrGgrrrgrrrrrgrr14
2333grrrgGGrgrrrrrgrr14
3322grrrgGGrgrrrrrgrr14
4437grrrgrrrgrrrrrgrG14
5154grrrgrrrgGGGGrgrr14
6257grrGgrrrgrrrrrgrr14
7342grrrgGGrgrrrrrgrr14
8328grrrgGGrgrrrrrgrr14
9447grrrgrrrgrrrrrgrG14
10143grrrgrrrgGGGGrgrr14
11245grrGgrrrgrrrrrgrr14
12333grrrgGGrgrrrrrgrr14
13322grrrgGGrgrrrrrgrr14
14437grrrgrrrgrrrrrgrG14
\n", "
" ], "text/plain": [ " phas_A duration state_A red_A yellow_A\n", "0 1 43 grrrgrrrgGGGGrgrr 1 4\n", "1 2 45 grrGgrrrgrrrrrgrr 1 4\n", "2 3 33 grrrgGGrgrrrrrgrr 1 4\n", "3 3 22 grrrgGGrgrrrrrgrr 1 4\n", "4 4 37 grrrgrrrgrrrrrgrG 1 4\n", "5 1 54 grrrgrrrgGGGGrgrr 1 4\n", "6 2 57 grrGgrrrgrrrrrgrr 1 4\n", "7 3 42 grrrgGGrgrrrrrgrr 1 4\n", "8 3 28 grrrgGGrgrrrrrgrr 1 4\n", "9 4 47 grrrgrrrgrrrrrgrG 1 4\n", "10 1 43 grrrgrrrgGGGGrgrr 1 4\n", "11 2 45 grrGgrrrgrrrrrgrr 1 4\n", "12 3 33 grrrgGGrgrrrrrgrr 1 4\n", "13 3 22 grrrgGGrgrrrrrgrr 1 4\n", "14 4 37 grrrgrrrgrrrrrgrG 1 4" ] }, "execution_count": 110, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_A = df[['phas_A', 'duration', 'state_A', 'red_A', 'yellow_A']]\n", "df_B = df[['phas_B', 'duration', 'state_B', 'red_B', 'yellow_B']]\n", "df_A = df_A.reset_index(drop=True)\n", "df_A" ] }, { "cell_type": "code", "execution_count": 119, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'aa'" ] }, "execution_count": 119, "metadata": {}, "output_type": "execute_result" } ], "source": [ "state_y = ''\n", "state_y += 'a'\n", "state_y += 'a'\n", "state_y" ] }, { "cell_type": "code", "execution_count": 134, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "grrrgrrrgGGGGrgrr\n", "grrrgrrrgrrrrrgrr\n", "grrrgrrrgyyyyrgrr\n", "grrGgrrrgrrrrrgrr\n", "grrrgrrrgrrrrrgrr\n", "grrygrrrgrrrrrgrr\n", "grrrgGGrgrrrrrgrr\n" ] } ], "source": [ "pre_state = 'grrrgrrrgGGGGrgrr'\n", "cur_state = 'grrGgrrrgrrrrrgrr'\n", "nex_state = 'grrrgGGrgrrrrrgrr'\n", "\n", "def get_red(pre_state:str, cur_state:str):\n", " assert len(pre_state) == len(cur_state), \"cur_state, nex_state의 길이가 서로 다릅니다.\"\n", " state_r = ''\n", " for c, n in zip(pre_state, cur_state):\n", " if c == n:\n", " state_r += c\n", " elif (c == 'r') and (n == 'G'):\n", " state_r += 'r'\n", " elif (c == 'G') and (n == 'r'):\n", " state_r += 'r'\n", " else:\n", " raise ValueError(f\"예상치 못한 신호조합: current={c}, next={n}\")\n", " return state_r\n", "\n", "def get_yellow(cur_state:str, nex_state:str):\n", " assert len(cur_state) == len(nex_state), \"cur_state, nex_state의 길이가 서로 다릅니다.\"\n", " state_y = ''\n", " for c, n in zip(cur_state, nex_state):\n", " if c == n:\n", " state_y += c\n", " elif (c == 'r') and (n == 'G'):\n", " state_y += 'r'\n", " elif (c == 'G') and (n == 'r'):\n", " state_y += 'y'\n", " else:\n", " raise ValueError(f\"예상치 못한 신호조합: current={c}, next={n}\")\n", " return state_y\n", "print(pre_state)\n", "print(get_red(pre_state, cur_state))\n", "print(get_yellow(pre_state, cur_state))\n", "print(cur_state)\n", "print(get_red(cur_state, nex_state))\n", "print(get_yellow(cur_state, nex_state))\n", "print(nex_state)" ] }, { "cell_type": "code", "execution_count": 161, "metadata": {}, "outputs": [], "source": [ "df_A = df_A.reset_index(drop=True)\n", "df_B = df_B.reset_index(drop=True)" ] }, { "cell_type": "code", "execution_count": 171, "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", "
phas_Adurationstate_Ared_Ayellow_A
0143grrrgrrrgGGGGrgrr14
1245grrGgrrrgrrrrrgrr14
2333grrrgGGrgrrrrrgrr14
3322grrrgGGrgrrrrrgrr14
4437grrrgrrrgrrrrrgrG14
5154grrrgrrrgGGGGrgrr14
6257grrGgrrrgrrrrrgrr14
7342grrrgGGrgrrrrrgrr14
8328grrrgGGrgrrrrrgrr14
9447grrrgrrrgrrrrrgrG14
10143grrrgrrrgGGGGrgrr14
11245grrGgrrrgrrrrrgrr14
12333grrrgGGrgrrrrrgrr14
13322grrrgGGrgrrrrrgrr14
14437grrrgrrrgrrrrrgrG14
\n", "
" ], "text/plain": [ " phas_A duration state_A red_A yellow_A\n", "0 1 43 grrrgrrrgGGGGrgrr 1 4\n", "1 2 45 grrGgrrrgrrrrrgrr 1 4\n", "2 3 33 grrrgGGrgrrrrrgrr 1 4\n", "3 3 22 grrrgGGrgrrrrrgrr 1 4\n", "4 4 37 grrrgrrrgrrrrrgrG 1 4\n", "5 1 54 grrrgrrrgGGGGrgrr 1 4\n", "6 2 57 grrGgrrrgrrrrrgrr 1 4\n", "7 3 42 grrrgGGrgrrrrrgrr 1 4\n", "8 3 28 grrrgGGrgrrrrrgrr 1 4\n", "9 4 47 grrrgrrrgrrrrrgrG 1 4\n", "10 1 43 grrrgrrrgGGGGrgrr 1 4\n", "11 2 45 grrGgrrrgrrrrrgrr 1 4\n", "12 3 33 grrrgGGrgrrrrrgrr 1 4\n", "13 3 22 grrrgGGrgrrrrrgrr 1 4\n", "14 4 37 grrrgrrrgrrrrrgrG 1 4" ] }, "execution_count": 171, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_A" ] }, { "cell_type": "code", "execution_count": 163, "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", "
durationdurationdurationdurationphas_Aphas_Bred_Ared_Bstate_Astate_Byellow_Ayellow_B
0434343431111grrrgrrrgGGGGrgrrgGGrgrrrgrrrrrgrr44
1454545452211grrGgrrrgrrrrrgrrgrrrgrrrgrrrrGgrr44
2333333333311grrrgGGrgrrrrrgrrgrrrgrrGgrrrrrgrr44
3222222223411grrrgGGrgrrrrrgrrgrrrgrrrgrrrrrgGr44
4373737374411grrrgrrrgrrrrrgrGgrrrgrrrgrrrrrgGr44
5545454541111grrrgrrrgGGGGrgrrgGGrgrrrgrrrrrgrr44
6575757572211grrGgrrrgrrrrrgrrgrrrgrrrgrrrrGgrr44
7424242423311grrrgGGrgrrrrrgrrgrrrgrrGgrrrrrgrr44
8282828283411grrrgGGrgrrrrrgrrgrrrgrrrgrrrrrgGr44
9474747474411grrrgrrrgrrrrrgrGgrrrgrrrgrrrrrgGr44
10434343431111grrrgrrrgGGGGrgrrgGGrgrrrgrrrrrgrr44
11454545452211grrGgrrrgrrrrrgrrgrrrgrrrgrrrrGgrr44
12333333333311grrrgGGrgrrrrrgrrgrrrgrrGgrrrrrgrr44
13222222223411grrrgGGrgrrrrrgrrgrrrgrrrgrrrrrgGr44
14373737374411grrrgrrrgrrrrrgrGgrrrgrrrgrrrrrgGr44
\n", "
" ], "text/plain": [ " duration duration duration duration phas_A phas_B red_A red_B \\\n", "0 43 43 43 43 1 1 1 1 \n", "1 45 45 45 45 2 2 1 1 \n", "2 33 33 33 33 3 3 1 1 \n", "3 22 22 22 22 3 4 1 1 \n", "4 37 37 37 37 4 4 1 1 \n", "5 54 54 54 54 1 1 1 1 \n", "6 57 57 57 57 2 2 1 1 \n", "7 42 42 42 42 3 3 1 1 \n", "8 28 28 28 28 3 4 1 1 \n", "9 47 47 47 47 4 4 1 1 \n", "10 43 43 43 43 1 1 1 1 \n", "11 45 45 45 45 2 2 1 1 \n", "12 33 33 33 33 3 3 1 1 \n", "13 22 22 22 22 3 4 1 1 \n", "14 37 37 37 37 4 4 1 1 \n", "\n", " state_A state_B yellow_A yellow_B \n", "0 grrrgrrrgGGGGrgrr gGGrgrrrgrrrrrgrr 4 4 \n", "1 grrGgrrrgrrrrrgrr grrrgrrrgrrrrGgrr 4 4 \n", "2 grrrgGGrgrrrrrgrr grrrgrrGgrrrrrgrr 4 4 \n", "3 grrrgGGrgrrrrrgrr grrrgrrrgrrrrrgGr 4 4 \n", "4 grrrgrrrgrrrrrgrG grrrgrrrgrrrrrgGr 4 4 \n", "5 grrrgrrrgGGGGrgrr gGGrgrrrgrrrrrgrr 4 4 \n", "6 grrGgrrrgrrrrrgrr grrrgrrrgrrrrGgrr 4 4 \n", "7 grrrgGGrgrrrrrgrr grrrgrrGgrrrrrgrr 4 4 \n", "8 grrrgGGrgrrrrrgrr grrrgrrrgrrrrrgGr 4 4 \n", "9 grrrgrrrgrrrrrgrG grrrgrrrgrrrrrgGr 4 4 \n", "10 grrrgrrrgGGGGrgrr gGGrgrrrgrrrrrgrr 4 4 \n", "11 grrGgrrrgrrrrrgrr grrrgrrrgrrrrGgrr 4 4 \n", "12 grrrgGGrgrrrrrgrr grrrgrrGgrrrrrgrr 4 4 \n", "13 grrrgGGrgrrrrrgrr grrrgrrrgrrrrrgGr 4 4 \n", "14 grrrgrrrgrrrrrgrG grrrgrrrgrrrrrgGr 4 4 " ] }, "execution_count": 163, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = pd.concat([df_A, df_B], axis=1)\n", "df[sorted(df.columns)]" ] }, { "cell_type": "code", "execution_count": 218, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "phas_A 3\n", "duration 22\n", "state_A grrrgGGrgrrrrrgrr\n", "red_A 1\n", "yellow_A 4\n", "Name: 13, dtype: object" ] }, "execution_count": 218, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pre" ] }, { "cell_type": "code", "execution_count": 258, "metadata": {}, "outputs": [], "source": [ "import time\n", "\n", "now = time.time()\n", "def cumulate(df, alph):\n", " df = df.reset_index(drop=True)\n", "\n", " DF = []\n", " pre = pd.Series({f'phas_{alph}':None})\n", "\n", " start_time = 0\n", " elapsed = 0\n", " for i, cur in df.iterrows():\n", " \n", " # pre, nex\n", " if i != 0:\n", " pre = df.iloc[i-1]\n", " \n", " if i != len(df) - 1:\n", " nex = df.iloc[i+1]\n", " \n", " # duration\n", " if cur[f'phas_{alph}'] == nex[f'phas_{alph}']:\n", " continue\n", " if cur[f'phas_{alph}'] == pre[f'phas_{alph}']:\n", " duration = cur.duration + pre.duration\n", " else:\n", " duration = cur.duration\n", " start_times = []\n", " states = []\n", " phases = []\n", "\n", " # red\n", " if i != 0:\n", " start_time += elapsed\n", " start_times.append(start_time)\n", " states.append(get_red(pre[f'state_{alph}'], cur[f'state_{alph}']))\n", " phases.append(f'{cur[f\"phas_{alph}\"]}r')\n", "\n", " elapsed = cur[f'red_{alph}']\n", "\n", " # green\n", " if i == 0:\n", " start_time = 0\n", " else:\n", " start_time += elapsed\n", " start_times.append(start_time)\n", " states.append(cur[f'state_{alph}'])\n", " phases.append(f'{cur[f\"phas_{alph}\"]}g')\n", " if i == 0:\n", " elapsed = duration - cur[f'yellow_{alph}']\n", " else:\n", " elapsed = duration - cur[f'yellow_{alph}'] - cur[f'red_{alph}']\n", "\n", " # yellow\n", " if i != len(df) - 1:\n", " start_time += elapsed\n", " start_times.append(start_time)\n", " states.append(get_yellow(cur[f'state_{alph}'], nex[f'state_{alph}']))\n", " phases.append(f'{cur[f\"phas_{alph}\"]}y')\n", " elapsed = cur[f'yellow_{alph}']\n", " df_ = pd.DataFrame({'start_time':start_times, f'phas_{alph}':phases, f'state_{alph}':states})\n", " DF.append(df_)\n", " DF = pd.concat(DF).reset_index(drop=True)\n", " return DF\n", "df_a = cumulate(df_A, 'A')\n", "df_b = cumulate(df_B, 'B')" ] }, { "cell_type": "code", "execution_count": 262, "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", "
start_timephas_Astate_A
001ggrrrgrrrgGGGGrgrr
1391ygrrrgrrrgyyyyrgrr
2432rgrrrgrrrgrrrrrgrr
3442ggrrGgrrrgrrrrrgrr
4842ygrrygrrrgrrrrrgrr
5883rgrrrgGGrgrrrrrgrr
6893ggrrrgGGrgrrrrrgrr
71393ygrrrgyyrgrrrrrgrr
81434rgrrrgrrrgrrrrrgrr
91444ggrrrgrrrgrrrrrgrG
101764ygrrrgrrrgrrrrrgry
111801rgrrrgrrrgrrrrrgrr
121811ggrrrgrrrgGGGGrgrr
132301ygrrrgrrrgyyyyrgrr
142342rgrrrgrrrgrrrrrgrr
152352ggrrGgrrrgrrrrrgrr
162872ygrrygrrrgrrrrrgrr
172913rgrrrgGGrgrrrrrgrr
182923ggrrrgGGrgrrrrrgrr
193573ygrrrgyyrgrrrrrgrr
203614rgrrrgrrrgrrrrrgrr
213624ggrrrgrrrgrrrrrgrG
224044ygrrrgrrrgrrrrrgry
234081rgrrrgrrrgrrrrrgrr
244091ggrrrgrrrgGGGGrgrr
254471ygrrrgrrrgyyyyrgrr
264512rgrrrgrrrgrrrrrgrr
274522ggrrGgrrrgrrrrrgrr
284922ygrrygrrrgrrrrrgrr
294963rgrrrgGGrgrrrrrgrr
304973ggrrrgGGrgrrrrrgrr
315473ygrrrgyyrgrrrrrgrr
\n", "
" ], "text/plain": [ " start_time phas_A state_A\n", "0 0 1g grrrgrrrgGGGGrgrr\n", "1 39 1y grrrgrrrgyyyyrgrr\n", "2 43 2r grrrgrrrgrrrrrgrr\n", "3 44 2g grrGgrrrgrrrrrgrr\n", "4 84 2y grrygrrrgrrrrrgrr\n", "5 88 3r grrrgGGrgrrrrrgrr\n", "6 89 3g grrrgGGrgrrrrrgrr\n", "7 139 3y grrrgyyrgrrrrrgrr\n", "8 143 4r grrrgrrrgrrrrrgrr\n", "9 144 4g grrrgrrrgrrrrrgrG\n", "10 176 4y grrrgrrrgrrrrrgry\n", "11 180 1r grrrgrrrgrrrrrgrr\n", "12 181 1g grrrgrrrgGGGGrgrr\n", "13 230 1y grrrgrrrgyyyyrgrr\n", "14 234 2r grrrgrrrgrrrrrgrr\n", "15 235 2g grrGgrrrgrrrrrgrr\n", "16 287 2y grrygrrrgrrrrrgrr\n", "17 291 3r grrrgGGrgrrrrrgrr\n", "18 292 3g grrrgGGrgrrrrrgrr\n", "19 357 3y grrrgyyrgrrrrrgrr\n", "20 361 4r grrrgrrrgrrrrrgrr\n", "21 362 4g grrrgrrrgrrrrrgrG\n", "22 404 4y grrrgrrrgrrrrrgry\n", "23 408 1r grrrgrrrgrrrrrgrr\n", "24 409 1g grrrgrrrgGGGGrgrr\n", "25 447 1y grrrgrrrgyyyyrgrr\n", "26 451 2r grrrgrrrgrrrrrgrr\n", "27 452 2g grrGgrrrgrrrrrgrr\n", "28 492 2y grrygrrrgrrrrrgrr\n", "29 496 3r grrrgGGrgrrrrrgrr\n", "30 497 3g grrrgGGrgrrrrrgrr\n", "31 547 3y grrrgyyrgrrrrrgrr" ] }, "execution_count": 262, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_a" ] }, { "cell_type": "code", "execution_count": 263, "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", "
start_timephas_Bstate_B
001ggGGrgrrrgrrrrrgrr
1391ygyyrgrrrgrrrrrgrr
2432rgrrrgrrrgrrrrrgrr
3442ggrrrgrrrgrrrrGgrr
4842ygrrrgrrrgrrrrygrr
5883rgrrrgrrrgrrrrrgrr
6893ggrrrgrrGgrrrrrgrr
71173ygrrrgrrygrrrrrgrr
81214rgrrrgrrrgrrrrrgGr
91224ggrrrgrrrgrrrrrgGr
101764ygrrrgrrrgrrrrrgyr
111801rgrrrgrrrgrrrrrgrr
121811ggGGrgrrrgrrrrrgrr
132301ygyyrgrrrgrrrrrgrr
142342rgrrrgrrrgrrrrrgrr
152352ggrrrgrrrgrrrrGgrr
162872ygrrrgrrrgrrrrygrr
172913rgrrrgrrrgrrrrrgrr
182923ggrrrgrrGgrrrrrgrr
193293ygrrrgrrygrrrrrgrr
203334rgrrrgrrrgrrrrrgGr
213344ggrrrgrrrgrrrrrgGr
224044ygrrrgrrrgrrrrrgyr
234081rgrrrgrrrgrrrrrgrr
244091ggGGrgrrrgrrrrrgrr
254471ygyyrgrrrgrrrrrgrr
264512rgrrrgrrrgrrrrrgrr
274522ggrrrgrrrgrrrrGgrr
284922ygrrrgrrrgrrrrygrr
294963rgrrrgrrrgrrrrrgrr
304973ggrrrgrrGgrrrrrgrr
315253ygrrrgrrygrrrrrgrr
\n", "
" ], "text/plain": [ " start_time phas_B state_B\n", "0 0 1g gGGrgrrrgrrrrrgrr\n", "1 39 1y gyyrgrrrgrrrrrgrr\n", "2 43 2r grrrgrrrgrrrrrgrr\n", "3 44 2g grrrgrrrgrrrrGgrr\n", "4 84 2y grrrgrrrgrrrrygrr\n", "5 88 3r grrrgrrrgrrrrrgrr\n", "6 89 3g grrrgrrGgrrrrrgrr\n", "7 117 3y grrrgrrygrrrrrgrr\n", "8 121 4r grrrgrrrgrrrrrgGr\n", "9 122 4g grrrgrrrgrrrrrgGr\n", "10 176 4y grrrgrrrgrrrrrgyr\n", "11 180 1r grrrgrrrgrrrrrgrr\n", "12 181 1g gGGrgrrrgrrrrrgrr\n", "13 230 1y gyyrgrrrgrrrrrgrr\n", "14 234 2r grrrgrrrgrrrrrgrr\n", "15 235 2g grrrgrrrgrrrrGgrr\n", "16 287 2y grrrgrrrgrrrrygrr\n", "17 291 3r grrrgrrrgrrrrrgrr\n", "18 292 3g grrrgrrGgrrrrrgrr\n", "19 329 3y grrrgrrygrrrrrgrr\n", "20 333 4r grrrgrrrgrrrrrgGr\n", "21 334 4g grrrgrrrgrrrrrgGr\n", "22 404 4y grrrgrrrgrrrrrgyr\n", "23 408 1r grrrgrrrgrrrrrgrr\n", "24 409 1g gGGrgrrrgrrrrrgrr\n", "25 447 1y gyyrgrrrgrrrrrgrr\n", "26 451 2r grrrgrrrgrrrrrgrr\n", "27 452 2g grrrgrrrgrrrrGgrr\n", "28 492 2y grrrgrrrgrrrrygrr\n", "29 496 3r grrrgrrrgrrrrrgrr\n", "30 497 3g grrrgrrGgrrrrrgrr\n", "31 525 3y grrrgrrygrrrrrgrr" ] }, "execution_count": 263, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_b" ] }, { "cell_type": "code", "execution_count": 302, "metadata": {}, "outputs": [], "source": [ "pairs = set()\n", "pairs.add(2)" ] }, { "cell_type": "code", "execution_count": 304, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{('G', 'r'), ('g', 'g'), ('r', 'G'), ('r', 'r'), ('r', 'y'), ('y', 'r')}" ] }, "execution_count": 304, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pairs = set()\n", "for A, B in zip(df['state_A'], df['state_B']):\n", " for a, b in zip(A, B):\n", " pairs.add((a,b))\n", "pairs" ] }, { "cell_type": "code", "execution_count": 311, "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", "
start_timephasestate_Astate_Bdurationstate
001g_1ggrrrgrrrgGGGGrgrrgGGrgrrrgrrrrrgrr39gGGrgrrrgGGGGrgrr
1391y_1ygrrrgrrrgyyyyrgrrgyyrgrrrgrrrrrgrr4gyyrgrrrgyyyyrgrr
2432r_2rgrrrgrrrgrrrrrgrrgrrrgrrrgrrrrrgrr1grrrgrrrgrrrrrgrr
3442g_2ggrrGgrrrgrrrrrgrrgrrrgrrrgrrrrGgrr40grrGgrrrgrrrrGgrr
4842y_2ygrrygrrrgrrrrrgrrgrrrgrrrgrrrrygrr4grrygrrrgrrrrygrr
5883r_3rgrrrgGGrgrrrrrgrrgrrrgrrrgrrrrrgrr1grrrgGGrgrrrrrgrr
6893g_3ggrrrgGGrgrrrrrgrrgrrrgrrGgrrrrrgrr28grrrgGGGgrrrrrgrr
71173g_3ygrrrgGGrgrrrrrgrrgrrrgrrygrrrrrgrr4grrrgGGygrrrrrgrr
81213g_4rgrrrgGGrgrrrrrgrrgrrrgrrrgrrrrrgGr1grrrgGGrgrrrrrgGr
91223g_4ggrrrgGGrgrrrrrgrrgrrrgrrrgrrrrrgGr17grrrgGGrgrrrrrgGr
101393y_4ggrrrgyyrgrrrrrgrrgrrrgrrrgrrrrrgGr4grrrgyyrgrrrrrgGr
111434r_4ggrrrgrrrgrrrrrgrrgrrrgrrrgrrrrrgGr1grrrgrrrgrrrrrgGr
121444g_4ggrrrgrrrgrrrrrgrGgrrrgrrrgrrrrrgGr32grrrgrrrgrrrrrgGG
131764y_4ygrrrgrrrgrrrrrgrygrrrgrrrgrrrrrgyr4grrrgrrrgrrrrrgyy
141801r_1rgrrrgrrrgrrrrrgrrgrrrgrrrgrrrrrgrr1grrrgrrrgrrrrrgrr
151811g_1ggrrrgrrrgGGGGrgrrgGGrgrrrgrrrrrgrr49gGGrgrrrgGGGGrgrr
162301y_1ygrrrgrrrgyyyyrgrrgyyrgrrrgrrrrrgrr4gyyrgrrrgyyyyrgrr
172342r_2rgrrrgrrrgrrrrrgrrgrrrgrrrgrrrrrgrr1grrrgrrrgrrrrrgrr
182352g_2ggrrGgrrrgrrrrrgrrgrrrgrrrgrrrrGgrr52grrGgrrrgrrrrGgrr
192872y_2ygrrygrrrgrrrrrgrrgrrrgrrrgrrrrygrr4grrygrrrgrrrrygrr
202913r_3rgrrrgGGrgrrrrrgrrgrrrgrrrgrrrrrgrr1grrrgGGrgrrrrrgrr
212923g_3ggrrrgGGrgrrrrrgrrgrrrgrrGgrrrrrgrr37grrrgGGGgrrrrrgrr
223293g_3ygrrrgGGrgrrrrrgrrgrrrgrrygrrrrrgrr4grrrgGGygrrrrrgrr
233333g_4rgrrrgGGrgrrrrrgrrgrrrgrrrgrrrrrgGr1grrrgGGrgrrrrrgGr
243343g_4ggrrrgGGrgrrrrrgrrgrrrgrrrgrrrrrgGr23grrrgGGrgrrrrrgGr
253573y_4ggrrrgyyrgrrrrrgrrgrrrgrrrgrrrrrgGr4grrrgyyrgrrrrrgGr
263614r_4ggrrrgrrrgrrrrrgrrgrrrgrrrgrrrrrgGr1grrrgrrrgrrrrrgGr
273624g_4ggrrrgrrrgrrrrrgrGgrrrgrrrgrrrrrgGr42grrrgrrrgrrrrrgGG
284044y_4ygrrrgrrrgrrrrrgrygrrrgrrrgrrrrrgyr4grrrgrrrgrrrrrgyy
294081r_1rgrrrgrrrgrrrrrgrrgrrrgrrrgrrrrrgrr1grrrgrrrgrrrrrgrr
304091g_1ggrrrgrrrgGGGGrgrrgGGrgrrrgrrrrrgrr38gGGrgrrrgGGGGrgrr
314471y_1ygrrrgrrrgyyyyrgrrgyyrgrrrgrrrrrgrr4gyyrgrrrgyyyyrgrr
324512r_2rgrrrgrrrgrrrrrgrrgrrrgrrrgrrrrrgrr1grrrgrrrgrrrrrgrr
334522g_2ggrrGgrrrgrrrrrgrrgrrrgrrrgrrrrGgrr40grrGgrrrgrrrrGgrr
344922y_2ygrrygrrrgrrrrrgrrgrrrgrrrgrrrrygrr4grrygrrrgrrrrygrr
354963r_3rgrrrgGGrgrrrrrgrrgrrrgrrrgrrrrrgrr1grrrgGGrgrrrrrgrr
364973g_3ggrrrgGGrgrrrrrgrrgrrrgrrGgrrrrrgrr28grrrgGGGgrrrrrgrr
375253g_3ygrrrgGGrgrrrrrgrrgrrrgrrygrrrrrgrr22grrrgGGygrrrrrgrr
\n", "
" ], "text/plain": [ " start_time phase state_A state_B duration \\\n", "0 0 1g_1g grrrgrrrgGGGGrgrr gGGrgrrrgrrrrrgrr 39 \n", "1 39 1y_1y grrrgrrrgyyyyrgrr gyyrgrrrgrrrrrgrr 4 \n", "2 43 2r_2r grrrgrrrgrrrrrgrr grrrgrrrgrrrrrgrr 1 \n", "3 44 2g_2g grrGgrrrgrrrrrgrr grrrgrrrgrrrrGgrr 40 \n", "4 84 2y_2y grrygrrrgrrrrrgrr grrrgrrrgrrrrygrr 4 \n", "5 88 3r_3r grrrgGGrgrrrrrgrr grrrgrrrgrrrrrgrr 1 \n", "6 89 3g_3g grrrgGGrgrrrrrgrr grrrgrrGgrrrrrgrr 28 \n", "7 117 3g_3y grrrgGGrgrrrrrgrr grrrgrrygrrrrrgrr 4 \n", "8 121 3g_4r grrrgGGrgrrrrrgrr grrrgrrrgrrrrrgGr 1 \n", "9 122 3g_4g grrrgGGrgrrrrrgrr grrrgrrrgrrrrrgGr 17 \n", "10 139 3y_4g grrrgyyrgrrrrrgrr grrrgrrrgrrrrrgGr 4 \n", "11 143 4r_4g grrrgrrrgrrrrrgrr grrrgrrrgrrrrrgGr 1 \n", "12 144 4g_4g grrrgrrrgrrrrrgrG grrrgrrrgrrrrrgGr 32 \n", "13 176 4y_4y grrrgrrrgrrrrrgry grrrgrrrgrrrrrgyr 4 \n", "14 180 1r_1r grrrgrrrgrrrrrgrr grrrgrrrgrrrrrgrr 1 \n", "15 181 1g_1g grrrgrrrgGGGGrgrr gGGrgrrrgrrrrrgrr 49 \n", "16 230 1y_1y grrrgrrrgyyyyrgrr gyyrgrrrgrrrrrgrr 4 \n", "17 234 2r_2r grrrgrrrgrrrrrgrr grrrgrrrgrrrrrgrr 1 \n", "18 235 2g_2g grrGgrrrgrrrrrgrr grrrgrrrgrrrrGgrr 52 \n", "19 287 2y_2y grrygrrrgrrrrrgrr grrrgrrrgrrrrygrr 4 \n", "20 291 3r_3r grrrgGGrgrrrrrgrr grrrgrrrgrrrrrgrr 1 \n", "21 292 3g_3g grrrgGGrgrrrrrgrr grrrgrrGgrrrrrgrr 37 \n", "22 329 3g_3y grrrgGGrgrrrrrgrr grrrgrrygrrrrrgrr 4 \n", "23 333 3g_4r grrrgGGrgrrrrrgrr grrrgrrrgrrrrrgGr 1 \n", "24 334 3g_4g grrrgGGrgrrrrrgrr grrrgrrrgrrrrrgGr 23 \n", "25 357 3y_4g grrrgyyrgrrrrrgrr grrrgrrrgrrrrrgGr 4 \n", "26 361 4r_4g grrrgrrrgrrrrrgrr grrrgrrrgrrrrrgGr 1 \n", "27 362 4g_4g grrrgrrrgrrrrrgrG grrrgrrrgrrrrrgGr 42 \n", "28 404 4y_4y grrrgrrrgrrrrrgry grrrgrrrgrrrrrgyr 4 \n", "29 408 1r_1r grrrgrrrgrrrrrgrr grrrgrrrgrrrrrgrr 1 \n", "30 409 1g_1g grrrgrrrgGGGGrgrr gGGrgrrrgrrrrrgrr 38 \n", "31 447 1y_1y grrrgrrrgyyyyrgrr gyyrgrrrgrrrrrgrr 4 \n", "32 451 2r_2r grrrgrrrgrrrrrgrr grrrgrrrgrrrrrgrr 1 \n", "33 452 2g_2g grrGgrrrgrrrrrgrr grrrgrrrgrrrrGgrr 40 \n", "34 492 2y_2y grrygrrrgrrrrrgrr grrrgrrrgrrrrygrr 4 \n", "35 496 3r_3r grrrgGGrgrrrrrgrr grrrgrrrgrrrrrgrr 1 \n", "36 497 3g_3g grrrgGGrgrrrrrgrr grrrgrrGgrrrrrgrr 28 \n", "37 525 3g_3y grrrgGGrgrrrrrgrr grrrgrrygrrrrrgrr 22 \n", "\n", " state \n", "0 gGGrgrrrgGGGGrgrr \n", "1 gyyrgrrrgyyyyrgrr \n", "2 grrrgrrrgrrrrrgrr \n", "3 grrGgrrrgrrrrGgrr \n", "4 grrygrrrgrrrrygrr \n", "5 grrrgGGrgrrrrrgrr \n", "6 grrrgGGGgrrrrrgrr \n", "7 grrrgGGygrrrrrgrr \n", "8 grrrgGGrgrrrrrgGr \n", "9 grrrgGGrgrrrrrgGr \n", "10 grrrgyyrgrrrrrgGr \n", "11 grrrgrrrgrrrrrgGr \n", "12 grrrgrrrgrrrrrgGG \n", "13 grrrgrrrgrrrrrgyy \n", "14 grrrgrrrgrrrrrgrr \n", "15 gGGrgrrrgGGGGrgrr \n", "16 gyyrgrrrgyyyyrgrr \n", "17 grrrgrrrgrrrrrgrr \n", "18 grrGgrrrgrrrrGgrr \n", "19 grrygrrrgrrrrygrr \n", "20 grrrgGGrgrrrrrgrr \n", "21 grrrgGGGgrrrrrgrr \n", "22 grrrgGGygrrrrrgrr \n", "23 grrrgGGrgrrrrrgGr \n", "24 grrrgGGrgrrrrrgGr \n", "25 grrrgyyrgrrrrrgGr \n", "26 grrrgrrrgrrrrrgGr \n", "27 grrrgrrrgrrrrrgGG \n", "28 grrrgrrrgrrrrrgyy \n", "29 grrrgrrrgrrrrrgrr \n", "30 gGGrgrrrgGGGGrgrr \n", "31 gyyrgrrrgyyyyrgrr \n", "32 grrrgrrrgrrrrrgrr \n", "33 grrGgrrrgrrrrGgrr \n", "34 grrygrrrgrrrrygrr \n", "35 grrrgGGrgrrrrrgrr \n", "36 grrrgGGGgrrrrrgrr \n", "37 grrrgGGygrrrrrgrr " ] }, "execution_count": 311, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = pd.merge(df_a, df_b, on='start_time', how='outer')\n", "df = df.sort_values(by='start_time').reset_index(drop=True)\n", "df[['phas_A', 'state_A']] = df[['phas_A', 'state_A']].fillna(method='ffill')\n", "df[['phas_B', 'state_B']] = df[['phas_B', 'state_B']].fillna(method='ffill')\n", "df['phase'] = df['phas_A'] + \"_\" + df['phas_B']\n", "df = df[['start_time', 'phase', 'state_A', 'state_B']]\n", "df['duration'] = df['start_time'].shift(-1) - df['start_time']\n", "df = df[:-1]\n", "df['duration'] = df['duration'].astype(int)\n", "for row in df.itertuples():\n", " state = ''\n", " for a, b, in zip(row.state_A, row.state_B):\n", " if a == 'r':\n", " state += b\n", " elif b == 'r':\n", " state += a\n", " elif a == b:\n", " state += a\n", " else:\n", " raise ValueError(f\"예상되지 않은 조합 발생: a={a}, b={b}\")\n", " df.at[row.Index, 'state'] = state\n", "df" ] }, { "cell_type": "code", "execution_count": 276, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[0, 39, 43, 44, 84, 88, 89, 139, 143, 144, 176, 180, 181, 230, 234, 235, 287, 291, 292, 357, 361, 362, 404, 408, 409, 447, 451, 452, 492, 496, 497, 547]\n" ] } ], "source": [ "start_times = set.union(set(df_a.start_time.unique()), set(df_a.start_time.unique()))\n", "start_times = sorted(start_times)\n", "print(start_times)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "df = df_a.copy()\n", "start_times_additional = set(df_b.start_time.unique()) - set(df_a.start_time.unique())\n", "for i, row in df.iterrows():\n", " st = row.start_time\n", " if st in start_times_additional:" ] }, { "cell_type": "code", "execution_count": 207, "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", "
start_timephas_Astate_A
001ggrrrgrrrgGGGGrgrr
1391ygrrrgrrrgyyyyrgrr
2432rgrrrgrrrgrrrrrgrr
3442ggrrGgrrrgrrrrrgrr
4842ygrrygrrrgrrrrrgrr
5883rgrrrgGGrgrrrrrgrr
6893ggrrrgGGrgrrrrrgrr
71393ygrrrgyyrgrrrrrgrr
81434rgrrrgrrrgrrrrrgrr
91444ggrrrgrrrgrrrrrgrG
101764ygrrrgrrrgrrrrrgry
111801rgrrrgrrrgrrrrrgrr
121811ggrrrgrrrgGGGGrgrr
132301ygrrrgrrrgyyyyrgrr
142342rgrrrgrrrgrrrrrgrr
152352ggrrGgrrrgrrrrrgrr
162872ygrrygrrrgrrrrrgrr
172913rgrrrgGGrgrrrrrgrr
182923ggrrrgGGrgrrrrrgrr
193573ygrrrgyyrgrrrrrgrr
203614rgrrrgrrrgrrrrrgrr
213624ggrrrgrrrgrrrrrgrG
224044ygrrrgrrrgrrrrrgry
234081rgrrrgrrrgrrrrrgrr
244091ggrrrgrrrgGGGGrgrr
254471ygrrrgrrrgyyyyrgrr
264512rgrrrgrrrgrrrrrgrr
274522ggrrGgrrrgrrrrrgrr
284922ygrrygrrrgrrrrrgrr
294963rgrrrgGGrgrrrrrgrr
304973ggrrrgGGrgrrrrrgrr
315473ygrrrgyyrgrrrrrgrr
\n", "
" ], "text/plain": [ " start_time phas_A state_A\n", "0 0 1g grrrgrrrgGGGGrgrr\n", "1 39 1y grrrgrrrgyyyyrgrr\n", "2 43 2r grrrgrrrgrrrrrgrr\n", "3 44 2g grrGgrrrgrrrrrgrr\n", "4 84 2y grrygrrrgrrrrrgrr\n", "5 88 3r grrrgGGrgrrrrrgrr\n", "6 89 3g grrrgGGrgrrrrrgrr\n", "7 139 3y grrrgyyrgrrrrrgrr\n", "8 143 4r grrrgrrrgrrrrrgrr\n", "9 144 4g grrrgrrrgrrrrrgrG\n", "10 176 4y grrrgrrrgrrrrrgry\n", "11 180 1r grrrgrrrgrrrrrgrr\n", "12 181 1g grrrgrrrgGGGGrgrr\n", "13 230 1y grrrgrrrgyyyyrgrr\n", "14 234 2r grrrgrrrgrrrrrgrr\n", "15 235 2g grrGgrrrgrrrrrgrr\n", "16 287 2y grrygrrrgrrrrrgrr\n", "17 291 3r grrrgGGrgrrrrrgrr\n", "18 292 3g grrrgGGrgrrrrrgrr\n", "19 357 3y grrrgyyrgrrrrrgrr\n", "20 361 4r grrrgrrrgrrrrrgrr\n", "21 362 4g grrrgrrrgrrrrrgrG\n", "22 404 4y grrrgrrrgrrrrrgry\n", "23 408 1r grrrgrrrgrrrrrgrr\n", "24 409 1g grrrgrrrgGGGGrgrr\n", "25 447 1y grrrgrrrgyyyyrgrr\n", "26 451 2r grrrgrrrgrrrrrgrr\n", "27 452 2g grrGgrrrgrrrrrgrr\n", "28 492 2y grrygrrrgrrrrrgrr\n", "29 496 3r grrrgGGrgrrrrrgrr\n", "30 497 3g grrrgGGrgrrrrrgrr\n", "31 547 3y grrrgyyrgrrrrrgrr" ] }, "execution_count": 207, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_A = df_A.reset_index(drop=True)\n", "\n", "df_a = []\n", "\n", "start_time = 0\n", "elapsed = 0\n", "for i, cur in df_A.iterrows():\n", " \n", " # pre, nex\n", " if i != 0:\n", " pre = df_A.iloc[i-1]\n", " if i != len(df_A) - 1:\n", " nex = df_A.iloc[i+1]\n", " \n", " # duration\n", " if cur.phas_A == nex.phas_A:\n", " continue\n", " if cur.phas_A == pre.phas_A:\n", " duration = cur.duration + pre.duration\n", " else:\n", " duration = cur.duration\n", " start_times = []\n", " state_As = []\n", " phas_As = []\n", "\n", " # red\n", " if i != 0:\n", " start_time += elapsed\n", " start_times.append(start_time)\n", " state_As.append(get_red(pre.state_A, cur.state_A))\n", " phas_As.append(f'{cur.phas_A}r')\n", " elapsed = cur.red_A\n", " \n", " # green\n", " if i == 0:\n", " start_time = 0\n", " else:\n", " start_time += elapsed\n", " start_times.append(start_time)\n", " state_As.append(cur.state_A)\n", " phas_As.append(f'{cur.phas_A}g')\n", " if i == 0:\n", " elapsed = duration - cur.yellow_A\n", " else:\n", " elapsed = duration - cur.yellow_A - cur.red_A\n", " # yellow\n", " if i != len(df_A) - 1:\n", " start_time += elapsed\n", " start_times.append(start_time)\n", " state_As.append(get_yellow(cur.state_A, nex.state_A))\n", " phas_As.append(f'{cur.phas_A}y')\n", " elapsed = cur.yellow_A\n", " df_ = pd.DataFrame({'start_time':start_times, 'phas_A':phas_As, 'state_A':state_As})\n", " df_a.append(df_)\n", "df_a = pd.concat(df_a).reset_index(drop=True)\n", "df_a" ] }, { "cell_type": "code", "execution_count": 152, "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", "
start_timephas_Astate_A
001ggrrrgrrrgGGGGrgrr
1391ygrrrgrrrgyyyyrgrr
0432rgrrrgrrrgrrrrrgrr
1442ggrrGgrrrgrrrrrgrr
2842ygrrygrrrgrrrrrgrr
\n", "
" ], "text/plain": [ " start_time phas_A state_A\n", "0 0 1g grrrgrrrgGGGGrgrr\n", "1 39 1y grrrgrrrgyyyyrgrr\n", "0 43 2r grrrgrrrgrrrrrgrr\n", "1 44 2g grrGgrrrgrrrrrgrr\n", "2 84 2y grrygrrrgrrrrrgrr" ] }, "execution_count": 152, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_A = df_A.reset_index(drop=True)\n", "df_a = []\n", "\n", "###\n", "i = 0\n", "cur = df_A.iloc[i]\n", "nex = df_A.iloc[i+1]\n", "\n", "start_times = []\n", "state_As = []\n", "phas_As = []\n", "\n", "# green\n", "start_time = 0\n", "start_times.append(start_time)\n", "state_As.append(cur.state_A)\n", "phas_As.append(f'{cur.phas_A}g')\n", "elapsed = cur.duration - cur.yellow_A\n", "\n", "# yellow\n", "start_time += elapsed\n", "start_times.append(start_time)\n", "state_As.append(get_yellow(cur.state_A, nex.state_A))\n", "phas_As.append(f'{cur.phas_A}y')\n", "elapsed = cur.yellow_A\n", "\n", "df_ = pd.DataFrame({'start_time':start_times, 'phas_A':phas_As, 'state_A':state_As})\n", "df_a.append(df_)\n", "\n", "###\n", "i = 1\n", "pre = df_A.iloc[i-1]\n", "cur = df_A.iloc[i]\n", "nex = df_A.iloc[i+1]\n", "\n", "start_times = []\n", "state_As = []\n", "phas_As = []\n", "\n", "# red\n", "start_time += elapsed\n", "start_times.append(start_time)\n", "state_As.append(get_red(pre.state_A, cur.state_A))\n", "phas_As.append(f'{cur.phas_A}r')\n", "elapsed = cur.red_A\n", "\n", "# green\n", "start_time += elapsed\n", "start_times.append(start_time)\n", "state_As.append(cur.state_A)\n", "phas_As.append(f'{cur.phas_A}g')\n", "\n", "elapsed = cur.duration - cur.yellow_A - cur.red_A\n", "\n", "# yellow\n", "start_time += elapsed\n", "start_times.append(start_time)\n", "state_As.append(get_yellow(cur.state_A, nex.state_A))\n", "phas_As.append(f'{cur.phas_A}y')\n", "\n", "df_ = pd.DataFrame({'start_time':start_times, 'phas_A':phas_As, 'state_A':state_As})\n", "df_a.append(df_)\n", "\n", "df_a = pd.concat(df_a)\n", "df_a" ] }, { "cell_type": "code", "execution_count": 153, "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", "
phas_Adurationstate_Ared_Ayellow_A
0143grrrgrrrgGGGGrgrr14
1245grrGgrrrgrrrrrgrr14
2333grrrgGGrgrrrrrgrr14
3322grrrgGGrgrrrrrgrr14
4437grrrgrrrgrrrrrgrG14
5154grrrgrrrgGGGGrgrr14
6257grrGgrrrgrrrrrgrr14
7342grrrgGGrgrrrrrgrr14
8328grrrgGGrgrrrrrgrr14
9447grrrgrrrgrrrrrgrG14
10143grrrgrrrgGGGGrgrr14
11245grrGgrrrgrrrrrgrr14
12333grrrgGGrgrrrrrgrr14
13322grrrgGGrgrrrrrgrr14
14437grrrgrrrgrrrrrgrG14
\n", "
" ], "text/plain": [ " phas_A duration state_A red_A yellow_A\n", "0 1 43 grrrgrrrgGGGGrgrr 1 4\n", "1 2 45 grrGgrrrgrrrrrgrr 1 4\n", "2 3 33 grrrgGGrgrrrrrgrr 1 4\n", "3 3 22 grrrgGGrgrrrrrgrr 1 4\n", "4 4 37 grrrgrrrgrrrrrgrG 1 4\n", "5 1 54 grrrgrrrgGGGGrgrr 1 4\n", "6 2 57 grrGgrrrgrrrrrgrr 1 4\n", "7 3 42 grrrgGGrgrrrrrgrr 1 4\n", "8 3 28 grrrgGGrgrrrrrgrr 1 4\n", "9 4 47 grrrgrrrgrrrrrgrG 1 4\n", "10 1 43 grrrgrrrgGGGGrgrr 1 4\n", "11 2 45 grrGgrrrgrrrrrgrr 1 4\n", "12 3 33 grrrgGGrgrrrrrgrr 1 4\n", "13 3 22 grrrgGGrgrrrrrgrr 1 4\n", "14 4 37 grrrgrrrgrrrrrgrG 1 4" ] }, "execution_count": 153, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_A" ] }, { "cell_type": "code", "execution_count": 149, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
phas_Astate_Astart_time
01ggrrrgrrrgGGGGrgrr0
\n", "
" ], "text/plain": [ " phas_A state_A start_time\n", "0 1g grrrgrrrgGGGGrgrr 0" ] }, "execution_count": 149, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_a = pd.concat(df_a)\n", "df_a" ] }, { "cell_type": "code", "execution_count": 83, "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", "
Unnamed: 0inter_nophas_Aphas_Bmove_Amove_B
001751184
111752273
221753361
331753462
441754452
\n", "
" ], "text/plain": [ " Unnamed: 0 inter_no phas_A phas_B move_A move_B\n", "0 0 175 1 1 8 4\n", "1 1 175 2 2 7 3\n", "2 2 175 3 3 6 1\n", "3 3 175 3 4 6 2\n", "4 4 175 4 4 5 2" ] }, "execution_count": 83, "metadata": {}, "output_type": "execute_result" } ], "source": [ "self.match1.query('inter_no==@inter_no')" ] }, { "cell_type": "code", "execution_count": 85, "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", "
Unnamed: 0inter_nonode_idphase_noring_typemove_nostate
00175i01A8grrrgrrrgGGGGrgrr
11175i01B4gGGrgrrrgrrrrrgrr
22175i02A7grrGgrrrgrrrrrgrr
33175i02B3grrrgrrrgrrrrGgrr
44175i03A6grrrgGGrgrrrrrgrr
55175i03B1grrrgrrGgrrrrrgrr
66175i04A5grrrgrrrgrrrrrgrG
77175i04B2grrrgrrrgrrrrrgGr
\n", "
" ], "text/plain": [ " Unnamed: 0 inter_no node_id phase_no ring_type move_no \\\n", "0 0 175 i0 1 A 8 \n", "1 1 175 i0 1 B 4 \n", "2 2 175 i0 2 A 7 \n", "3 3 175 i0 2 B 3 \n", "4 4 175 i0 3 A 6 \n", "5 5 175 i0 3 B 1 \n", "6 6 175 i0 4 A 5 \n", "7 7 175 i0 4 B 2 \n", "\n", " state \n", "0 grrrgrrrgGGGGrgrr \n", "1 gGGrgrrrgrrrrrgrr \n", "2 grrGgrrrgrrrrrgrr \n", "3 grrrgrrrgrrrrGgrr \n", "4 grrrgGGrgrrrrrgrr \n", "5 grrrgrrGgrrrrrgrr \n", "6 grrrgrrrgrrrrrgrG \n", "7 grrrgrrrgrrrrrgGr " ] }, "execution_count": 85, "metadata": {}, "output_type": "execute_result" } ], "source": [ "self.match6.query('node_id==@Node_id')" ] }, { "cell_type": "code", "execution_count": 23, "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", "
Unnamed: 0dura_A1dura_A2dura_A3dura_A4dura_A5dura_A6dura_A7dura_A8dura_B1...red_B4red_A5red_B5red_A6red_B6red_A7red_B7red_A8red_B8inter_no
0243455537000043...111111111175
\n", "

1 rows × 52 columns

\n", "
" ], "text/plain": [ " Unnamed: 0 dura_A1 dura_A2 dura_A3 dura_A4 dura_A5 dura_A6 dura_A7 \\\n", "0 2 43 45 55 37 0 0 0 \n", "\n", " dura_A8 dura_B1 ... red_B4 red_A5 red_B5 red_A6 red_B6 red_A7 \\\n", "0 0 43 ... 1 1 1 1 1 1 \n", "\n", " red_B7 red_A8 red_B8 inter_no \n", "0 1 1 1 175 \n", "\n", "[1 rows x 52 columns]" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from datetime import datetime \n", "start_unix = self.sigtable.start_unix.iloc[0]\n", "self.load_prow(inter_no, start_unix)[1]" ] }, { "cell_type": "code", "execution_count": 27, "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", "
Unnamed: 0inter_nostart_hourstart_minutedura_A1dura_A2dura_A3dura_A4dura_A5dura_A6...red_A4red_B4red_A5red_B5red_A6red_B6red_A7red_B7red_A8red_B8
00175003739552900...1111111111
11175704042553300...1111111111
22175904345553700...1111111111
3317518304648554100...1111111111
\n", "

4 rows × 54 columns

\n", "
" ], "text/plain": [ " Unnamed: 0 inter_no start_hour start_minute dura_A1 dura_A2 dura_A3 \\\n", "0 0 175 0 0 37 39 55 \n", "1 1 175 7 0 40 42 55 \n", "2 2 175 9 0 43 45 55 \n", "3 3 175 18 30 46 48 55 \n", "\n", " dura_A4 dura_A5 dura_A6 ... red_A4 red_B4 red_A5 red_B5 red_A6 \\\n", "0 29 0 0 ... 1 1 1 1 1 \n", "1 33 0 0 ... 1 1 1 1 1 \n", "2 37 0 0 ... 1 1 1 1 1 \n", "3 41 0 0 ... 1 1 1 1 1 \n", "\n", " red_B6 red_A7 red_B7 red_A8 red_B8 \n", "0 1 1 1 1 1 \n", "1 1 1 1 1 1 \n", "2 1 1 1 1 1 \n", "3 1 1 1 1 1 \n", "\n", "[4 rows x 54 columns]" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "self.plan.query('inter_no==@inter_no')" ] }, { "cell_type": "code", "execution_count": 132, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "4. 통합 테이블을 생성합니다.\n", "5. 신호를 생성합니다.\n" ] }, { "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", "
inter_nonode_idstart_unixphas_Aphas_Bmove_Amove_Bdurationstatephase_sumo
16175i01704416358118443gGGrgrrrgGGGGrgrr0
17175i01704416358227345grrGgrrrgrrrrGgrr1
18175i01704416358336133grrrgGGGgrrrrrgrr2
19175i01704416358346222grrrgGGrgrrrrrgGr3
20175i01704416358445237grrrgrrrgrrrrrgGG4
21175i01704416538118443gGGrgrrrgGGGGrgrr0
22175i01704416538227345grrGgrrrgrrrrGgrr1
23175i01704416538336133grrrgGGGgrrrrrgrr2
24175i01704416538346222grrrgGGrgrrrrrgGr3
25175i01704416538445237grrrgrrrgrrrrrgGG4
26175i01704416718118443gGGrgrrrgGGGGrgrr0
27175i01704416718227345grrGgrrrgrrrrGgrr1
28175i01704416718336133grrrgGGGgrrrrrgrr2
29175i01704416718346222grrrgGGrgrrrrrgGr3
30175i01704416718445237grrrgrrrgrrrrrgGG4
\n", "
" ], "text/plain": [ " inter_no node_id start_unix phas_A phas_B move_A move_B duration \\\n", "16 175 i0 1704416358 1 1 8 4 43 \n", "17 175 i0 1704416358 2 2 7 3 45 \n", "18 175 i0 1704416358 3 3 6 1 33 \n", "19 175 i0 1704416358 3 4 6 2 22 \n", "20 175 i0 1704416358 4 4 5 2 37 \n", "21 175 i0 1704416538 1 1 8 4 43 \n", "22 175 i0 1704416538 2 2 7 3 45 \n", "23 175 i0 1704416538 3 3 6 1 33 \n", "24 175 i0 1704416538 3 4 6 2 22 \n", "25 175 i0 1704416538 4 4 5 2 37 \n", "26 175 i0 1704416718 1 1 8 4 43 \n", "27 175 i0 1704416718 2 2 7 3 45 \n", "28 175 i0 1704416718 3 3 6 1 33 \n", "29 175 i0 1704416718 3 4 6 2 22 \n", "30 175 i0 1704416718 4 4 5 2 37 \n", "\n", " state phase_sumo \n", "16 gGGrgrrrgGGGGrgrr 0 \n", "17 grrGgrrrgrrrrGgrr 1 \n", "18 grrrgGGGgrrrrrgrr 2 \n", "19 grrrgGGrgrrrrrgGr 3 \n", "20 grrrgrrrgrrrrrgGG 4 \n", "21 gGGrgrrrgGGGGrgrr 0 \n", "22 grrGgrrrgrrrrGgrr 1 \n", "23 grrrgGGGgrrrrrgrr 2 \n", "24 grrrgGGrgrrrrrgGr 3 \n", "25 grrrgrrrgrrrrrgGG 4 \n", "26 gGGrgrrrgGGGGrgrr 0 \n", "27 grrGgrrrgrrrrGgrr 1 \n", "28 grrrgGGGgrrrrrgrr 2 \n", "29 grrrgGGrgrrrrrgGr 3 \n", "30 grrrgrrrgrrrrrgGG 4 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "self.make_histids()\n", "self.get_signals()\n", "display(self.sigtable.query('node_id==@Node_id'))" ] } ], "metadata": { "kernelspec": { "display_name": "sts", "language": "python", "name": "sts" }, "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.8.10" } }, "nbformat": 4, "nbformat_minor": 2 }