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