{
"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",
" Unnamed: 0 | \n",
" inter_no | \n",
" end_unix | \n",
" dura_A1 | \n",
" dura_A2 | \n",
" dura_A3 | \n",
" dura_A4 | \n",
" dura_A5 | \n",
" dura_A6 | \n",
" dura_A7 | \n",
" ... | \n",
" dura_B1 | \n",
" dura_B2 | \n",
" dura_B3 | \n",
" dura_B4 | \n",
" dura_B5 | \n",
" dura_B6 | \n",
" dura_B7 | \n",
" dura_B8 | \n",
" cycle | \n",
" offset | \n",
"
\n",
" \n",
" \n",
" \n",
" 7 | \n",
" 7 | \n",
" 175 | \n",
" 1704380560 | \n",
" 37 | \n",
" 39 | \n",
" 55 | \n",
" 29 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" ... | \n",
" 37 | \n",
" 39 | \n",
" 25 | \n",
" 59 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 160 | \n",
" 57 | \n",
"
\n",
" \n",
" 15 | \n",
" 15 | \n",
" 175 | \n",
" 1704380721 | \n",
" 37 | \n",
" 39 | \n",
" 55 | \n",
" 29 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" ... | \n",
" 37 | \n",
" 39 | \n",
" 25 | \n",
" 59 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 160 | \n",
" 57 | \n",
"
\n",
" \n",
" 24 | \n",
" 24 | \n",
" 175 | \n",
" 1704380880 | \n",
" 37 | \n",
" 39 | \n",
" 55 | \n",
" 29 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" ... | \n",
" 37 | \n",
" 39 | \n",
" 25 | \n",
" 59 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 160 | \n",
" 57 | \n",
"
\n",
" \n",
" 33 | \n",
" 33 | \n",
" 175 | \n",
" 1704381040 | \n",
" 37 | \n",
" 39 | \n",
" 55 | \n",
" 29 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" ... | \n",
" 37 | \n",
" 39 | \n",
" 25 | \n",
" 59 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 160 | \n",
" 57 | \n",
"
\n",
" \n",
" 41 | \n",
" 41 | \n",
" 175 | \n",
" 1704381199 | \n",
" 37 | \n",
" 39 | \n",
" 55 | \n",
" 29 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" ... | \n",
" 37 | \n",
" 39 | \n",
" 25 | \n",
" 59 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 160 | \n",
" 57 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 3886 | \n",
" 3886 | \n",
" 175 | \n",
" 1704462880 | \n",
" 46 | \n",
" 48 | \n",
" 55 | \n",
" 41 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" ... | \n",
" 46 | \n",
" 48 | \n",
" 37 | \n",
" 59 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 190 | \n",
" 18 | \n",
"
\n",
" \n",
" 3893 | \n",
" 3893 | \n",
" 175 | \n",
" 1704463070 | \n",
" 46 | \n",
" 48 | \n",
" 55 | \n",
" 41 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" ... | \n",
" 46 | \n",
" 48 | \n",
" 37 | \n",
" 59 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 190 | \n",
" 18 | \n",
"
\n",
" \n",
" 3900 | \n",
" 3900 | \n",
" 175 | \n",
" 1704463261 | \n",
" 46 | \n",
" 48 | \n",
" 55 | \n",
" 41 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" ... | \n",
" 46 | \n",
" 48 | \n",
" 37 | \n",
" 59 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 190 | \n",
" 18 | \n",
"
\n",
" \n",
" 3907 | \n",
" 3907 | \n",
" 175 | \n",
" 1704463450 | \n",
" 46 | \n",
" 48 | \n",
" 55 | \n",
" 41 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" ... | \n",
" 46 | \n",
" 48 | \n",
" 37 | \n",
" 59 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 190 | \n",
" 18 | \n",
"
\n",
" \n",
" 3914 | \n",
" 3914 | \n",
" 175 | \n",
" 1704463640 | \n",
" 46 | \n",
" 48 | \n",
" 55 | \n",
" 41 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" ... | \n",
" 46 | \n",
" 48 | \n",
" 37 | \n",
" 59 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 190 | \n",
" 18 | \n",
"
\n",
" \n",
"
\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",
" inter_no | \n",
" start_unix | \n",
" dura_A1 | \n",
" dura_A2 | \n",
" dura_A3 | \n",
" dura_A4 | \n",
" dura_A5 | \n",
" dura_A6 | \n",
" dura_A7 | \n",
" dura_A8 | \n",
" dura_B1 | \n",
" dura_B2 | \n",
" dura_B3 | \n",
" dura_B4 | \n",
" dura_B5 | \n",
" dura_B6 | \n",
" dura_B7 | \n",
" dura_B8 | \n",
" cycle | \n",
"
\n",
" \n",
" \n",
" \n",
" 1816 | \n",
" 175 | \n",
" 1704414509 | \n",
" 43 | \n",
" 45 | \n",
" 55 | \n",
" 37 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 43 | \n",
" 45 | \n",
" 33 | \n",
" 59 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 180 | \n",
"
\n",
" \n",
" 1824 | \n",
" 175 | \n",
" 1704414690 | \n",
" 43 | \n",
" 45 | \n",
" 55 | \n",
" 37 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 43 | \n",
" 45 | \n",
" 33 | \n",
" 59 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 180 | \n",
"
\n",
" \n",
" 1832 | \n",
" 175 | \n",
" 1704414871 | \n",
" 43 | \n",
" 45 | \n",
" 55 | \n",
" 37 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 43 | \n",
" 45 | \n",
" 33 | \n",
" 59 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 180 | \n",
"
\n",
" \n",
" 1840 | \n",
" 175 | \n",
" 1704415050 | \n",
" 43 | \n",
" 45 | \n",
" 55 | \n",
" 37 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 43 | \n",
" 45 | \n",
" 33 | \n",
" 59 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 180 | \n",
"
\n",
" \n",
" 1849 | \n",
" 175 | \n",
" 1704415230 | \n",
" 43 | \n",
" 45 | \n",
" 55 | \n",
" 37 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 43 | \n",
" 45 | \n",
" 33 | \n",
" 59 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 180 | \n",
"
\n",
" \n",
" 1857 | \n",
" 175 | \n",
" 1704415410 | \n",
" 43 | \n",
" 45 | \n",
" 55 | \n",
" 37 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 43 | \n",
" 45 | \n",
" 33 | \n",
" 59 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 180 | \n",
"
\n",
" \n",
" 1865 | \n",
" 175 | \n",
" 1704415589 | \n",
" 43 | \n",
" 45 | \n",
" 55 | \n",
" 37 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 43 | \n",
" 45 | \n",
" 33 | \n",
" 59 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 180 | \n",
"
\n",
" \n",
" 1874 | \n",
" 175 | \n",
" 1704415770 | \n",
" 43 | \n",
" 45 | \n",
" 55 | \n",
" 37 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 43 | \n",
" 45 | \n",
" 33 | \n",
" 59 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 180 | \n",
"
\n",
" \n",
" 1882 | \n",
" 175 | \n",
" 1704415950 | \n",
" 43 | \n",
" 45 | \n",
" 55 | \n",
" 37 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 43 | \n",
" 45 | \n",
" 33 | \n",
" 59 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 180 | \n",
"
\n",
" \n",
" 1893 | \n",
" 175 | \n",
" 1704416178 | \n",
" 43 | \n",
" 45 | \n",
" 55 | \n",
" 37 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 43 | \n",
" 45 | \n",
" 33 | \n",
" 59 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 180 | \n",
"
\n",
" \n",
" 0 | \n",
" 175 | \n",
" 1704416820 | \n",
" 43 | \n",
" 45 | \n",
" 55 | \n",
" 37 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 43 | \n",
" 45 | \n",
" 33 | \n",
" 59 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 180 | \n",
"
\n",
" \n",
"
\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",
" inter_no | \n",
" start_unix | \n",
" dura_A1 | \n",
" dura_A2 | \n",
" dura_A3 | \n",
" dura_A4 | \n",
" dura_B1 | \n",
" dura_B2 | \n",
" dura_B3 | \n",
" dura_B4 | \n",
" ... | \n",
" red_A4 | \n",
" red_B4 | \n",
" red_A5 | \n",
" red_B5 | \n",
" red_A6 | \n",
" red_B6 | \n",
" red_A7 | \n",
" red_B7 | \n",
" red_A8 | \n",
" red_B8 | \n",
"
\n",
" \n",
" \n",
" \n",
" 6 | \n",
" 175 | \n",
" 1704415589 | \n",
" 43 | \n",
" 45 | \n",
" 55 | \n",
" 37 | \n",
" 43 | \n",
" 45 | \n",
" 33 | \n",
" 59 | \n",
" ... | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" 7 | \n",
" 175 | \n",
" 1704415770 | \n",
" 43 | \n",
" 45 | \n",
" 55 | \n",
" 37 | \n",
" 43 | \n",
" 45 | \n",
" 33 | \n",
" 59 | \n",
" ... | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" 8 | \n",
" 175 | \n",
" 1704415950 | \n",
" 43 | \n",
" 45 | \n",
" 55 | \n",
" 37 | \n",
" 43 | \n",
" 45 | \n",
" 33 | \n",
" 59 | \n",
" ... | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" 9 | \n",
" 175 | \n",
" 1704416178 | \n",
" 54 | \n",
" 57 | \n",
" 70 | \n",
" 47 | \n",
" 54 | \n",
" 57 | \n",
" 42 | \n",
" 75 | \n",
" ... | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" 10 | \n",
" 175 | \n",
" 1704416358 | \n",
" 43 | \n",
" 45 | \n",
" 55 | \n",
" 37 | \n",
" 43 | \n",
" 45 | \n",
" 33 | \n",
" 59 | \n",
" ... | \n",
" 1.0 | \n",
" 1.0 | \n",
" 1.0 | \n",
" 1.0 | \n",
" 1.0 | \n",
" 1.0 | \n",
" 1.0 | \n",
" 1.0 | \n",
" 1.0 | \n",
" 1.0 | \n",
"
\n",
" \n",
" 11 | \n",
" 175 | \n",
" 1704416538 | \n",
" 43 | \n",
" 45 | \n",
" 55 | \n",
" 37 | \n",
" 43 | \n",
" 45 | \n",
" 33 | \n",
" 59 | \n",
" ... | \n",
" 1.0 | \n",
" 1.0 | \n",
" 1.0 | \n",
" 1.0 | \n",
" 1.0 | \n",
" 1.0 | \n",
" 1.0 | \n",
" 1.0 | \n",
" 1.0 | \n",
" 1.0 | \n",
"
\n",
" \n",
" 12 | \n",
" 175 | \n",
" 1704416718 | \n",
" 43 | \n",
" 45 | \n",
" 55 | \n",
" 37 | \n",
" 43 | \n",
" 45 | \n",
" 33 | \n",
" 59 | \n",
" ... | \n",
" 1.0 | \n",
" 1.0 | \n",
" 1.0 | \n",
" 1.0 | \n",
" 1.0 | \n",
" 1.0 | \n",
" 1.0 | \n",
" 1.0 | \n",
" 1.0 | \n",
" 1.0 | \n",
"
\n",
" \n",
" 13 | \n",
" 175 | \n",
" 1704416820 | \n",
" 24 | \n",
" 26 | \n",
" 31 | \n",
" 21 | \n",
" 24 | \n",
" 26 | \n",
" 19 | \n",
" 33 | \n",
" ... | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
"
\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",
" inter_no | \n",
" start_unix | \n",
" phas_A | \n",
" phas_B | \n",
" duration | \n",
"
\n",
" \n",
" \n",
" \n",
" 184 | \n",
" 175 | \n",
" 1704415589 | \n",
" 1 | \n",
" 1 | \n",
" 43 | \n",
"
\n",
" \n",
" 185 | \n",
" 175 | \n",
" 1704415589 | \n",
" 2 | \n",
" 2 | \n",
" 45 | \n",
"
\n",
" \n",
" 186 | \n",
" 175 | \n",
" 1704415589 | \n",
" 3 | \n",
" 3 | \n",
" 33 | \n",
"
\n",
" \n",
" 187 | \n",
" 175 | \n",
" 1704415589 | \n",
" 3 | \n",
" 4 | \n",
" 22 | \n",
"
\n",
" \n",
" 188 | \n",
" 175 | \n",
" 1704415589 | \n",
" 4 | \n",
" 4 | \n",
" 37 | \n",
"
\n",
" \n",
" 189 | \n",
" 175 | \n",
" 1704415770 | \n",
" 1 | \n",
" 1 | \n",
" 43 | \n",
"
\n",
" \n",
" 190 | \n",
" 175 | \n",
" 1704415770 | \n",
" 2 | \n",
" 2 | \n",
" 45 | \n",
"
\n",
" \n",
" 191 | \n",
" 175 | \n",
" 1704415770 | \n",
" 3 | \n",
" 3 | \n",
" 33 | \n",
"
\n",
" \n",
" 192 | \n",
" 175 | \n",
" 1704415770 | \n",
" 3 | \n",
" 4 | \n",
" 22 | \n",
"
\n",
" \n",
" 193 | \n",
" 175 | \n",
" 1704415770 | \n",
" 4 | \n",
" 4 | \n",
" 37 | \n",
"
\n",
" \n",
" 194 | \n",
" 175 | \n",
" 1704415950 | \n",
" 1 | \n",
" 1 | \n",
" 43 | \n",
"
\n",
" \n",
" 195 | \n",
" 175 | \n",
" 1704415950 | \n",
" 2 | \n",
" 2 | \n",
" 45 | \n",
"
\n",
" \n",
" 196 | \n",
" 175 | \n",
" 1704415950 | \n",
" 3 | \n",
" 3 | \n",
" 33 | \n",
"
\n",
" \n",
" 197 | \n",
" 175 | \n",
" 1704415950 | \n",
" 3 | \n",
" 4 | \n",
" 22 | \n",
"
\n",
" \n",
" 198 | \n",
" 175 | \n",
" 1704415950 | \n",
" 4 | \n",
" 4 | \n",
" 37 | \n",
"
\n",
" \n",
"
\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",
" inter_no | \n",
" start_unix | \n",
" phas_A | \n",
" phas_B | \n",
" move_A | \n",
" move_B | \n",
" duration | \n",
" node_id | \n",
" state | \n",
"
\n",
" \n",
" \n",
" \n",
" 185 | \n",
" 175 | \n",
" 1704415950 | \n",
" 1 | \n",
" 1 | \n",
" 8 | \n",
" 4 | \n",
" 43 | \n",
" i0 | \n",
" gGGrgrrrgGGGGrgrr | \n",
"
\n",
" \n",
" 186 | \n",
" 175 | \n",
" 1704415950 | \n",
" 2 | \n",
" 2 | \n",
" 7 | \n",
" 3 | \n",
" 45 | \n",
" i0 | \n",
" grrGgrrrgrrrrGgrr | \n",
"
\n",
" \n",
" 187 | \n",
" 175 | \n",
" 1704415950 | \n",
" 3 | \n",
" 3 | \n",
" 6 | \n",
" 1 | \n",
" 33 | \n",
" i0 | \n",
" grrrgGGGgrrrrrgrr | \n",
"
\n",
" \n",
" 188 | \n",
" 175 | \n",
" 1704415950 | \n",
" 3 | \n",
" 4 | \n",
" 6 | \n",
" 2 | \n",
" 22 | \n",
" i0 | \n",
" grrrgGGrgrrrrrgGr | \n",
"
\n",
" \n",
" 189 | \n",
" 175 | \n",
" 1704415950 | \n",
" 4 | \n",
" 4 | \n",
" 5 | \n",
" 2 | \n",
" 37 | \n",
" i0 | \n",
" grrrgrrrgrrrrrgGG | \n",
"
\n",
" \n",
" 190 | \n",
" 175 | \n",
" 1704416178 | \n",
" 1 | \n",
" 1 | \n",
" 8 | \n",
" 4 | \n",
" 54 | \n",
" i0 | \n",
" gGGrgrrrgGGGGrgrr | \n",
"
\n",
" \n",
" 191 | \n",
" 175 | \n",
" 1704416178 | \n",
" 2 | \n",
" 2 | \n",
" 7 | \n",
" 3 | \n",
" 57 | \n",
" i0 | \n",
" grrGgrrrgrrrrGgrr | \n",
"
\n",
" \n",
" 192 | \n",
" 175 | \n",
" 1704416178 | \n",
" 3 | \n",
" 3 | \n",
" 6 | \n",
" 1 | \n",
" 42 | \n",
" i0 | \n",
" grrrgGGGgrrrrrgrr | \n",
"
\n",
" \n",
" 193 | \n",
" 175 | \n",
" 1704416178 | \n",
" 3 | \n",
" 4 | \n",
" 6 | \n",
" 2 | \n",
" 28 | \n",
" i0 | \n",
" grrrgGGrgrrrrrgGr | \n",
"
\n",
" \n",
" 194 | \n",
" 175 | \n",
" 1704416178 | \n",
" 4 | \n",
" 4 | \n",
" 5 | \n",
" 2 | \n",
" 47 | \n",
" i0 | \n",
" grrrgrrrgrrrrrgGG | \n",
"
\n",
" \n",
" 195 | \n",
" 175 | \n",
" 1704416358 | \n",
" 1 | \n",
" 1 | \n",
" 8 | \n",
" 4 | \n",
" 43 | \n",
" i0 | \n",
" gGGrgrrrgGGGGrgrr | \n",
"
\n",
" \n",
" 196 | \n",
" 175 | \n",
" 1704416358 | \n",
" 2 | \n",
" 2 | \n",
" 7 | \n",
" 3 | \n",
" 45 | \n",
" i0 | \n",
" grrGgrrrgrrrrGgrr | \n",
"
\n",
" \n",
" 197 | \n",
" 175 | \n",
" 1704416358 | \n",
" 3 | \n",
" 3 | \n",
" 6 | \n",
" 1 | \n",
" 33 | \n",
" i0 | \n",
" grrrgGGGgrrrrrgrr | \n",
"
\n",
" \n",
" 198 | \n",
" 175 | \n",
" 1704416358 | \n",
" 3 | \n",
" 4 | \n",
" 6 | \n",
" 2 | \n",
" 22 | \n",
" i0 | \n",
" grrrgGGrgrrrrrgGr | \n",
"
\n",
" \n",
" 199 | \n",
" 175 | \n",
" 1704416358 | \n",
" 4 | \n",
" 4 | \n",
" 5 | \n",
" 2 | \n",
" 37 | \n",
" i0 | \n",
" grrrgrrrgrrrrrgGG | \n",
"
\n",
" \n",
"
\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",
" inter_no | \n",
" node_id | \n",
" start_unix | \n",
" phas_A | \n",
" phas_B | \n",
" move_A | \n",
" move_B | \n",
" duration | \n",
" state | \n",
"
\n",
" \n",
" \n",
" \n",
" 44 | \n",
" 175 | \n",
" i0 | \n",
" 1704415950 | \n",
" 1 | \n",
" 1 | \n",
" 8 | \n",
" 4 | \n",
" 43 | \n",
" gGGrgrrrgGGGGrgrr | \n",
"
\n",
" \n",
" 45 | \n",
" 175 | \n",
" i0 | \n",
" 1704415950 | \n",
" 2 | \n",
" 2 | \n",
" 7 | \n",
" 3 | \n",
" 45 | \n",
" grrGgrrrgrrrrGgrr | \n",
"
\n",
" \n",
" 46 | \n",
" 175 | \n",
" i0 | \n",
" 1704415950 | \n",
" 3 | \n",
" 3 | \n",
" 6 | \n",
" 1 | \n",
" 33 | \n",
" grrrgGGGgrrrrrgrr | \n",
"
\n",
" \n",
" 47 | \n",
" 175 | \n",
" i0 | \n",
" 1704415950 | \n",
" 3 | \n",
" 4 | \n",
" 6 | \n",
" 2 | \n",
" 22 | \n",
" grrrgGGrgrrrrrgGr | \n",
"
\n",
" \n",
" 48 | \n",
" 175 | \n",
" i0 | \n",
" 1704415950 | \n",
" 4 | \n",
" 4 | \n",
" 5 | \n",
" 2 | \n",
" 37 | \n",
" grrrgrrrgrrrrrgGG | \n",
"
\n",
" \n",
" 118 | \n",
" 175 | \n",
" i0 | \n",
" 1704416178 | \n",
" 1 | \n",
" 1 | \n",
" 8 | \n",
" 4 | \n",
" 54 | \n",
" gGGrgrrrgGGGGrgrr | \n",
"
\n",
" \n",
" 119 | \n",
" 175 | \n",
" i0 | \n",
" 1704416178 | \n",
" 2 | \n",
" 2 | \n",
" 7 | \n",
" 3 | \n",
" 57 | \n",
" grrGgrrrgrrrrGgrr | \n",
"
\n",
" \n",
" 120 | \n",
" 175 | \n",
" i0 | \n",
" 1704416178 | \n",
" 3 | \n",
" 3 | \n",
" 6 | \n",
" 1 | \n",
" 42 | \n",
" grrrgGGGgrrrrrgrr | \n",
"
\n",
" \n",
" 121 | \n",
" 175 | \n",
" i0 | \n",
" 1704416178 | \n",
" 3 | \n",
" 4 | \n",
" 6 | \n",
" 2 | \n",
" 28 | \n",
" grrrgGGrgrrrrrgGr | \n",
"
\n",
" \n",
" 122 | \n",
" 175 | \n",
" i0 | \n",
" 1704416178 | \n",
" 4 | \n",
" 4 | \n",
" 5 | \n",
" 2 | \n",
" 47 | \n",
" grrrgrrrgrrrrrgGG | \n",
"
\n",
" \n",
" 200 | \n",
" 175 | \n",
" i0 | \n",
" 1704416358 | \n",
" 1 | \n",
" 1 | \n",
" 8 | \n",
" 4 | \n",
" 43 | \n",
" gGGrgrrrgGGGGrgrr | \n",
"
\n",
" \n",
" 201 | \n",
" 175 | \n",
" i0 | \n",
" 1704416358 | \n",
" 2 | \n",
" 2 | \n",
" 7 | \n",
" 3 | \n",
" 45 | \n",
" grrGgrrrgrrrrGgrr | \n",
"
\n",
" \n",
" 202 | \n",
" 175 | \n",
" i0 | \n",
" 1704416358 | \n",
" 3 | \n",
" 3 | \n",
" 6 | \n",
" 1 | \n",
" 33 | \n",
" grrrgGGGgrrrrrgrr | \n",
"
\n",
" \n",
" 203 | \n",
" 175 | \n",
" i0 | \n",
" 1704416358 | \n",
" 3 | \n",
" 4 | \n",
" 6 | \n",
" 2 | \n",
" 22 | \n",
" grrrgGGrgrrrrrgGr | \n",
"
\n",
" \n",
" 204 | \n",
" 175 | \n",
" i0 | \n",
" 1704416358 | \n",
" 4 | \n",
" 4 | \n",
" 5 | \n",
" 2 | \n",
" 37 | \n",
" grrrgrrrgrrrrrgGG | \n",
"
\n",
" \n",
"
\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",
" inter_no | \n",
" node_id | \n",
" start_unix | \n",
" phas_A | \n",
" phas_B | \n",
" move_A | \n",
" move_B | \n",
" duration | \n",
" state | \n",
" phase_sumo | \n",
"
\n",
" \n",
" \n",
" \n",
" 16 | \n",
" 175 | \n",
" i0 | \n",
" 1704415950 | \n",
" 1 | \n",
" 1 | \n",
" 8 | \n",
" 4 | \n",
" 43 | \n",
" gGGrgrrrgGGGGrgrr | \n",
" 0 | \n",
"
\n",
" \n",
" 17 | \n",
" 175 | \n",
" i0 | \n",
" 1704415950 | \n",
" 2 | \n",
" 2 | \n",
" 7 | \n",
" 3 | \n",
" 45 | \n",
" grrGgrrrgrrrrGgrr | \n",
" 1 | \n",
"
\n",
" \n",
" 18 | \n",
" 175 | \n",
" i0 | \n",
" 1704415950 | \n",
" 3 | \n",
" 3 | \n",
" 6 | \n",
" 1 | \n",
" 33 | \n",
" grrrgGGGgrrrrrgrr | \n",
" 2 | \n",
"
\n",
" \n",
" 19 | \n",
" 175 | \n",
" i0 | \n",
" 1704415950 | \n",
" 3 | \n",
" 4 | \n",
" 6 | \n",
" 2 | \n",
" 22 | \n",
" grrrgGGrgrrrrrgGr | \n",
" 3 | \n",
"
\n",
" \n",
" 20 | \n",
" 175 | \n",
" i0 | \n",
" 1704415950 | \n",
" 4 | \n",
" 4 | \n",
" 5 | \n",
" 2 | \n",
" 37 | \n",
" grrrgrrrgrrrrrgGG | \n",
" 4 | \n",
"
\n",
" \n",
" 21 | \n",
" 175 | \n",
" i0 | \n",
" 1704416178 | \n",
" 1 | \n",
" 1 | \n",
" 8 | \n",
" 4 | \n",
" 54 | \n",
" gGGrgrrrgGGGGrgrr | \n",
" 0 | \n",
"
\n",
" \n",
" 22 | \n",
" 175 | \n",
" i0 | \n",
" 1704416178 | \n",
" 2 | \n",
" 2 | \n",
" 7 | \n",
" 3 | \n",
" 57 | \n",
" grrGgrrrgrrrrGgrr | \n",
" 1 | \n",
"
\n",
" \n",
" 23 | \n",
" 175 | \n",
" i0 | \n",
" 1704416178 | \n",
" 3 | \n",
" 3 | \n",
" 6 | \n",
" 1 | \n",
" 42 | \n",
" grrrgGGGgrrrrrgrr | \n",
" 2 | \n",
"
\n",
" \n",
" 24 | \n",
" 175 | \n",
" i0 | \n",
" 1704416178 | \n",
" 3 | \n",
" 4 | \n",
" 6 | \n",
" 2 | \n",
" 28 | \n",
" grrrgGGrgrrrrrgGr | \n",
" 3 | \n",
"
\n",
" \n",
" 25 | \n",
" 175 | \n",
" i0 | \n",
" 1704416178 | \n",
" 4 | \n",
" 4 | \n",
" 5 | \n",
" 2 | \n",
" 47 | \n",
" grrrgrrrgrrrrrgGG | \n",
" 4 | \n",
"
\n",
" \n",
" 26 | \n",
" 175 | \n",
" i0 | \n",
" 1704416358 | \n",
" 1 | \n",
" 1 | \n",
" 8 | \n",
" 4 | \n",
" 43 | \n",
" gGGrgrrrgGGGGrgrr | \n",
" 0 | \n",
"
\n",
" \n",
" 27 | \n",
" 175 | \n",
" i0 | \n",
" 1704416358 | \n",
" 2 | \n",
" 2 | \n",
" 7 | \n",
" 3 | \n",
" 45 | \n",
" grrGgrrrgrrrrGgrr | \n",
" 1 | \n",
"
\n",
" \n",
" 28 | \n",
" 175 | \n",
" i0 | \n",
" 1704416358 | \n",
" 3 | \n",
" 3 | \n",
" 6 | \n",
" 1 | \n",
" 33 | \n",
" grrrgGGGgrrrrrgrr | \n",
" 2 | \n",
"
\n",
" \n",
" 29 | \n",
" 175 | \n",
" i0 | \n",
" 1704416358 | \n",
" 3 | \n",
" 4 | \n",
" 6 | \n",
" 2 | \n",
" 22 | \n",
" grrrgGGrgrrrrrgGr | \n",
" 3 | \n",
"
\n",
" \n",
" 30 | \n",
" 175 | \n",
" i0 | \n",
" 1704416358 | \n",
" 4 | \n",
" 4 | \n",
" 5 | \n",
" 2 | \n",
" 37 | \n",
" grrrgrrrgrrrrrgGG | \n",
" 4 | \n",
"
\n",
" \n",
"
\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",
" inter_no | \n",
" node_id | \n",
" start_unix | \n",
" phas_A | \n",
" phas_B | \n",
" move_A | \n",
" move_B | \n",
" duration | \n",
" state_A | \n",
" state_B | \n",
"
\n",
" \n",
" \n",
" \n",
" 44 | \n",
" 175 | \n",
" i0 | \n",
" 1704415950 | \n",
" 1 | \n",
" 1 | \n",
" 8 | \n",
" 4 | \n",
" 43 | \n",
" grrrgrrrgGGGGrgrr | \n",
" gGGrgrrrgrrrrrgrr | \n",
"
\n",
" \n",
" 45 | \n",
" 175 | \n",
" i0 | \n",
" 1704415950 | \n",
" 2 | \n",
" 2 | \n",
" 7 | \n",
" 3 | \n",
" 45 | \n",
" grrGgrrrgrrrrrgrr | \n",
" grrrgrrrgrrrrGgrr | \n",
"
\n",
" \n",
" 46 | \n",
" 175 | \n",
" i0 | \n",
" 1704415950 | \n",
" 3 | \n",
" 3 | \n",
" 6 | \n",
" 1 | \n",
" 33 | \n",
" grrrgGGrgrrrrrgrr | \n",
" grrrgrrGgrrrrrgrr | \n",
"
\n",
" \n",
" 47 | \n",
" 175 | \n",
" i0 | \n",
" 1704415950 | \n",
" 3 | \n",
" 4 | \n",
" 6 | \n",
" 2 | \n",
" 22 | \n",
" grrrgGGrgrrrrrgrr | \n",
" grrrgrrrgrrrrrgGr | \n",
"
\n",
" \n",
" 48 | \n",
" 175 | \n",
" i0 | \n",
" 1704415950 | \n",
" 4 | \n",
" 4 | \n",
" 5 | \n",
" 2 | \n",
" 37 | \n",
" grrrgrrrgrrrrrgrG | \n",
" grrrgrrrgrrrrrgGr | \n",
"
\n",
" \n",
" 118 | \n",
" 175 | \n",
" i0 | \n",
" 1704416178 | \n",
" 1 | \n",
" 1 | \n",
" 8 | \n",
" 4 | \n",
" 54 | \n",
" grrrgrrrgGGGGrgrr | \n",
" gGGrgrrrgrrrrrgrr | \n",
"
\n",
" \n",
" 119 | \n",
" 175 | \n",
" i0 | \n",
" 1704416178 | \n",
" 2 | \n",
" 2 | \n",
" 7 | \n",
" 3 | \n",
" 57 | \n",
" grrGgrrrgrrrrrgrr | \n",
" grrrgrrrgrrrrGgrr | \n",
"
\n",
" \n",
" 120 | \n",
" 175 | \n",
" i0 | \n",
" 1704416178 | \n",
" 3 | \n",
" 3 | \n",
" 6 | \n",
" 1 | \n",
" 42 | \n",
" grrrgGGrgrrrrrgrr | \n",
" grrrgrrGgrrrrrgrr | \n",
"
\n",
" \n",
" 121 | \n",
" 175 | \n",
" i0 | \n",
" 1704416178 | \n",
" 3 | \n",
" 4 | \n",
" 6 | \n",
" 2 | \n",
" 28 | \n",
" grrrgGGrgrrrrrgrr | \n",
" grrrgrrrgrrrrrgGr | \n",
"
\n",
" \n",
" 122 | \n",
" 175 | \n",
" i0 | \n",
" 1704416178 | \n",
" 4 | \n",
" 4 | \n",
" 5 | \n",
" 2 | \n",
" 47 | \n",
" grrrgrrrgrrrrrgrG | \n",
" grrrgrrrgrrrrrgGr | \n",
"
\n",
" \n",
" 200 | \n",
" 175 | \n",
" i0 | \n",
" 1704416358 | \n",
" 1 | \n",
" 1 | \n",
" 8 | \n",
" 4 | \n",
" 43 | \n",
" grrrgrrrgGGGGrgrr | \n",
" gGGrgrrrgrrrrrgrr | \n",
"
\n",
" \n",
" 201 | \n",
" 175 | \n",
" i0 | \n",
" 1704416358 | \n",
" 2 | \n",
" 2 | \n",
" 7 | \n",
" 3 | \n",
" 45 | \n",
" grrGgrrrgrrrrrgrr | \n",
" grrrgrrrgrrrrGgrr | \n",
"
\n",
" \n",
" 202 | \n",
" 175 | \n",
" i0 | \n",
" 1704416358 | \n",
" 3 | \n",
" 3 | \n",
" 6 | \n",
" 1 | \n",
" 33 | \n",
" grrrgGGrgrrrrrgrr | \n",
" grrrgrrGgrrrrrgrr | \n",
"
\n",
" \n",
" 203 | \n",
" 175 | \n",
" i0 | \n",
" 1704416358 | \n",
" 3 | \n",
" 4 | \n",
" 6 | \n",
" 2 | \n",
" 22 | \n",
" grrrgGGrgrrrrrgrr | \n",
" grrrgrrrgrrrrrgGr | \n",
"
\n",
" \n",
" 204 | \n",
" 175 | \n",
" i0 | \n",
" 1704416358 | \n",
" 4 | \n",
" 4 | \n",
" 5 | \n",
" 2 | \n",
" 37 | \n",
" grrrgrrrgrrrrrgrG | \n",
" grrrgrrrgrrrrrgGr | \n",
"
\n",
" \n",
" 262 | \n",
" 175 | \n",
" i0 | \n",
" 1704416538 | \n",
" 1 | \n",
" 1 | \n",
" 8 | \n",
" 4 | \n",
" 43 | \n",
" grrrgrrrgGGGGrgrr | \n",
" gGGrgrrrgrrrrrgrr | \n",
"
\n",
" \n",
" 263 | \n",
" 175 | \n",
" i0 | \n",
" 1704416538 | \n",
" 2 | \n",
" 2 | \n",
" 7 | \n",
" 3 | \n",
" 45 | \n",
" grrGgrrrgrrrrrgrr | \n",
" grrrgrrrgrrrrGgrr | \n",
"
\n",
" \n",
" 264 | \n",
" 175 | \n",
" i0 | \n",
" 1704416538 | \n",
" 3 | \n",
" 3 | \n",
" 6 | \n",
" 1 | \n",
" 33 | \n",
" grrrgGGrgrrrrrgrr | \n",
" grrrgrrGgrrrrrgrr | \n",
"
\n",
" \n",
" 265 | \n",
" 175 | \n",
" i0 | \n",
" 1704416538 | \n",
" 3 | \n",
" 4 | \n",
" 6 | \n",
" 2 | \n",
" 22 | \n",
" grrrgGGrgrrrrrgrr | \n",
" grrrgrrrgrrrrrgGr | \n",
"
\n",
" \n",
" 266 | \n",
" 175 | \n",
" i0 | \n",
" 1704416538 | \n",
" 4 | \n",
" 4 | \n",
" 5 | \n",
" 2 | \n",
" 37 | \n",
" grrrgrrrgrrrrrgrG | \n",
" grrrgrrrgrrrrrgGr | \n",
"
\n",
" \n",
" 324 | \n",
" 175 | \n",
" i0 | \n",
" 1704416718 | \n",
" 1 | \n",
" 1 | \n",
" 8 | \n",
" 4 | \n",
" 43 | \n",
" grrrgrrrgGGGGrgrr | \n",
" gGGrgrrrgrrrrrgrr | \n",
"
\n",
" \n",
" 325 | \n",
" 175 | \n",
" i0 | \n",
" 1704416718 | \n",
" 2 | \n",
" 2 | \n",
" 7 | \n",
" 3 | \n",
" 45 | \n",
" grrGgrrrgrrrrrgrr | \n",
" grrrgrrrgrrrrGgrr | \n",
"
\n",
" \n",
" 326 | \n",
" 175 | \n",
" i0 | \n",
" 1704416718 | \n",
" 3 | \n",
" 3 | \n",
" 6 | \n",
" 1 | \n",
" 33 | \n",
" grrrgGGrgrrrrrgrr | \n",
" grrrgrrGgrrrrrgrr | \n",
"
\n",
" \n",
" 327 | \n",
" 175 | \n",
" i0 | \n",
" 1704416718 | \n",
" 3 | \n",
" 4 | \n",
" 6 | \n",
" 2 | \n",
" 22 | \n",
" grrrgGGrgrrrrrgrr | \n",
" grrrgrrrgrrrrrgGr | \n",
"
\n",
" \n",
" 328 | \n",
" 175 | \n",
" i0 | \n",
" 1704416718 | \n",
" 4 | \n",
" 4 | \n",
" 5 | \n",
" 2 | \n",
" 37 | \n",
" grrrgrrrgrrrrrgrG | \n",
" grrrgrrrgrrrrrgGr | \n",
"
\n",
" \n",
" 362 | \n",
" 175 | \n",
" i0 | \n",
" 1704416820 | \n",
" 1 | \n",
" 1 | \n",
" 8 | \n",
" 4 | \n",
" 24 | \n",
" grrrgrrrgGGGGrgrr | \n",
" gGGrgrrrgrrrrrgrr | \n",
"
\n",
" \n",
" 363 | \n",
" 175 | \n",
" i0 | \n",
" 1704416820 | \n",
" 2 | \n",
" 2 | \n",
" 7 | \n",
" 3 | \n",
" 26 | \n",
" grrGgrrrgrrrrrgrr | \n",
" grrrgrrrgrrrrGgrr | \n",
"
\n",
" \n",
" 364 | \n",
" 175 | \n",
" i0 | \n",
" 1704416820 | \n",
" 3 | \n",
" 3 | \n",
" 6 | \n",
" 1 | \n",
" 19 | \n",
" grrrgGGrgrrrrrgrr | \n",
" grrrgrrGgrrrrrgrr | \n",
"
\n",
" \n",
" 365 | \n",
" 175 | \n",
" i0 | \n",
" 1704416820 | \n",
" 3 | \n",
" 4 | \n",
" 6 | \n",
" 2 | \n",
" 12 | \n",
" grrrgGGrgrrrrrgrr | \n",
" grrrgrrrgrrrrrgGr | \n",
"
\n",
" \n",
" 366 | \n",
" 175 | \n",
" i0 | \n",
" 1704416820 | \n",
" 4 | \n",
" 4 | \n",
" 5 | \n",
" 2 | \n",
" 21 | \n",
" grrrgrrrgrrrrrgrG | \n",
" grrrgrrrgrrrrrgGr | \n",
"
\n",
" \n",
"
\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",
" inter_no | \n",
" node_id | \n",
" start_unix | \n",
" phas_A | \n",
" phas_B | \n",
" move_A | \n",
" move_B | \n",
" duration | \n",
" state_A | \n",
" state_B | \n",
" phase_sumo | \n",
"
\n",
" \n",
" \n",
" \n",
" 16 | \n",
" 175 | \n",
" i0 | \n",
" 1704415950 | \n",
" 1 | \n",
" 1 | \n",
" 8 | \n",
" 4 | \n",
" 43 | \n",
" grrrgrrrgGGGGrgrr | \n",
" gGGrgrrrgrrrrrgrr | \n",
" 0 | \n",
"
\n",
" \n",
" 17 | \n",
" 175 | \n",
" i0 | \n",
" 1704415950 | \n",
" 2 | \n",
" 2 | \n",
" 7 | \n",
" 3 | \n",
" 45 | \n",
" grrGgrrrgrrrrrgrr | \n",
" grrrgrrrgrrrrGgrr | \n",
" 1 | \n",
"
\n",
" \n",
" 18 | \n",
" 175 | \n",
" i0 | \n",
" 1704415950 | \n",
" 3 | \n",
" 3 | \n",
" 6 | \n",
" 1 | \n",
" 33 | \n",
" grrrgGGrgrrrrrgrr | \n",
" grrrgrrGgrrrrrgrr | \n",
" 2 | \n",
"
\n",
" \n",
" 19 | \n",
" 175 | \n",
" i0 | \n",
" 1704415950 | \n",
" 3 | \n",
" 4 | \n",
" 6 | \n",
" 2 | \n",
" 22 | \n",
" grrrgGGrgrrrrrgrr | \n",
" grrrgrrrgrrrrrgGr | \n",
" 3 | \n",
"
\n",
" \n",
" 20 | \n",
" 175 | \n",
" i0 | \n",
" 1704415950 | \n",
" 4 | \n",
" 4 | \n",
" 5 | \n",
" 2 | \n",
" 37 | \n",
" grrrgrrrgrrrrrgrG | \n",
" grrrgrrrgrrrrrgGr | \n",
" 4 | \n",
"
\n",
" \n",
" 21 | \n",
" 175 | \n",
" i0 | \n",
" 1704416178 | \n",
" 1 | \n",
" 1 | \n",
" 8 | \n",
" 4 | \n",
" 54 | \n",
" grrrgrrrgGGGGrgrr | \n",
" gGGrgrrrgrrrrrgrr | \n",
" 0 | \n",
"
\n",
" \n",
" 22 | \n",
" 175 | \n",
" i0 | \n",
" 1704416178 | \n",
" 2 | \n",
" 2 | \n",
" 7 | \n",
" 3 | \n",
" 57 | \n",
" grrGgrrrgrrrrrgrr | \n",
" grrrgrrrgrrrrGgrr | \n",
" 1 | \n",
"
\n",
" \n",
" 23 | \n",
" 175 | \n",
" i0 | \n",
" 1704416178 | \n",
" 3 | \n",
" 3 | \n",
" 6 | \n",
" 1 | \n",
" 42 | \n",
" grrrgGGrgrrrrrgrr | \n",
" grrrgrrGgrrrrrgrr | \n",
" 2 | \n",
"
\n",
" \n",
" 24 | \n",
" 175 | \n",
" i0 | \n",
" 1704416178 | \n",
" 3 | \n",
" 4 | \n",
" 6 | \n",
" 2 | \n",
" 28 | \n",
" grrrgGGrgrrrrrgrr | \n",
" grrrgrrrgrrrrrgGr | \n",
" 3 | \n",
"
\n",
" \n",
" 25 | \n",
" 175 | \n",
" i0 | \n",
" 1704416178 | \n",
" 4 | \n",
" 4 | \n",
" 5 | \n",
" 2 | \n",
" 47 | \n",
" grrrgrrrgrrrrrgrG | \n",
" grrrgrrrgrrrrrgGr | \n",
" 4 | \n",
"
\n",
" \n",
" 26 | \n",
" 175 | \n",
" i0 | \n",
" 1704416358 | \n",
" 1 | \n",
" 1 | \n",
" 8 | \n",
" 4 | \n",
" 43 | \n",
" grrrgrrrgGGGGrgrr | \n",
" gGGrgrrrgrrrrrgrr | \n",
" 0 | \n",
"
\n",
" \n",
" 27 | \n",
" 175 | \n",
" i0 | \n",
" 1704416358 | \n",
" 2 | \n",
" 2 | \n",
" 7 | \n",
" 3 | \n",
" 45 | \n",
" grrGgrrrgrrrrrgrr | \n",
" grrrgrrrgrrrrGgrr | \n",
" 1 | \n",
"
\n",
" \n",
" 28 | \n",
" 175 | \n",
" i0 | \n",
" 1704416358 | \n",
" 3 | \n",
" 3 | \n",
" 6 | \n",
" 1 | \n",
" 33 | \n",
" grrrgGGrgrrrrrgrr | \n",
" grrrgrrGgrrrrrgrr | \n",
" 2 | \n",
"
\n",
" \n",
" 29 | \n",
" 175 | \n",
" i0 | \n",
" 1704416358 | \n",
" 3 | \n",
" 4 | \n",
" 6 | \n",
" 2 | \n",
" 22 | \n",
" grrrgGGrgrrrrrgrr | \n",
" grrrgrrrgrrrrrgGr | \n",
" 3 | \n",
"
\n",
" \n",
" 30 | \n",
" 175 | \n",
" i0 | \n",
" 1704416358 | \n",
" 4 | \n",
" 4 | \n",
" 5 | \n",
" 2 | \n",
" 37 | \n",
" grrrgrrrgrrrrrgrG | \n",
" grrrgrrrgrrrrrgGr | \n",
" 4 | \n",
"
\n",
" \n",
"
\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",
" inter_no | \n",
" node_id | \n",
" start_unix | \n",
" phas_A | \n",
" phas_B | \n",
" move_A | \n",
" move_B | \n",
" duration | \n",
" state_A | \n",
" state_B | \n",
" phase_sumo | \n",
"
\n",
" \n",
" \n",
" \n",
" 16 | \n",
" 175 | \n",
" i0 | \n",
" 1704415950 | \n",
" 1 | \n",
" 1 | \n",
" 8 | \n",
" 4 | \n",
" 43 | \n",
" grrrgrrrgGGGGrgrr | \n",
" gGGrgrrrgrrrrrgrr | \n",
" 0 | \n",
"
\n",
" \n",
" 17 | \n",
" 175 | \n",
" i0 | \n",
" 1704415950 | \n",
" 2 | \n",
" 2 | \n",
" 7 | \n",
" 3 | \n",
" 45 | \n",
" grrGgrrrgrrrrrgrr | \n",
" grrrgrrrgrrrrGgrr | \n",
" 1 | \n",
"
\n",
" \n",
" 18 | \n",
" 175 | \n",
" i0 | \n",
" 1704415950 | \n",
" 3 | \n",
" 3 | \n",
" 6 | \n",
" 1 | \n",
" 33 | \n",
" grrrgGGrgrrrrrgrr | \n",
" grrrgrrGgrrrrrgrr | \n",
" 2 | \n",
"
\n",
" \n",
" 19 | \n",
" 175 | \n",
" i0 | \n",
" 1704415950 | \n",
" 3 | \n",
" 4 | \n",
" 6 | \n",
" 2 | \n",
" 22 | \n",
" grrrgGGrgrrrrrgrr | \n",
" grrrgrrrgrrrrrgGr | \n",
" 3 | \n",
"
\n",
" \n",
" 20 | \n",
" 175 | \n",
" i0 | \n",
" 1704415950 | \n",
" 4 | \n",
" 4 | \n",
" 5 | \n",
" 2 | \n",
" 37 | \n",
" grrrgrrrgrrrrrgrG | \n",
" grrrgrrrgrrrrrgGr | \n",
" 4 | \n",
"
\n",
" \n",
" 21 | \n",
" 175 | \n",
" i0 | \n",
" 1704416178 | \n",
" 1 | \n",
" 1 | \n",
" 8 | \n",
" 4 | \n",
" 54 | \n",
" grrrgrrrgGGGGrgrr | \n",
" gGGrgrrrgrrrrrgrr | \n",
" 0 | \n",
"
\n",
" \n",
" 22 | \n",
" 175 | \n",
" i0 | \n",
" 1704416178 | \n",
" 2 | \n",
" 2 | \n",
" 7 | \n",
" 3 | \n",
" 57 | \n",
" grrGgrrrgrrrrrgrr | \n",
" grrrgrrrgrrrrGgrr | \n",
" 1 | \n",
"
\n",
" \n",
" 23 | \n",
" 175 | \n",
" i0 | \n",
" 1704416178 | \n",
" 3 | \n",
" 3 | \n",
" 6 | \n",
" 1 | \n",
" 42 | \n",
" grrrgGGrgrrrrrgrr | \n",
" grrrgrrGgrrrrrgrr | \n",
" 2 | \n",
"
\n",
" \n",
" 24 | \n",
" 175 | \n",
" i0 | \n",
" 1704416178 | \n",
" 3 | \n",
" 4 | \n",
" 6 | \n",
" 2 | \n",
" 28 | \n",
" grrrgGGrgrrrrrgrr | \n",
" grrrgrrrgrrrrrgGr | \n",
" 3 | \n",
"
\n",
" \n",
" 25 | \n",
" 175 | \n",
" i0 | \n",
" 1704416178 | \n",
" 4 | \n",
" 4 | \n",
" 5 | \n",
" 2 | \n",
" 47 | \n",
" grrrgrrrgrrrrrgrG | \n",
" grrrgrrrgrrrrrgGr | \n",
" 4 | \n",
"
\n",
" \n",
" 26 | \n",
" 175 | \n",
" i0 | \n",
" 1704416358 | \n",
" 1 | \n",
" 1 | \n",
" 8 | \n",
" 4 | \n",
" 43 | \n",
" grrrgrrrgGGGGrgrr | \n",
" gGGrgrrrgrrrrrgrr | \n",
" 0 | \n",
"
\n",
" \n",
" 27 | \n",
" 175 | \n",
" i0 | \n",
" 1704416358 | \n",
" 2 | \n",
" 2 | \n",
" 7 | \n",
" 3 | \n",
" 45 | \n",
" grrGgrrrgrrrrrgrr | \n",
" grrrgrrrgrrrrGgrr | \n",
" 1 | \n",
"
\n",
" \n",
" 28 | \n",
" 175 | \n",
" i0 | \n",
" 1704416358 | \n",
" 3 | \n",
" 3 | \n",
" 6 | \n",
" 1 | \n",
" 33 | \n",
" grrrgGGrgrrrrrgrr | \n",
" grrrgrrGgrrrrrgrr | \n",
" 2 | \n",
"
\n",
" \n",
" 29 | \n",
" 175 | \n",
" i0 | \n",
" 1704416358 | \n",
" 3 | \n",
" 4 | \n",
" 6 | \n",
" 2 | \n",
" 22 | \n",
" grrrgGGrgrrrrrgrr | \n",
" grrrgrrrgrrrrrgGr | \n",
" 3 | \n",
"
\n",
" \n",
" 30 | \n",
" 175 | \n",
" i0 | \n",
" 1704416358 | \n",
" 4 | \n",
" 4 | \n",
" 5 | \n",
" 2 | \n",
" 37 | \n",
" grrrgrrrgrrrrrgrG | \n",
" grrrgrrrgrrrrrgGr | \n",
" 4 | \n",
"
\n",
" \n",
"
\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",
" inter_no | \n",
" node_id | \n",
" start_unix | \n",
" phas_A | \n",
" phas_B | \n",
" duration | \n",
" state_A | \n",
" state_B | \n",
" phase_sumo | \n",
" red_A | \n",
" red_B | \n",
" yellow_A | \n",
" yellow_B | \n",
"
\n",
" \n",
" \n",
" \n",
" 16 | \n",
" 175 | \n",
" i0 | \n",
" 1704415950 | \n",
" 1 | \n",
" 1 | \n",
" 43 | \n",
" grrrgrrrgGGGGrgrr | \n",
" gGGrgrrrgrrrrrgrr | \n",
" 0 | \n",
" 1 | \n",
" 1 | \n",
" 4 | \n",
" 4 | \n",
"
\n",
" \n",
" 17 | \n",
" 175 | \n",
" i0 | \n",
" 1704415950 | \n",
" 2 | \n",
" 2 | \n",
" 45 | \n",
" grrGgrrrgrrrrrgrr | \n",
" grrrgrrrgrrrrGgrr | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 4 | \n",
" 4 | \n",
"
\n",
" \n",
" 18 | \n",
" 175 | \n",
" i0 | \n",
" 1704415950 | \n",
" 3 | \n",
" 3 | \n",
" 33 | \n",
" grrrgGGrgrrrrrgrr | \n",
" grrrgrrGgrrrrrgrr | \n",
" 2 | \n",
" 1 | \n",
" 1 | \n",
" 4 | \n",
" 4 | \n",
"
\n",
" \n",
" 19 | \n",
" 175 | \n",
" i0 | \n",
" 1704415950 | \n",
" 3 | \n",
" 4 | \n",
" 22 | \n",
" grrrgGGrgrrrrrgrr | \n",
" grrrgrrrgrrrrrgGr | \n",
" 3 | \n",
" 1 | \n",
" 1 | \n",
" 4 | \n",
" 4 | \n",
"
\n",
" \n",
" 20 | \n",
" 175 | \n",
" i0 | \n",
" 1704415950 | \n",
" 4 | \n",
" 4 | \n",
" 37 | \n",
" grrrgrrrgrrrrrgrG | \n",
" grrrgrrrgrrrrrgGr | \n",
" 4 | \n",
" 1 | \n",
" 1 | \n",
" 4 | \n",
" 4 | \n",
"
\n",
" \n",
" 21 | \n",
" 175 | \n",
" i0 | \n",
" 1704416178 | \n",
" 1 | \n",
" 1 | \n",
" 54 | \n",
" grrrgrrrgGGGGrgrr | \n",
" gGGrgrrrgrrrrrgrr | \n",
" 0 | \n",
" 1 | \n",
" 1 | \n",
" 4 | \n",
" 4 | \n",
"
\n",
" \n",
" 22 | \n",
" 175 | \n",
" i0 | \n",
" 1704416178 | \n",
" 2 | \n",
" 2 | \n",
" 57 | \n",
" grrGgrrrgrrrrrgrr | \n",
" grrrgrrrgrrrrGgrr | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 4 | \n",
" 4 | \n",
"
\n",
" \n",
" 23 | \n",
" 175 | \n",
" i0 | \n",
" 1704416178 | \n",
" 3 | \n",
" 3 | \n",
" 42 | \n",
" grrrgGGrgrrrrrgrr | \n",
" grrrgrrGgrrrrrgrr | \n",
" 2 | \n",
" 1 | \n",
" 1 | \n",
" 4 | \n",
" 4 | \n",
"
\n",
" \n",
" 24 | \n",
" 175 | \n",
" i0 | \n",
" 1704416178 | \n",
" 3 | \n",
" 4 | \n",
" 28 | \n",
" grrrgGGrgrrrrrgrr | \n",
" grrrgrrrgrrrrrgGr | \n",
" 3 | \n",
" 1 | \n",
" 1 | \n",
" 4 | \n",
" 4 | \n",
"
\n",
" \n",
" 25 | \n",
" 175 | \n",
" i0 | \n",
" 1704416178 | \n",
" 4 | \n",
" 4 | \n",
" 47 | \n",
" grrrgrrrgrrrrrgrG | \n",
" grrrgrrrgrrrrrgGr | \n",
" 4 | \n",
" 1 | \n",
" 1 | \n",
" 4 | \n",
" 4 | \n",
"
\n",
" \n",
" 26 | \n",
" 175 | \n",
" i0 | \n",
" 1704416358 | \n",
" 1 | \n",
" 1 | \n",
" 43 | \n",
" grrrgrrrgGGGGrgrr | \n",
" gGGrgrrrgrrrrrgrr | \n",
" 0 | \n",
" 1 | \n",
" 1 | \n",
" 4 | \n",
" 4 | \n",
"
\n",
" \n",
" 27 | \n",
" 175 | \n",
" i0 | \n",
" 1704416358 | \n",
" 2 | \n",
" 2 | \n",
" 45 | \n",
" grrGgrrrgrrrrrgrr | \n",
" grrrgrrrgrrrrGgrr | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 4 | \n",
" 4 | \n",
"
\n",
" \n",
" 28 | \n",
" 175 | \n",
" i0 | \n",
" 1704416358 | \n",
" 3 | \n",
" 3 | \n",
" 33 | \n",
" grrrgGGrgrrrrrgrr | \n",
" grrrgrrGgrrrrrgrr | \n",
" 2 | \n",
" 1 | \n",
" 1 | \n",
" 4 | \n",
" 4 | \n",
"
\n",
" \n",
" 29 | \n",
" 175 | \n",
" i0 | \n",
" 1704416358 | \n",
" 3 | \n",
" 4 | \n",
" 22 | \n",
" grrrgGGrgrrrrrgrr | \n",
" grrrgrrrgrrrrrgGr | \n",
" 3 | \n",
" 1 | \n",
" 1 | \n",
" 4 | \n",
" 4 | \n",
"
\n",
" \n",
" 30 | \n",
" 175 | \n",
" i0 | \n",
" 1704416358 | \n",
" 4 | \n",
" 4 | \n",
" 37 | \n",
" grrrgrrrgrrrrrgrG | \n",
" grrrgrrrgrrrrrgGr | \n",
" 4 | \n",
" 1 | \n",
" 1 | \n",
" 4 | \n",
" 4 | \n",
"
\n",
" \n",
"
\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",
" phas_A | \n",
" duration | \n",
" state_A | \n",
" red_A | \n",
" yellow_A | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 1 | \n",
" 43 | \n",
" grrrgrrrgGGGGrgrr | \n",
" 1 | \n",
" 4 | \n",
"
\n",
" \n",
" 1 | \n",
" 2 | \n",
" 45 | \n",
" grrGgrrrgrrrrrgrr | \n",
" 1 | \n",
" 4 | \n",
"
\n",
" \n",
" 2 | \n",
" 3 | \n",
" 33 | \n",
" grrrgGGrgrrrrrgrr | \n",
" 1 | \n",
" 4 | \n",
"
\n",
" \n",
" 3 | \n",
" 3 | \n",
" 22 | \n",
" grrrgGGrgrrrrrgrr | \n",
" 1 | \n",
" 4 | \n",
"
\n",
" \n",
" 4 | \n",
" 4 | \n",
" 37 | \n",
" grrrgrrrgrrrrrgrG | \n",
" 1 | \n",
" 4 | \n",
"
\n",
" \n",
" 5 | \n",
" 1 | \n",
" 54 | \n",
" grrrgrrrgGGGGrgrr | \n",
" 1 | \n",
" 4 | \n",
"
\n",
" \n",
" 6 | \n",
" 2 | \n",
" 57 | \n",
" grrGgrrrgrrrrrgrr | \n",
" 1 | \n",
" 4 | \n",
"
\n",
" \n",
" 7 | \n",
" 3 | \n",
" 42 | \n",
" grrrgGGrgrrrrrgrr | \n",
" 1 | \n",
" 4 | \n",
"
\n",
" \n",
" 8 | \n",
" 3 | \n",
" 28 | \n",
" grrrgGGrgrrrrrgrr | \n",
" 1 | \n",
" 4 | \n",
"
\n",
" \n",
" 9 | \n",
" 4 | \n",
" 47 | \n",
" grrrgrrrgrrrrrgrG | \n",
" 1 | \n",
" 4 | \n",
"
\n",
" \n",
" 10 | \n",
" 1 | \n",
" 43 | \n",
" grrrgrrrgGGGGrgrr | \n",
" 1 | \n",
" 4 | \n",
"
\n",
" \n",
" 11 | \n",
" 2 | \n",
" 45 | \n",
" grrGgrrrgrrrrrgrr | \n",
" 1 | \n",
" 4 | \n",
"
\n",
" \n",
" 12 | \n",
" 3 | \n",
" 33 | \n",
" grrrgGGrgrrrrrgrr | \n",
" 1 | \n",
" 4 | \n",
"
\n",
" \n",
" 13 | \n",
" 3 | \n",
" 22 | \n",
" grrrgGGrgrrrrrgrr | \n",
" 1 | \n",
" 4 | \n",
"
\n",
" \n",
" 14 | \n",
" 4 | \n",
" 37 | \n",
" grrrgrrrgrrrrrgrG | \n",
" 1 | \n",
" 4 | \n",
"
\n",
" \n",
"
\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",
" phas_A | \n",
" duration | \n",
" state_A | \n",
" red_A | \n",
" yellow_A | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 1 | \n",
" 43 | \n",
" grrrgrrrgGGGGrgrr | \n",
" 1 | \n",
" 4 | \n",
"
\n",
" \n",
" 1 | \n",
" 2 | \n",
" 45 | \n",
" grrGgrrrgrrrrrgrr | \n",
" 1 | \n",
" 4 | \n",
"
\n",
" \n",
" 2 | \n",
" 3 | \n",
" 33 | \n",
" grrrgGGrgrrrrrgrr | \n",
" 1 | \n",
" 4 | \n",
"
\n",
" \n",
" 3 | \n",
" 3 | \n",
" 22 | \n",
" grrrgGGrgrrrrrgrr | \n",
" 1 | \n",
" 4 | \n",
"
\n",
" \n",
" 4 | \n",
" 4 | \n",
" 37 | \n",
" grrrgrrrgrrrrrgrG | \n",
" 1 | \n",
" 4 | \n",
"
\n",
" \n",
" 5 | \n",
" 1 | \n",
" 54 | \n",
" grrrgrrrgGGGGrgrr | \n",
" 1 | \n",
" 4 | \n",
"
\n",
" \n",
" 6 | \n",
" 2 | \n",
" 57 | \n",
" grrGgrrrgrrrrrgrr | \n",
" 1 | \n",
" 4 | \n",
"
\n",
" \n",
" 7 | \n",
" 3 | \n",
" 42 | \n",
" grrrgGGrgrrrrrgrr | \n",
" 1 | \n",
" 4 | \n",
"
\n",
" \n",
" 8 | \n",
" 3 | \n",
" 28 | \n",
" grrrgGGrgrrrrrgrr | \n",
" 1 | \n",
" 4 | \n",
"
\n",
" \n",
" 9 | \n",
" 4 | \n",
" 47 | \n",
" grrrgrrrgrrrrrgrG | \n",
" 1 | \n",
" 4 | \n",
"
\n",
" \n",
" 10 | \n",
" 1 | \n",
" 43 | \n",
" grrrgrrrgGGGGrgrr | \n",
" 1 | \n",
" 4 | \n",
"
\n",
" \n",
" 11 | \n",
" 2 | \n",
" 45 | \n",
" grrGgrrrgrrrrrgrr | \n",
" 1 | \n",
" 4 | \n",
"
\n",
" \n",
" 12 | \n",
" 3 | \n",
" 33 | \n",
" grrrgGGrgrrrrrgrr | \n",
" 1 | \n",
" 4 | \n",
"
\n",
" \n",
" 13 | \n",
" 3 | \n",
" 22 | \n",
" grrrgGGrgrrrrrgrr | \n",
" 1 | \n",
" 4 | \n",
"
\n",
" \n",
" 14 | \n",
" 4 | \n",
" 37 | \n",
" grrrgrrrgrrrrrgrG | \n",
" 1 | \n",
" 4 | \n",
"
\n",
" \n",
"
\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",
" duration | \n",
" duration | \n",
" duration | \n",
" duration | \n",
" phas_A | \n",
" phas_B | \n",
" red_A | \n",
" red_B | \n",
" state_A | \n",
" state_B | \n",
" yellow_A | \n",
" yellow_B | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 43 | \n",
" 43 | \n",
" 43 | \n",
" 43 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" grrrgrrrgGGGGrgrr | \n",
" gGGrgrrrgrrrrrgrr | \n",
" 4 | \n",
" 4 | \n",
"
\n",
" \n",
" 1 | \n",
" 45 | \n",
" 45 | \n",
" 45 | \n",
" 45 | \n",
" 2 | \n",
" 2 | \n",
" 1 | \n",
" 1 | \n",
" grrGgrrrgrrrrrgrr | \n",
" grrrgrrrgrrrrGgrr | \n",
" 4 | \n",
" 4 | \n",
"
\n",
" \n",
" 2 | \n",
" 33 | \n",
" 33 | \n",
" 33 | \n",
" 33 | \n",
" 3 | \n",
" 3 | \n",
" 1 | \n",
" 1 | \n",
" grrrgGGrgrrrrrgrr | \n",
" grrrgrrGgrrrrrgrr | \n",
" 4 | \n",
" 4 | \n",
"
\n",
" \n",
" 3 | \n",
" 22 | \n",
" 22 | \n",
" 22 | \n",
" 22 | \n",
" 3 | \n",
" 4 | \n",
" 1 | \n",
" 1 | \n",
" grrrgGGrgrrrrrgrr | \n",
" grrrgrrrgrrrrrgGr | \n",
" 4 | \n",
" 4 | \n",
"
\n",
" \n",
" 4 | \n",
" 37 | \n",
" 37 | \n",
" 37 | \n",
" 37 | \n",
" 4 | \n",
" 4 | \n",
" 1 | \n",
" 1 | \n",
" grrrgrrrgrrrrrgrG | \n",
" grrrgrrrgrrrrrgGr | \n",
" 4 | \n",
" 4 | \n",
"
\n",
" \n",
" 5 | \n",
" 54 | \n",
" 54 | \n",
" 54 | \n",
" 54 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" grrrgrrrgGGGGrgrr | \n",
" gGGrgrrrgrrrrrgrr | \n",
" 4 | \n",
" 4 | \n",
"
\n",
" \n",
" 6 | \n",
" 57 | \n",
" 57 | \n",
" 57 | \n",
" 57 | \n",
" 2 | \n",
" 2 | \n",
" 1 | \n",
" 1 | \n",
" grrGgrrrgrrrrrgrr | \n",
" grrrgrrrgrrrrGgrr | \n",
" 4 | \n",
" 4 | \n",
"
\n",
" \n",
" 7 | \n",
" 42 | \n",
" 42 | \n",
" 42 | \n",
" 42 | \n",
" 3 | \n",
" 3 | \n",
" 1 | \n",
" 1 | \n",
" grrrgGGrgrrrrrgrr | \n",
" grrrgrrGgrrrrrgrr | \n",
" 4 | \n",
" 4 | \n",
"
\n",
" \n",
" 8 | \n",
" 28 | \n",
" 28 | \n",
" 28 | \n",
" 28 | \n",
" 3 | \n",
" 4 | \n",
" 1 | \n",
" 1 | \n",
" grrrgGGrgrrrrrgrr | \n",
" grrrgrrrgrrrrrgGr | \n",
" 4 | \n",
" 4 | \n",
"
\n",
" \n",
" 9 | \n",
" 47 | \n",
" 47 | \n",
" 47 | \n",
" 47 | \n",
" 4 | \n",
" 4 | \n",
" 1 | \n",
" 1 | \n",
" grrrgrrrgrrrrrgrG | \n",
" grrrgrrrgrrrrrgGr | \n",
" 4 | \n",
" 4 | \n",
"
\n",
" \n",
" 10 | \n",
" 43 | \n",
" 43 | \n",
" 43 | \n",
" 43 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" grrrgrrrgGGGGrgrr | \n",
" gGGrgrrrgrrrrrgrr | \n",
" 4 | \n",
" 4 | \n",
"
\n",
" \n",
" 11 | \n",
" 45 | \n",
" 45 | \n",
" 45 | \n",
" 45 | \n",
" 2 | \n",
" 2 | \n",
" 1 | \n",
" 1 | \n",
" grrGgrrrgrrrrrgrr | \n",
" grrrgrrrgrrrrGgrr | \n",
" 4 | \n",
" 4 | \n",
"
\n",
" \n",
" 12 | \n",
" 33 | \n",
" 33 | \n",
" 33 | \n",
" 33 | \n",
" 3 | \n",
" 3 | \n",
" 1 | \n",
" 1 | \n",
" grrrgGGrgrrrrrgrr | \n",
" grrrgrrGgrrrrrgrr | \n",
" 4 | \n",
" 4 | \n",
"
\n",
" \n",
" 13 | \n",
" 22 | \n",
" 22 | \n",
" 22 | \n",
" 22 | \n",
" 3 | \n",
" 4 | \n",
" 1 | \n",
" 1 | \n",
" grrrgGGrgrrrrrgrr | \n",
" grrrgrrrgrrrrrgGr | \n",
" 4 | \n",
" 4 | \n",
"
\n",
" \n",
" 14 | \n",
" 37 | \n",
" 37 | \n",
" 37 | \n",
" 37 | \n",
" 4 | \n",
" 4 | \n",
" 1 | \n",
" 1 | \n",
" grrrgrrrgrrrrrgrG | \n",
" grrrgrrrgrrrrrgGr | \n",
" 4 | \n",
" 4 | \n",
"
\n",
" \n",
"
\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",
" start_time | \n",
" phas_A | \n",
" state_A | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 0 | \n",
" 1g | \n",
" grrrgrrrgGGGGrgrr | \n",
"
\n",
" \n",
" 1 | \n",
" 39 | \n",
" 1y | \n",
" grrrgrrrgyyyyrgrr | \n",
"
\n",
" \n",
" 2 | \n",
" 43 | \n",
" 2r | \n",
" grrrgrrrgrrrrrgrr | \n",
"
\n",
" \n",
" 3 | \n",
" 44 | \n",
" 2g | \n",
" grrGgrrrgrrrrrgrr | \n",
"
\n",
" \n",
" 4 | \n",
" 84 | \n",
" 2y | \n",
" grrygrrrgrrrrrgrr | \n",
"
\n",
" \n",
" 5 | \n",
" 88 | \n",
" 3r | \n",
" grrrgGGrgrrrrrgrr | \n",
"
\n",
" \n",
" 6 | \n",
" 89 | \n",
" 3g | \n",
" grrrgGGrgrrrrrgrr | \n",
"
\n",
" \n",
" 7 | \n",
" 139 | \n",
" 3y | \n",
" grrrgyyrgrrrrrgrr | \n",
"
\n",
" \n",
" 8 | \n",
" 143 | \n",
" 4r | \n",
" grrrgrrrgrrrrrgrr | \n",
"
\n",
" \n",
" 9 | \n",
" 144 | \n",
" 4g | \n",
" grrrgrrrgrrrrrgrG | \n",
"
\n",
" \n",
" 10 | \n",
" 176 | \n",
" 4y | \n",
" grrrgrrrgrrrrrgry | \n",
"
\n",
" \n",
" 11 | \n",
" 180 | \n",
" 1r | \n",
" grrrgrrrgrrrrrgrr | \n",
"
\n",
" \n",
" 12 | \n",
" 181 | \n",
" 1g | \n",
" grrrgrrrgGGGGrgrr | \n",
"
\n",
" \n",
" 13 | \n",
" 230 | \n",
" 1y | \n",
" grrrgrrrgyyyyrgrr | \n",
"
\n",
" \n",
" 14 | \n",
" 234 | \n",
" 2r | \n",
" grrrgrrrgrrrrrgrr | \n",
"
\n",
" \n",
" 15 | \n",
" 235 | \n",
" 2g | \n",
" grrGgrrrgrrrrrgrr | \n",
"
\n",
" \n",
" 16 | \n",
" 287 | \n",
" 2y | \n",
" grrygrrrgrrrrrgrr | \n",
"
\n",
" \n",
" 17 | \n",
" 291 | \n",
" 3r | \n",
" grrrgGGrgrrrrrgrr | \n",
"
\n",
" \n",
" 18 | \n",
" 292 | \n",
" 3g | \n",
" grrrgGGrgrrrrrgrr | \n",
"
\n",
" \n",
" 19 | \n",
" 357 | \n",
" 3y | \n",
" grrrgyyrgrrrrrgrr | \n",
"
\n",
" \n",
" 20 | \n",
" 361 | \n",
" 4r | \n",
" grrrgrrrgrrrrrgrr | \n",
"
\n",
" \n",
" 21 | \n",
" 362 | \n",
" 4g | \n",
" grrrgrrrgrrrrrgrG | \n",
"
\n",
" \n",
" 22 | \n",
" 404 | \n",
" 4y | \n",
" grrrgrrrgrrrrrgry | \n",
"
\n",
" \n",
" 23 | \n",
" 408 | \n",
" 1r | \n",
" grrrgrrrgrrrrrgrr | \n",
"
\n",
" \n",
" 24 | \n",
" 409 | \n",
" 1g | \n",
" grrrgrrrgGGGGrgrr | \n",
"
\n",
" \n",
" 25 | \n",
" 447 | \n",
" 1y | \n",
" grrrgrrrgyyyyrgrr | \n",
"
\n",
" \n",
" 26 | \n",
" 451 | \n",
" 2r | \n",
" grrrgrrrgrrrrrgrr | \n",
"
\n",
" \n",
" 27 | \n",
" 452 | \n",
" 2g | \n",
" grrGgrrrgrrrrrgrr | \n",
"
\n",
" \n",
" 28 | \n",
" 492 | \n",
" 2y | \n",
" grrygrrrgrrrrrgrr | \n",
"
\n",
" \n",
" 29 | \n",
" 496 | \n",
" 3r | \n",
" grrrgGGrgrrrrrgrr | \n",
"
\n",
" \n",
" 30 | \n",
" 497 | \n",
" 3g | \n",
" grrrgGGrgrrrrrgrr | \n",
"
\n",
" \n",
" 31 | \n",
" 547 | \n",
" 3y | \n",
" grrrgyyrgrrrrrgrr | \n",
"
\n",
" \n",
"
\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",
" start_time | \n",
" phas_B | \n",
" state_B | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 0 | \n",
" 1g | \n",
" gGGrgrrrgrrrrrgrr | \n",
"
\n",
" \n",
" 1 | \n",
" 39 | \n",
" 1y | \n",
" gyyrgrrrgrrrrrgrr | \n",
"
\n",
" \n",
" 2 | \n",
" 43 | \n",
" 2r | \n",
" grrrgrrrgrrrrrgrr | \n",
"
\n",
" \n",
" 3 | \n",
" 44 | \n",
" 2g | \n",
" grrrgrrrgrrrrGgrr | \n",
"
\n",
" \n",
" 4 | \n",
" 84 | \n",
" 2y | \n",
" grrrgrrrgrrrrygrr | \n",
"
\n",
" \n",
" 5 | \n",
" 88 | \n",
" 3r | \n",
" grrrgrrrgrrrrrgrr | \n",
"
\n",
" \n",
" 6 | \n",
" 89 | \n",
" 3g | \n",
" grrrgrrGgrrrrrgrr | \n",
"
\n",
" \n",
" 7 | \n",
" 117 | \n",
" 3y | \n",
" grrrgrrygrrrrrgrr | \n",
"
\n",
" \n",
" 8 | \n",
" 121 | \n",
" 4r | \n",
" grrrgrrrgrrrrrgGr | \n",
"
\n",
" \n",
" 9 | \n",
" 122 | \n",
" 4g | \n",
" grrrgrrrgrrrrrgGr | \n",
"
\n",
" \n",
" 10 | \n",
" 176 | \n",
" 4y | \n",
" grrrgrrrgrrrrrgyr | \n",
"
\n",
" \n",
" 11 | \n",
" 180 | \n",
" 1r | \n",
" grrrgrrrgrrrrrgrr | \n",
"
\n",
" \n",
" 12 | \n",
" 181 | \n",
" 1g | \n",
" gGGrgrrrgrrrrrgrr | \n",
"
\n",
" \n",
" 13 | \n",
" 230 | \n",
" 1y | \n",
" gyyrgrrrgrrrrrgrr | \n",
"
\n",
" \n",
" 14 | \n",
" 234 | \n",
" 2r | \n",
" grrrgrrrgrrrrrgrr | \n",
"
\n",
" \n",
" 15 | \n",
" 235 | \n",
" 2g | \n",
" grrrgrrrgrrrrGgrr | \n",
"
\n",
" \n",
" 16 | \n",
" 287 | \n",
" 2y | \n",
" grrrgrrrgrrrrygrr | \n",
"
\n",
" \n",
" 17 | \n",
" 291 | \n",
" 3r | \n",
" grrrgrrrgrrrrrgrr | \n",
"
\n",
" \n",
" 18 | \n",
" 292 | \n",
" 3g | \n",
" grrrgrrGgrrrrrgrr | \n",
"
\n",
" \n",
" 19 | \n",
" 329 | \n",
" 3y | \n",
" grrrgrrygrrrrrgrr | \n",
"
\n",
" \n",
" 20 | \n",
" 333 | \n",
" 4r | \n",
" grrrgrrrgrrrrrgGr | \n",
"
\n",
" \n",
" 21 | \n",
" 334 | \n",
" 4g | \n",
" grrrgrrrgrrrrrgGr | \n",
"
\n",
" \n",
" 22 | \n",
" 404 | \n",
" 4y | \n",
" grrrgrrrgrrrrrgyr | \n",
"
\n",
" \n",
" 23 | \n",
" 408 | \n",
" 1r | \n",
" grrrgrrrgrrrrrgrr | \n",
"
\n",
" \n",
" 24 | \n",
" 409 | \n",
" 1g | \n",
" gGGrgrrrgrrrrrgrr | \n",
"
\n",
" \n",
" 25 | \n",
" 447 | \n",
" 1y | \n",
" gyyrgrrrgrrrrrgrr | \n",
"
\n",
" \n",
" 26 | \n",
" 451 | \n",
" 2r | \n",
" grrrgrrrgrrrrrgrr | \n",
"
\n",
" \n",
" 27 | \n",
" 452 | \n",
" 2g | \n",
" grrrgrrrgrrrrGgrr | \n",
"
\n",
" \n",
" 28 | \n",
" 492 | \n",
" 2y | \n",
" grrrgrrrgrrrrygrr | \n",
"
\n",
" \n",
" 29 | \n",
" 496 | \n",
" 3r | \n",
" grrrgrrrgrrrrrgrr | \n",
"
\n",
" \n",
" 30 | \n",
" 497 | \n",
" 3g | \n",
" grrrgrrGgrrrrrgrr | \n",
"
\n",
" \n",
" 31 | \n",
" 525 | \n",
" 3y | \n",
" grrrgrrygrrrrrgrr | \n",
"
\n",
" \n",
"
\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",
" start_time | \n",
" phase | \n",
" state_A | \n",
" state_B | \n",
" duration | \n",
" state | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 0 | \n",
" 1g_1g | \n",
" grrrgrrrgGGGGrgrr | \n",
" gGGrgrrrgrrrrrgrr | \n",
" 39 | \n",
" gGGrgrrrgGGGGrgrr | \n",
"
\n",
" \n",
" 1 | \n",
" 39 | \n",
" 1y_1y | \n",
" grrrgrrrgyyyyrgrr | \n",
" gyyrgrrrgrrrrrgrr | \n",
" 4 | \n",
" gyyrgrrrgyyyyrgrr | \n",
"
\n",
" \n",
" 2 | \n",
" 43 | \n",
" 2r_2r | \n",
" grrrgrrrgrrrrrgrr | \n",
" grrrgrrrgrrrrrgrr | \n",
" 1 | \n",
" grrrgrrrgrrrrrgrr | \n",
"
\n",
" \n",
" 3 | \n",
" 44 | \n",
" 2g_2g | \n",
" grrGgrrrgrrrrrgrr | \n",
" grrrgrrrgrrrrGgrr | \n",
" 40 | \n",
" grrGgrrrgrrrrGgrr | \n",
"
\n",
" \n",
" 4 | \n",
" 84 | \n",
" 2y_2y | \n",
" grrygrrrgrrrrrgrr | \n",
" grrrgrrrgrrrrygrr | \n",
" 4 | \n",
" grrygrrrgrrrrygrr | \n",
"
\n",
" \n",
" 5 | \n",
" 88 | \n",
" 3r_3r | \n",
" grrrgGGrgrrrrrgrr | \n",
" grrrgrrrgrrrrrgrr | \n",
" 1 | \n",
" grrrgGGrgrrrrrgrr | \n",
"
\n",
" \n",
" 6 | \n",
" 89 | \n",
" 3g_3g | \n",
" grrrgGGrgrrrrrgrr | \n",
" grrrgrrGgrrrrrgrr | \n",
" 28 | \n",
" grrrgGGGgrrrrrgrr | \n",
"
\n",
" \n",
" 7 | \n",
" 117 | \n",
" 3g_3y | \n",
" grrrgGGrgrrrrrgrr | \n",
" grrrgrrygrrrrrgrr | \n",
" 4 | \n",
" grrrgGGygrrrrrgrr | \n",
"
\n",
" \n",
" 8 | \n",
" 121 | \n",
" 3g_4r | \n",
" grrrgGGrgrrrrrgrr | \n",
" grrrgrrrgrrrrrgGr | \n",
" 1 | \n",
" grrrgGGrgrrrrrgGr | \n",
"
\n",
" \n",
" 9 | \n",
" 122 | \n",
" 3g_4g | \n",
" grrrgGGrgrrrrrgrr | \n",
" grrrgrrrgrrrrrgGr | \n",
" 17 | \n",
" grrrgGGrgrrrrrgGr | \n",
"
\n",
" \n",
" 10 | \n",
" 139 | \n",
" 3y_4g | \n",
" grrrgyyrgrrrrrgrr | \n",
" grrrgrrrgrrrrrgGr | \n",
" 4 | \n",
" grrrgyyrgrrrrrgGr | \n",
"
\n",
" \n",
" 11 | \n",
" 143 | \n",
" 4r_4g | \n",
" grrrgrrrgrrrrrgrr | \n",
" grrrgrrrgrrrrrgGr | \n",
" 1 | \n",
" grrrgrrrgrrrrrgGr | \n",
"
\n",
" \n",
" 12 | \n",
" 144 | \n",
" 4g_4g | \n",
" grrrgrrrgrrrrrgrG | \n",
" grrrgrrrgrrrrrgGr | \n",
" 32 | \n",
" grrrgrrrgrrrrrgGG | \n",
"
\n",
" \n",
" 13 | \n",
" 176 | \n",
" 4y_4y | \n",
" grrrgrrrgrrrrrgry | \n",
" grrrgrrrgrrrrrgyr | \n",
" 4 | \n",
" grrrgrrrgrrrrrgyy | \n",
"
\n",
" \n",
" 14 | \n",
" 180 | \n",
" 1r_1r | \n",
" grrrgrrrgrrrrrgrr | \n",
" grrrgrrrgrrrrrgrr | \n",
" 1 | \n",
" grrrgrrrgrrrrrgrr | \n",
"
\n",
" \n",
" 15 | \n",
" 181 | \n",
" 1g_1g | \n",
" grrrgrrrgGGGGrgrr | \n",
" gGGrgrrrgrrrrrgrr | \n",
" 49 | \n",
" gGGrgrrrgGGGGrgrr | \n",
"
\n",
" \n",
" 16 | \n",
" 230 | \n",
" 1y_1y | \n",
" grrrgrrrgyyyyrgrr | \n",
" gyyrgrrrgrrrrrgrr | \n",
" 4 | \n",
" gyyrgrrrgyyyyrgrr | \n",
"
\n",
" \n",
" 17 | \n",
" 234 | \n",
" 2r_2r | \n",
" grrrgrrrgrrrrrgrr | \n",
" grrrgrrrgrrrrrgrr | \n",
" 1 | \n",
" grrrgrrrgrrrrrgrr | \n",
"
\n",
" \n",
" 18 | \n",
" 235 | \n",
" 2g_2g | \n",
" grrGgrrrgrrrrrgrr | \n",
" grrrgrrrgrrrrGgrr | \n",
" 52 | \n",
" grrGgrrrgrrrrGgrr | \n",
"
\n",
" \n",
" 19 | \n",
" 287 | \n",
" 2y_2y | \n",
" grrygrrrgrrrrrgrr | \n",
" grrrgrrrgrrrrygrr | \n",
" 4 | \n",
" grrygrrrgrrrrygrr | \n",
"
\n",
" \n",
" 20 | \n",
" 291 | \n",
" 3r_3r | \n",
" grrrgGGrgrrrrrgrr | \n",
" grrrgrrrgrrrrrgrr | \n",
" 1 | \n",
" grrrgGGrgrrrrrgrr | \n",
"
\n",
" \n",
" 21 | \n",
" 292 | \n",
" 3g_3g | \n",
" grrrgGGrgrrrrrgrr | \n",
" grrrgrrGgrrrrrgrr | \n",
" 37 | \n",
" grrrgGGGgrrrrrgrr | \n",
"
\n",
" \n",
" 22 | \n",
" 329 | \n",
" 3g_3y | \n",
" grrrgGGrgrrrrrgrr | \n",
" grrrgrrygrrrrrgrr | \n",
" 4 | \n",
" grrrgGGygrrrrrgrr | \n",
"
\n",
" \n",
" 23 | \n",
" 333 | \n",
" 3g_4r | \n",
" grrrgGGrgrrrrrgrr | \n",
" grrrgrrrgrrrrrgGr | \n",
" 1 | \n",
" grrrgGGrgrrrrrgGr | \n",
"
\n",
" \n",
" 24 | \n",
" 334 | \n",
" 3g_4g | \n",
" grrrgGGrgrrrrrgrr | \n",
" grrrgrrrgrrrrrgGr | \n",
" 23 | \n",
" grrrgGGrgrrrrrgGr | \n",
"
\n",
" \n",
" 25 | \n",
" 357 | \n",
" 3y_4g | \n",
" grrrgyyrgrrrrrgrr | \n",
" grrrgrrrgrrrrrgGr | \n",
" 4 | \n",
" grrrgyyrgrrrrrgGr | \n",
"
\n",
" \n",
" 26 | \n",
" 361 | \n",
" 4r_4g | \n",
" grrrgrrrgrrrrrgrr | \n",
" grrrgrrrgrrrrrgGr | \n",
" 1 | \n",
" grrrgrrrgrrrrrgGr | \n",
"
\n",
" \n",
" 27 | \n",
" 362 | \n",
" 4g_4g | \n",
" grrrgrrrgrrrrrgrG | \n",
" grrrgrrrgrrrrrgGr | \n",
" 42 | \n",
" grrrgrrrgrrrrrgGG | \n",
"
\n",
" \n",
" 28 | \n",
" 404 | \n",
" 4y_4y | \n",
" grrrgrrrgrrrrrgry | \n",
" grrrgrrrgrrrrrgyr | \n",
" 4 | \n",
" grrrgrrrgrrrrrgyy | \n",
"
\n",
" \n",
" 29 | \n",
" 408 | \n",
" 1r_1r | \n",
" grrrgrrrgrrrrrgrr | \n",
" grrrgrrrgrrrrrgrr | \n",
" 1 | \n",
" grrrgrrrgrrrrrgrr | \n",
"
\n",
" \n",
" 30 | \n",
" 409 | \n",
" 1g_1g | \n",
" grrrgrrrgGGGGrgrr | \n",
" gGGrgrrrgrrrrrgrr | \n",
" 38 | \n",
" gGGrgrrrgGGGGrgrr | \n",
"
\n",
" \n",
" 31 | \n",
" 447 | \n",
" 1y_1y | \n",
" grrrgrrrgyyyyrgrr | \n",
" gyyrgrrrgrrrrrgrr | \n",
" 4 | \n",
" gyyrgrrrgyyyyrgrr | \n",
"
\n",
" \n",
" 32 | \n",
" 451 | \n",
" 2r_2r | \n",
" grrrgrrrgrrrrrgrr | \n",
" grrrgrrrgrrrrrgrr | \n",
" 1 | \n",
" grrrgrrrgrrrrrgrr | \n",
"
\n",
" \n",
" 33 | \n",
" 452 | \n",
" 2g_2g | \n",
" grrGgrrrgrrrrrgrr | \n",
" grrrgrrrgrrrrGgrr | \n",
" 40 | \n",
" grrGgrrrgrrrrGgrr | \n",
"
\n",
" \n",
" 34 | \n",
" 492 | \n",
" 2y_2y | \n",
" grrygrrrgrrrrrgrr | \n",
" grrrgrrrgrrrrygrr | \n",
" 4 | \n",
" grrygrrrgrrrrygrr | \n",
"
\n",
" \n",
" 35 | \n",
" 496 | \n",
" 3r_3r | \n",
" grrrgGGrgrrrrrgrr | \n",
" grrrgrrrgrrrrrgrr | \n",
" 1 | \n",
" grrrgGGrgrrrrrgrr | \n",
"
\n",
" \n",
" 36 | \n",
" 497 | \n",
" 3g_3g | \n",
" grrrgGGrgrrrrrgrr | \n",
" grrrgrrGgrrrrrgrr | \n",
" 28 | \n",
" grrrgGGGgrrrrrgrr | \n",
"
\n",
" \n",
" 37 | \n",
" 525 | \n",
" 3g_3y | \n",
" grrrgGGrgrrrrrgrr | \n",
" grrrgrrygrrrrrgrr | \n",
" 22 | \n",
" grrrgGGygrrrrrgrr | \n",
"
\n",
" \n",
"
\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",
" start_time | \n",
" phas_A | \n",
" state_A | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 0 | \n",
" 1g | \n",
" grrrgrrrgGGGGrgrr | \n",
"
\n",
" \n",
" 1 | \n",
" 39 | \n",
" 1y | \n",
" grrrgrrrgyyyyrgrr | \n",
"
\n",
" \n",
" 2 | \n",
" 43 | \n",
" 2r | \n",
" grrrgrrrgrrrrrgrr | \n",
"
\n",
" \n",
" 3 | \n",
" 44 | \n",
" 2g | \n",
" grrGgrrrgrrrrrgrr | \n",
"
\n",
" \n",
" 4 | \n",
" 84 | \n",
" 2y | \n",
" grrygrrrgrrrrrgrr | \n",
"
\n",
" \n",
" 5 | \n",
" 88 | \n",
" 3r | \n",
" grrrgGGrgrrrrrgrr | \n",
"
\n",
" \n",
" 6 | \n",
" 89 | \n",
" 3g | \n",
" grrrgGGrgrrrrrgrr | \n",
"
\n",
" \n",
" 7 | \n",
" 139 | \n",
" 3y | \n",
" grrrgyyrgrrrrrgrr | \n",
"
\n",
" \n",
" 8 | \n",
" 143 | \n",
" 4r | \n",
" grrrgrrrgrrrrrgrr | \n",
"
\n",
" \n",
" 9 | \n",
" 144 | \n",
" 4g | \n",
" grrrgrrrgrrrrrgrG | \n",
"
\n",
" \n",
" 10 | \n",
" 176 | \n",
" 4y | \n",
" grrrgrrrgrrrrrgry | \n",
"
\n",
" \n",
" 11 | \n",
" 180 | \n",
" 1r | \n",
" grrrgrrrgrrrrrgrr | \n",
"
\n",
" \n",
" 12 | \n",
" 181 | \n",
" 1g | \n",
" grrrgrrrgGGGGrgrr | \n",
"
\n",
" \n",
" 13 | \n",
" 230 | \n",
" 1y | \n",
" grrrgrrrgyyyyrgrr | \n",
"
\n",
" \n",
" 14 | \n",
" 234 | \n",
" 2r | \n",
" grrrgrrrgrrrrrgrr | \n",
"
\n",
" \n",
" 15 | \n",
" 235 | \n",
" 2g | \n",
" grrGgrrrgrrrrrgrr | \n",
"
\n",
" \n",
" 16 | \n",
" 287 | \n",
" 2y | \n",
" grrygrrrgrrrrrgrr | \n",
"
\n",
" \n",
" 17 | \n",
" 291 | \n",
" 3r | \n",
" grrrgGGrgrrrrrgrr | \n",
"
\n",
" \n",
" 18 | \n",
" 292 | \n",
" 3g | \n",
" grrrgGGrgrrrrrgrr | \n",
"
\n",
" \n",
" 19 | \n",
" 357 | \n",
" 3y | \n",
" grrrgyyrgrrrrrgrr | \n",
"
\n",
" \n",
" 20 | \n",
" 361 | \n",
" 4r | \n",
" grrrgrrrgrrrrrgrr | \n",
"
\n",
" \n",
" 21 | \n",
" 362 | \n",
" 4g | \n",
" grrrgrrrgrrrrrgrG | \n",
"
\n",
" \n",
" 22 | \n",
" 404 | \n",
" 4y | \n",
" grrrgrrrgrrrrrgry | \n",
"
\n",
" \n",
" 23 | \n",
" 408 | \n",
" 1r | \n",
" grrrgrrrgrrrrrgrr | \n",
"
\n",
" \n",
" 24 | \n",
" 409 | \n",
" 1g | \n",
" grrrgrrrgGGGGrgrr | \n",
"
\n",
" \n",
" 25 | \n",
" 447 | \n",
" 1y | \n",
" grrrgrrrgyyyyrgrr | \n",
"
\n",
" \n",
" 26 | \n",
" 451 | \n",
" 2r | \n",
" grrrgrrrgrrrrrgrr | \n",
"
\n",
" \n",
" 27 | \n",
" 452 | \n",
" 2g | \n",
" grrGgrrrgrrrrrgrr | \n",
"
\n",
" \n",
" 28 | \n",
" 492 | \n",
" 2y | \n",
" grrygrrrgrrrrrgrr | \n",
"
\n",
" \n",
" 29 | \n",
" 496 | \n",
" 3r | \n",
" grrrgGGrgrrrrrgrr | \n",
"
\n",
" \n",
" 30 | \n",
" 497 | \n",
" 3g | \n",
" grrrgGGrgrrrrrgrr | \n",
"
\n",
" \n",
" 31 | \n",
" 547 | \n",
" 3y | \n",
" grrrgyyrgrrrrrgrr | \n",
"
\n",
" \n",
"
\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",
" start_time | \n",
" phas_A | \n",
" state_A | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 0 | \n",
" 1g | \n",
" grrrgrrrgGGGGrgrr | \n",
"
\n",
" \n",
" 1 | \n",
" 39 | \n",
" 1y | \n",
" grrrgrrrgyyyyrgrr | \n",
"
\n",
" \n",
" 0 | \n",
" 43 | \n",
" 2r | \n",
" grrrgrrrgrrrrrgrr | \n",
"
\n",
" \n",
" 1 | \n",
" 44 | \n",
" 2g | \n",
" grrGgrrrgrrrrrgrr | \n",
"
\n",
" \n",
" 2 | \n",
" 84 | \n",
" 2y | \n",
" grrygrrrgrrrrrgrr | \n",
"
\n",
" \n",
"
\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",
" phas_A | \n",
" duration | \n",
" state_A | \n",
" red_A | \n",
" yellow_A | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 1 | \n",
" 43 | \n",
" grrrgrrrgGGGGrgrr | \n",
" 1 | \n",
" 4 | \n",
"
\n",
" \n",
" 1 | \n",
" 2 | \n",
" 45 | \n",
" grrGgrrrgrrrrrgrr | \n",
" 1 | \n",
" 4 | \n",
"
\n",
" \n",
" 2 | \n",
" 3 | \n",
" 33 | \n",
" grrrgGGrgrrrrrgrr | \n",
" 1 | \n",
" 4 | \n",
"
\n",
" \n",
" 3 | \n",
" 3 | \n",
" 22 | \n",
" grrrgGGrgrrrrrgrr | \n",
" 1 | \n",
" 4 | \n",
"
\n",
" \n",
" 4 | \n",
" 4 | \n",
" 37 | \n",
" grrrgrrrgrrrrrgrG | \n",
" 1 | \n",
" 4 | \n",
"
\n",
" \n",
" 5 | \n",
" 1 | \n",
" 54 | \n",
" grrrgrrrgGGGGrgrr | \n",
" 1 | \n",
" 4 | \n",
"
\n",
" \n",
" 6 | \n",
" 2 | \n",
" 57 | \n",
" grrGgrrrgrrrrrgrr | \n",
" 1 | \n",
" 4 | \n",
"
\n",
" \n",
" 7 | \n",
" 3 | \n",
" 42 | \n",
" grrrgGGrgrrrrrgrr | \n",
" 1 | \n",
" 4 | \n",
"
\n",
" \n",
" 8 | \n",
" 3 | \n",
" 28 | \n",
" grrrgGGrgrrrrrgrr | \n",
" 1 | \n",
" 4 | \n",
"
\n",
" \n",
" 9 | \n",
" 4 | \n",
" 47 | \n",
" grrrgrrrgrrrrrgrG | \n",
" 1 | \n",
" 4 | \n",
"
\n",
" \n",
" 10 | \n",
" 1 | \n",
" 43 | \n",
" grrrgrrrgGGGGrgrr | \n",
" 1 | \n",
" 4 | \n",
"
\n",
" \n",
" 11 | \n",
" 2 | \n",
" 45 | \n",
" grrGgrrrgrrrrrgrr | \n",
" 1 | \n",
" 4 | \n",
"
\n",
" \n",
" 12 | \n",
" 3 | \n",
" 33 | \n",
" grrrgGGrgrrrrrgrr | \n",
" 1 | \n",
" 4 | \n",
"
\n",
" \n",
" 13 | \n",
" 3 | \n",
" 22 | \n",
" grrrgGGrgrrrrrgrr | \n",
" 1 | \n",
" 4 | \n",
"
\n",
" \n",
" 14 | \n",
" 4 | \n",
" 37 | \n",
" grrrgrrrgrrrrrgrG | \n",
" 1 | \n",
" 4 | \n",
"
\n",
" \n",
"
\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",
" phas_A | \n",
" state_A | \n",
" start_time | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 1g | \n",
" grrrgrrrgGGGGrgrr | \n",
" 0 | \n",
"
\n",
" \n",
"
\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",
" Unnamed: 0 | \n",
" inter_no | \n",
" phas_A | \n",
" phas_B | \n",
" move_A | \n",
" move_B | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 0 | \n",
" 175 | \n",
" 1 | \n",
" 1 | \n",
" 8 | \n",
" 4 | \n",
"
\n",
" \n",
" 1 | \n",
" 1 | \n",
" 175 | \n",
" 2 | \n",
" 2 | \n",
" 7 | \n",
" 3 | \n",
"
\n",
" \n",
" 2 | \n",
" 2 | \n",
" 175 | \n",
" 3 | \n",
" 3 | \n",
" 6 | \n",
" 1 | \n",
"
\n",
" \n",
" 3 | \n",
" 3 | \n",
" 175 | \n",
" 3 | \n",
" 4 | \n",
" 6 | \n",
" 2 | \n",
"
\n",
" \n",
" 4 | \n",
" 4 | \n",
" 175 | \n",
" 4 | \n",
" 4 | \n",
" 5 | \n",
" 2 | \n",
"
\n",
" \n",
"
\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",
" Unnamed: 0 | \n",
" inter_no | \n",
" node_id | \n",
" phase_no | \n",
" ring_type | \n",
" move_no | \n",
" state | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 0 | \n",
" 175 | \n",
" i0 | \n",
" 1 | \n",
" A | \n",
" 8 | \n",
" grrrgrrrgGGGGrgrr | \n",
"
\n",
" \n",
" 1 | \n",
" 1 | \n",
" 175 | \n",
" i0 | \n",
" 1 | \n",
" B | \n",
" 4 | \n",
" gGGrgrrrgrrrrrgrr | \n",
"
\n",
" \n",
" 2 | \n",
" 2 | \n",
" 175 | \n",
" i0 | \n",
" 2 | \n",
" A | \n",
" 7 | \n",
" grrGgrrrgrrrrrgrr | \n",
"
\n",
" \n",
" 3 | \n",
" 3 | \n",
" 175 | \n",
" i0 | \n",
" 2 | \n",
" B | \n",
" 3 | \n",
" grrrgrrrgrrrrGgrr | \n",
"
\n",
" \n",
" 4 | \n",
" 4 | \n",
" 175 | \n",
" i0 | \n",
" 3 | \n",
" A | \n",
" 6 | \n",
" grrrgGGrgrrrrrgrr | \n",
"
\n",
" \n",
" 5 | \n",
" 5 | \n",
" 175 | \n",
" i0 | \n",
" 3 | \n",
" B | \n",
" 1 | \n",
" grrrgrrGgrrrrrgrr | \n",
"
\n",
" \n",
" 6 | \n",
" 6 | \n",
" 175 | \n",
" i0 | \n",
" 4 | \n",
" A | \n",
" 5 | \n",
" grrrgrrrgrrrrrgrG | \n",
"
\n",
" \n",
" 7 | \n",
" 7 | \n",
" 175 | \n",
" i0 | \n",
" 4 | \n",
" B | \n",
" 2 | \n",
" grrrgrrrgrrrrrgGr | \n",
"
\n",
" \n",
"
\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",
" Unnamed: 0 | \n",
" dura_A1 | \n",
" dura_A2 | \n",
" dura_A3 | \n",
" dura_A4 | \n",
" dura_A5 | \n",
" dura_A6 | \n",
" dura_A7 | \n",
" dura_A8 | \n",
" dura_B1 | \n",
" ... | \n",
" red_B4 | \n",
" red_A5 | \n",
" red_B5 | \n",
" red_A6 | \n",
" red_B6 | \n",
" red_A7 | \n",
" red_B7 | \n",
" red_A8 | \n",
" red_B8 | \n",
" inter_no | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 2 | \n",
" 43 | \n",
" 45 | \n",
" 55 | \n",
" 37 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 43 | \n",
" ... | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 175 | \n",
"
\n",
" \n",
"
\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",
" Unnamed: 0 | \n",
" inter_no | \n",
" start_hour | \n",
" start_minute | \n",
" dura_A1 | \n",
" dura_A2 | \n",
" dura_A3 | \n",
" dura_A4 | \n",
" dura_A5 | \n",
" dura_A6 | \n",
" ... | \n",
" red_A4 | \n",
" red_B4 | \n",
" red_A5 | \n",
" red_B5 | \n",
" red_A6 | \n",
" red_B6 | \n",
" red_A7 | \n",
" red_B7 | \n",
" red_A8 | \n",
" red_B8 | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 0 | \n",
" 175 | \n",
" 0 | \n",
" 0 | \n",
" 37 | \n",
" 39 | \n",
" 55 | \n",
" 29 | \n",
" 0 | \n",
" 0 | \n",
" ... | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
"
\n",
" \n",
" 1 | \n",
" 1 | \n",
" 175 | \n",
" 7 | \n",
" 0 | \n",
" 40 | \n",
" 42 | \n",
" 55 | \n",
" 33 | \n",
" 0 | \n",
" 0 | \n",
" ... | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
"
\n",
" \n",
" 2 | \n",
" 2 | \n",
" 175 | \n",
" 9 | \n",
" 0 | \n",
" 43 | \n",
" 45 | \n",
" 55 | \n",
" 37 | \n",
" 0 | \n",
" 0 | \n",
" ... | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
"
\n",
" \n",
" 3 | \n",
" 3 | \n",
" 175 | \n",
" 18 | \n",
" 30 | \n",
" 46 | \n",
" 48 | \n",
" 55 | \n",
" 41 | \n",
" 0 | \n",
" 0 | \n",
" ... | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
"
\n",
" \n",
"
\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",
" inter_no | \n",
" node_id | \n",
" start_unix | \n",
" phas_A | \n",
" phas_B | \n",
" move_A | \n",
" move_B | \n",
" duration | \n",
" state | \n",
" phase_sumo | \n",
"
\n",
" \n",
" \n",
" \n",
" 16 | \n",
" 175 | \n",
" i0 | \n",
" 1704416358 | \n",
" 1 | \n",
" 1 | \n",
" 8 | \n",
" 4 | \n",
" 43 | \n",
" gGGrgrrrgGGGGrgrr | \n",
" 0 | \n",
"
\n",
" \n",
" 17 | \n",
" 175 | \n",
" i0 | \n",
" 1704416358 | \n",
" 2 | \n",
" 2 | \n",
" 7 | \n",
" 3 | \n",
" 45 | \n",
" grrGgrrrgrrrrGgrr | \n",
" 1 | \n",
"
\n",
" \n",
" 18 | \n",
" 175 | \n",
" i0 | \n",
" 1704416358 | \n",
" 3 | \n",
" 3 | \n",
" 6 | \n",
" 1 | \n",
" 33 | \n",
" grrrgGGGgrrrrrgrr | \n",
" 2 | \n",
"
\n",
" \n",
" 19 | \n",
" 175 | \n",
" i0 | \n",
" 1704416358 | \n",
" 3 | \n",
" 4 | \n",
" 6 | \n",
" 2 | \n",
" 22 | \n",
" grrrgGGrgrrrrrgGr | \n",
" 3 | \n",
"
\n",
" \n",
" 20 | \n",
" 175 | \n",
" i0 | \n",
" 1704416358 | \n",
" 4 | \n",
" 4 | \n",
" 5 | \n",
" 2 | \n",
" 37 | \n",
" grrrgrrrgrrrrrgGG | \n",
" 4 | \n",
"
\n",
" \n",
" 21 | \n",
" 175 | \n",
" i0 | \n",
" 1704416538 | \n",
" 1 | \n",
" 1 | \n",
" 8 | \n",
" 4 | \n",
" 43 | \n",
" gGGrgrrrgGGGGrgrr | \n",
" 0 | \n",
"
\n",
" \n",
" 22 | \n",
" 175 | \n",
" i0 | \n",
" 1704416538 | \n",
" 2 | \n",
" 2 | \n",
" 7 | \n",
" 3 | \n",
" 45 | \n",
" grrGgrrrgrrrrGgrr | \n",
" 1 | \n",
"
\n",
" \n",
" 23 | \n",
" 175 | \n",
" i0 | \n",
" 1704416538 | \n",
" 3 | \n",
" 3 | \n",
" 6 | \n",
" 1 | \n",
" 33 | \n",
" grrrgGGGgrrrrrgrr | \n",
" 2 | \n",
"
\n",
" \n",
" 24 | \n",
" 175 | \n",
" i0 | \n",
" 1704416538 | \n",
" 3 | \n",
" 4 | \n",
" 6 | \n",
" 2 | \n",
" 22 | \n",
" grrrgGGrgrrrrrgGr | \n",
" 3 | \n",
"
\n",
" \n",
" 25 | \n",
" 175 | \n",
" i0 | \n",
" 1704416538 | \n",
" 4 | \n",
" 4 | \n",
" 5 | \n",
" 2 | \n",
" 37 | \n",
" grrrgrrrgrrrrrgGG | \n",
" 4 | \n",
"
\n",
" \n",
" 26 | \n",
" 175 | \n",
" i0 | \n",
" 1704416718 | \n",
" 1 | \n",
" 1 | \n",
" 8 | \n",
" 4 | \n",
" 43 | \n",
" gGGrgrrrgGGGGrgrr | \n",
" 0 | \n",
"
\n",
" \n",
" 27 | \n",
" 175 | \n",
" i0 | \n",
" 1704416718 | \n",
" 2 | \n",
" 2 | \n",
" 7 | \n",
" 3 | \n",
" 45 | \n",
" grrGgrrrgrrrrGgrr | \n",
" 1 | \n",
"
\n",
" \n",
" 28 | \n",
" 175 | \n",
" i0 | \n",
" 1704416718 | \n",
" 3 | \n",
" 3 | \n",
" 6 | \n",
" 1 | \n",
" 33 | \n",
" grrrgGGGgrrrrrgrr | \n",
" 2 | \n",
"
\n",
" \n",
" 29 | \n",
" 175 | \n",
" i0 | \n",
" 1704416718 | \n",
" 3 | \n",
" 4 | \n",
" 6 | \n",
" 2 | \n",
" 22 | \n",
" grrrgGGrgrrrrrgGr | \n",
" 3 | \n",
"
\n",
" \n",
" 30 | \n",
" 175 | \n",
" i0 | \n",
" 1704416718 | \n",
" 4 | \n",
" 4 | \n",
" 5 | \n",
" 2 | \n",
" 37 | \n",
" grrrgrrrgrrrrrgGG | \n",
" 4 | \n",
"
\n",
" \n",
"
\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
}