신호생성 repo (24. 1. 5 ~).
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

7469 lines
242 KiB

{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import os\n",
"os.listdir('../../scripts')\n",
"import sys\n",
"sys.path.append('../../Scripts')"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"from generate_signals import SignalGenerator"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"from preprocess_daily import DailyPreprocessor"
]
},
{
"cell_type": "code",
"execution_count": 4,
"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": 5,
"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": 5,
"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": 6,
"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>1944</th>\n",
" <td>175</td>\n",
" <td>1704417260</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>1953</th>\n",
" <td>175</td>\n",
" <td>1704417440</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>1959</th>\n",
" <td>175</td>\n",
" <td>1704417620</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>1969</th>\n",
" <td>175</td>\n",
" <td>1704417800</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>1976</th>\n",
" <td>175</td>\n",
" <td>1704417980</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>1986</th>\n",
" <td>175</td>\n",
" <td>1704418160</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>1993</th>\n",
" <td>175</td>\n",
" <td>1704418340</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>2001</th>\n",
" <td>175</td>\n",
" <td>1704418520</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>2011</th>\n",
" <td>175</td>\n",
" <td>1704418699</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>2018</th>\n",
" <td>175</td>\n",
" <td>1704418880</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>1704419520</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",
"1944 175 1704417260 43 45 55 37 0 \n",
"1953 175 1704417440 43 45 55 37 0 \n",
"1959 175 1704417620 43 45 55 37 0 \n",
"1969 175 1704417800 43 45 55 37 0 \n",
"1976 175 1704417980 43 45 55 37 0 \n",
"1986 175 1704418160 43 45 55 37 0 \n",
"1993 175 1704418340 43 45 55 37 0 \n",
"2001 175 1704418520 43 45 55 37 0 \n",
"2011 175 1704418699 43 45 55 37 0 \n",
"2018 175 1704418880 43 45 55 37 0 \n",
"0 175 1704419520 43 45 55 37 0 \n",
"\n",
" dura_A6 dura_A7 dura_A8 dura_B1 dura_B2 dura_B3 dura_B4 dura_B5 \\\n",
"1944 0 0 0 43 45 33 59 0 \n",
"1953 0 0 0 43 45 33 59 0 \n",
"1959 0 0 0 43 45 33 59 0 \n",
"1969 0 0 0 43 45 33 59 0 \n",
"1976 0 0 0 43 45 33 59 0 \n",
"1986 0 0 0 43 45 33 59 0 \n",
"1993 0 0 0 43 45 33 59 0 \n",
"2001 0 0 0 43 45 33 59 0 \n",
"2011 0 0 0 43 45 33 59 0 \n",
"2018 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",
"1944 0 0 0 180 \n",
"1953 0 0 0 180 \n",
"1959 0 0 0 180 \n",
"1969 0 0 0 180 \n",
"1976 0 0 0 180 \n",
"1986 0 0 0 180 \n",
"1993 0 0 0 180 \n",
"2001 0 0 0 180 \n",
"2011 0 0 0 180 \n",
"2018 0 0 0 180 \n",
"0 0 0 0 180 "
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"self.rhistory.query('inter_no==@inter_no') # 2-1 현재시점 기준 30분 전부터의 이력"
]
},
{
"cell_type": "code",
"execution_count": 7,
"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>1704418340</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>1704418520</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>1704418699</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>1704418880</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>10</th>\n",
" <td>175</td>\n",
" <td>1704419060</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>1704419240</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>1704419420</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>1704419520</td>\n",
" <td>24</td>\n",
" <td>25</td>\n",
" <td>31</td>\n",
" <td>20</td>\n",
" <td>24</td>\n",
" <td>25</td>\n",
" <td>18</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 1704418340 43 45 55 37 43 \n",
"7 175 1704418520 43 45 55 37 43 \n",
"8 175 1704418699 43 45 55 37 43 \n",
"9 175 1704418880 43 45 55 37 43 \n",
"10 175 1704419060 43 45 55 37 43 \n",
"11 175 1704419240 43 45 55 37 43 \n",
"12 175 1704419420 43 45 55 37 43 \n",
"13 175 1704419520 24 25 31 20 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 45 33 59 ... 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 25 18 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": 7,
"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": 8,
"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>209</th>\n",
" <td>175</td>\n",
" <td>1704418340</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>43</td>\n",
" </tr>\n",
" <tr>\n",
" <th>210</th>\n",
" <td>175</td>\n",
" <td>1704418340</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>45</td>\n",
" </tr>\n",
" <tr>\n",
" <th>211</th>\n",
" <td>175</td>\n",
" <td>1704418340</td>\n",
" <td>3</td>\n",
" <td>3</td>\n",
" <td>33</td>\n",
" </tr>\n",
" <tr>\n",
" <th>212</th>\n",
" <td>175</td>\n",
" <td>1704418340</td>\n",
" <td>3</td>\n",
" <td>4</td>\n",
" <td>22</td>\n",
" </tr>\n",
" <tr>\n",
" <th>213</th>\n",
" <td>175</td>\n",
" <td>1704418340</td>\n",
" <td>4</td>\n",
" <td>4</td>\n",
" <td>37</td>\n",
" </tr>\n",
" <tr>\n",
" <th>214</th>\n",
" <td>175</td>\n",
" <td>1704418520</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>43</td>\n",
" </tr>\n",
" <tr>\n",
" <th>215</th>\n",
" <td>175</td>\n",
" <td>1704418520</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>45</td>\n",
" </tr>\n",
" <tr>\n",
" <th>216</th>\n",
" <td>175</td>\n",
" <td>1704418520</td>\n",
" <td>3</td>\n",
" <td>3</td>\n",
" <td>33</td>\n",
" </tr>\n",
" <tr>\n",
" <th>217</th>\n",
" <td>175</td>\n",
" <td>1704418520</td>\n",
" <td>3</td>\n",
" <td>4</td>\n",
" <td>22</td>\n",
" </tr>\n",
" <tr>\n",
" <th>218</th>\n",
" <td>175</td>\n",
" <td>1704418520</td>\n",
" <td>4</td>\n",
" <td>4</td>\n",
" <td>37</td>\n",
" </tr>\n",
" <tr>\n",
" <th>219</th>\n",
" <td>175</td>\n",
" <td>1704418699</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>43</td>\n",
" </tr>\n",
" <tr>\n",
" <th>220</th>\n",
" <td>175</td>\n",
" <td>1704418699</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>45</td>\n",
" </tr>\n",
" <tr>\n",
" <th>221</th>\n",
" <td>175</td>\n",
" <td>1704418699</td>\n",
" <td>3</td>\n",
" <td>3</td>\n",
" <td>33</td>\n",
" </tr>\n",
" <tr>\n",
" <th>222</th>\n",
" <td>175</td>\n",
" <td>1704418699</td>\n",
" <td>3</td>\n",
" <td>4</td>\n",
" <td>22</td>\n",
" </tr>\n",
" <tr>\n",
" <th>223</th>\n",
" <td>175</td>\n",
" <td>1704418699</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",
"209 175 1704418340 1 1 43\n",
"210 175 1704418340 2 2 45\n",
"211 175 1704418340 3 3 33\n",
"212 175 1704418340 3 4 22\n",
"213 175 1704418340 4 4 37\n",
"214 175 1704418520 1 1 43\n",
"215 175 1704418520 2 2 45\n",
"216 175 1704418520 3 3 33\n",
"217 175 1704418520 3 4 22\n",
"218 175 1704418520 4 4 37\n",
"219 175 1704418699 1 1 43\n",
"220 175 1704418699 2 2 45\n",
"221 175 1704418699 3 3 33\n",
"222 175 1704418699 3 4 22\n",
"223 175 1704418699 4 4 37"
]
},
"execution_count": 8,
"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": 9,
"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>205</th>\n",
" <td>175</td>\n",
" <td>1704418520</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>206</th>\n",
" <td>175</td>\n",
" <td>1704418520</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>207</th>\n",
" <td>175</td>\n",
" <td>1704418520</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>208</th>\n",
" <td>175</td>\n",
" <td>1704418520</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>209</th>\n",
" <td>175</td>\n",
" <td>1704418520</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>210</th>\n",
" <td>175</td>\n",
" <td>1704418699</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>211</th>\n",
" <td>175</td>\n",
" <td>1704418699</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>212</th>\n",
" <td>175</td>\n",
" <td>1704418699</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>213</th>\n",
" <td>175</td>\n",
" <td>1704418699</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>214</th>\n",
" <td>175</td>\n",
" <td>1704418699</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>215</th>\n",
" <td>175</td>\n",
" <td>1704418880</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>216</th>\n",
" <td>175</td>\n",
" <td>1704418880</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>217</th>\n",
" <td>175</td>\n",
" <td>1704418880</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>218</th>\n",
" <td>175</td>\n",
" <td>1704418880</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>219</th>\n",
" <td>175</td>\n",
" <td>1704418880</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",
"205 175 1704418520 1 1 8 4 43 i0 \n",
"206 175 1704418520 2 2 7 3 45 i0 \n",
"207 175 1704418520 3 3 6 1 33 i0 \n",
"208 175 1704418520 3 4 6 2 22 i0 \n",
"209 175 1704418520 4 4 5 2 37 i0 \n",
"210 175 1704418699 1 1 8 4 43 i0 \n",
"211 175 1704418699 2 2 7 3 45 i0 \n",
"212 175 1704418699 3 3 6 1 33 i0 \n",
"213 175 1704418699 3 4 6 2 22 i0 \n",
"214 175 1704418699 4 4 5 2 37 i0 \n",
"215 175 1704418880 1 1 8 4 43 i0 \n",
"216 175 1704418880 2 2 7 3 45 i0 \n",
"217 175 1704418880 3 3 6 1 33 i0 \n",
"218 175 1704418880 3 4 6 2 22 i0 \n",
"219 175 1704418880 4 4 5 2 37 i0 \n",
"\n",
" state \n",
"205 gGGrgrrrgGGGGrgrr \n",
"206 grrGgrrrgrrrrGgrr \n",
"207 grrrgGGGgrrrrrgrr \n",
"208 grrrgGGrgrrrrrgGr \n",
"209 grrrgrrrgrrrrrgGG \n",
"210 gGGrgrrrgGGGGrgrr \n",
"211 grrGgrrrgrrrrGgrr \n",
"212 grrrgGGGgrrrrrgrr \n",
"213 grrrgGGrgrrrrrgGr \n",
"214 grrrgrrrgrrrrrgGG \n",
"215 gGGrgrrrgGGGGrgrr \n",
"216 grrGgrrrgrrrrGgrr \n",
"217 grrrgGGGgrrrrrgrr \n",
"218 grrrgGGrgrrrrrgGr \n",
"219 grrrgrrrgrrrrrgGG "
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"self.histid.query('node_id==@Node_id')[:15] # 4-2 state 붙임"
]
},
{
"cell_type": "code",
"execution_count": 10,
"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>0</th>\n",
" <td>175</td>\n",
" <td>i0</td>\n",
" <td>1704418520</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>1</th>\n",
" <td>175</td>\n",
" <td>i0</td>\n",
" <td>1704418520</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>2</th>\n",
" <td>175</td>\n",
" <td>i0</td>\n",
" <td>1704418520</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>3</th>\n",
" <td>175</td>\n",
" <td>i0</td>\n",
" <td>1704418520</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>4</th>\n",
" <td>175</td>\n",
" <td>i0</td>\n",
" <td>1704418520</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>62</th>\n",
" <td>175</td>\n",
" <td>i0</td>\n",
" <td>1704418699</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>63</th>\n",
" <td>175</td>\n",
" <td>i0</td>\n",
" <td>1704418699</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>64</th>\n",
" <td>175</td>\n",
" <td>i0</td>\n",
" <td>1704418699</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>65</th>\n",
" <td>175</td>\n",
" <td>i0</td>\n",
" <td>1704418699</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>66</th>\n",
" <td>175</td>\n",
" <td>i0</td>\n",
" <td>1704418699</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>131</th>\n",
" <td>175</td>\n",
" <td>i0</td>\n",
" <td>1704418880</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>132</th>\n",
" <td>175</td>\n",
" <td>i0</td>\n",
" <td>1704418880</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>133</th>\n",
" <td>175</td>\n",
" <td>i0</td>\n",
" <td>1704418880</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>134</th>\n",
" <td>175</td>\n",
" <td>i0</td>\n",
" <td>1704418880</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>135</th>\n",
" <td>175</td>\n",
" <td>i0</td>\n",
" <td>1704418880</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",
"0 175 i0 1704418520 1 1 8 4 43 \n",
"1 175 i0 1704418520 2 2 7 3 45 \n",
"2 175 i0 1704418520 3 3 6 1 33 \n",
"3 175 i0 1704418520 3 4 6 2 22 \n",
"4 175 i0 1704418520 4 4 5 2 37 \n",
"62 175 i0 1704418699 1 1 8 4 43 \n",
"63 175 i0 1704418699 2 2 7 3 45 \n",
"64 175 i0 1704418699 3 3 6 1 33 \n",
"65 175 i0 1704418699 3 4 6 2 22 \n",
"66 175 i0 1704418699 4 4 5 2 37 \n",
"131 175 i0 1704418880 1 1 8 4 43 \n",
"132 175 i0 1704418880 2 2 7 3 45 \n",
"133 175 i0 1704418880 3 3 6 1 33 \n",
"134 175 i0 1704418880 3 4 6 2 22 \n",
"135 175 i0 1704418880 4 4 5 2 37 \n",
"\n",
" state \n",
"0 gGGrgrrrgGGGGrgrr \n",
"1 grrGgrrrgrrrrGgrr \n",
"2 grrrgGGGgrrrrrgrr \n",
"3 grrrgGGrgrrrrrgGr \n",
"4 grrrgrrrgrrrrrgGG \n",
"62 gGGrgrrrgGGGGrgrr \n",
"63 grrGgrrrgrrrrGgrr \n",
"64 grrrgGGGgrrrrrgrr \n",
"65 grrrgGGrgrrrrrgGr \n",
"66 grrrgrrrgrrrrrgGG \n",
"131 gGGrgrrrgGGGGrgrr \n",
"132 grrGgrrrgrrrrGgrr \n",
"133 grrrgGGGgrrrrrgrr \n",
"134 grrrgGGrgrrrrrgGr \n",
"135 grrrgrrrgrrrrrgGG "
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"self.histids.query('node_id==@Node_id')[:15] # 4-3 부교차로 정보 추가"
]
},
{
"cell_type": "code",
"execution_count": 11,
"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>1704418699</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>1704418699</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>1704418699</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>1704418699</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>1704418699</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>1704418880</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>1704418880</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>1704418880</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>1704418880</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>1704418880</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>1704419060</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>1704419060</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>1704419060</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>1704419060</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>1704419060</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 1704418699 1 1 8 4 43 \n",
"17 175 i0 1704418699 2 2 7 3 45 \n",
"18 175 i0 1704418699 3 3 6 1 33 \n",
"19 175 i0 1704418699 3 4 6 2 22 \n",
"20 175 i0 1704418699 4 4 5 2 37 \n",
"21 175 i0 1704418880 1 1 8 4 43 \n",
"22 175 i0 1704418880 2 2 7 3 45 \n",
"23 175 i0 1704418880 3 3 6 1 33 \n",
"24 175 i0 1704418880 3 4 6 2 22 \n",
"25 175 i0 1704418880 4 4 5 2 37 \n",
"26 175 i0 1704419060 1 1 8 4 43 \n",
"27 175 i0 1704419060 2 2 7 3 45 \n",
"28 175 i0 1704419060 3 3 6 1 33 \n",
"29 175 i0 1704419060 3 4 6 2 22 \n",
"30 175 i0 1704419060 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": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"######\n",
"self.sigtable.query('node_id==@Node_id')[:15] # 5-1 시작, 종료시점 설정"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [],
"source": [
"self.assign_red_yellow()"
]
},
{
"cell_type": "code",
"execution_count": 13,
"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>0</th>\n",
" <td>175</td>\n",
" <td>i0</td>\n",
" <td>1704418699</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>8</td>\n",
" <td>4</td>\n",
" <td>38</td>\n",
" <td>gGGrgrrrgGGGGrgrr</td>\n",
" <td>0_g</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>175</td>\n",
" <td>i0</td>\n",
" <td>1704418699</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>8</td>\n",
" <td>4</td>\n",
" <td>4</td>\n",
" <td>gyyrgrrrgyyyyrgrr</td>\n",
" <td>0_y</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>175</td>\n",
" <td>i0</td>\n",
" <td>1704418699</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>7</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>grrrgrrrgrrrrrgrr</td>\n",
" <td>1__r</td>\n",
" </tr>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>175</td>\n",
" <td>i0</td>\n",
" <td>1704418699</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>7</td>\n",
" <td>3</td>\n",
" <td>40</td>\n",
" <td>grrGgrrrgrrrrGgrr</td>\n",
" <td>1_g</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>175</td>\n",
" <td>i0</td>\n",
" <td>1704418699</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>7</td>\n",
" <td>3</td>\n",
" <td>4</td>\n",
" <td>grrygrrrgrrrrygrr</td>\n",
" <td>1_y</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>175</td>\n",
" <td>i0</td>\n",
" <td>1704418699</td>\n",
" <td>3</td>\n",
" <td>3</td>\n",
" <td>6</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>grrrgrrrgrrrrrgrr</td>\n",
" <td>2__r</td>\n",
" </tr>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>175</td>\n",
" <td>i0</td>\n",
" <td>1704418699</td>\n",
" <td>3</td>\n",
" <td>3</td>\n",
" <td>6</td>\n",
" <td>1</td>\n",
" <td>28</td>\n",
" <td>grrrgGGGgrrrrrgrr</td>\n",
" <td>2_g</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>175</td>\n",
" <td>i0</td>\n",
" <td>1704418699</td>\n",
" <td>3</td>\n",
" <td>3</td>\n",
" <td>6</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>grrrgGGygrrrrrgrr</td>\n",
" <td>2_y</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>175</td>\n",
" <td>i0</td>\n",
" <td>1704418699</td>\n",
" <td>3</td>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>grrrgGGrgrrrrrgrr</td>\n",
" <td>3__r</td>\n",
" </tr>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>175</td>\n",
" <td>i0</td>\n",
" <td>1704418699</td>\n",
" <td>3</td>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>2</td>\n",
" <td>17</td>\n",
" <td>grrrgGGrgrrrrrgGr</td>\n",
" <td>3_g</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>175</td>\n",
" <td>i0</td>\n",
" <td>1704418699</td>\n",
" <td>3</td>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>grrrgyyrgrrrrrgGr</td>\n",
" <td>3_y</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>175</td>\n",
" <td>i0</td>\n",
" <td>1704418699</td>\n",
" <td>4</td>\n",
" <td>4</td>\n",
" <td>5</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>grrrgrrrgrrrrrgGr</td>\n",
" <td>4__r</td>\n",
" </tr>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>175</td>\n",
" <td>i0</td>\n",
" <td>1704418699</td>\n",
" <td>4</td>\n",
" <td>4</td>\n",
" <td>5</td>\n",
" <td>2</td>\n",
" <td>32</td>\n",
" <td>grrrgrrrgrrrrrgGG</td>\n",
" <td>4_g</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>175</td>\n",
" <td>i0</td>\n",
" <td>1704418699</td>\n",
" <td>4</td>\n",
" <td>4</td>\n",
" <td>5</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>grrrgrrrgrrrrrgyy</td>\n",
" <td>4_y</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>175</td>\n",
" <td>i0</td>\n",
" <td>1704418880</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>8</td>\n",
" <td>4</td>\n",
" <td>1</td>\n",
" <td>grrrgrrrgrrrrrgrr</td>\n",
" <td>0__r</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",
"0 175 i0 1704418699 1 1 8 4 38 \n",
"1 175 i0 1704418699 1 1 8 4 4 \n",
"2 175 i0 1704418699 2 2 7 3 1 \n",
"0 175 i0 1704418699 2 2 7 3 40 \n",
"1 175 i0 1704418699 2 2 7 3 4 \n",
"2 175 i0 1704418699 3 3 6 1 1 \n",
"0 175 i0 1704418699 3 3 6 1 28 \n",
"1 175 i0 1704418699 3 3 6 1 4 \n",
"2 175 i0 1704418699 3 4 6 2 1 \n",
"0 175 i0 1704418699 3 4 6 2 17 \n",
"1 175 i0 1704418699 3 4 6 2 4 \n",
"2 175 i0 1704418699 4 4 5 2 1 \n",
"0 175 i0 1704418699 4 4 5 2 32 \n",
"1 175 i0 1704418699 4 4 5 2 4 \n",
"2 175 i0 1704418880 1 1 8 4 1 \n",
"\n",
" state phase_sumo \n",
"0 gGGrgrrrgGGGGrgrr 0_g \n",
"1 gyyrgrrrgyyyyrgrr 0_y \n",
"2 grrrgrrrgrrrrrgrr 1__r \n",
"0 grrGgrrrgrrrrGgrr 1_g \n",
"1 grrygrrrgrrrrygrr 1_y \n",
"2 grrrgrrrgrrrrrgrr 2__r \n",
"0 grrrgGGGgrrrrrgrr 2_g \n",
"1 grrrgGGygrrrrrgrr 2_y \n",
"2 grrrgGGrgrrrrrgrr 3__r \n",
"0 grrrgGGrgrrrrrgGr 3_g \n",
"1 grrrgyyrgrrrrrgGr 3_y \n",
"2 grrrgrrrgrrrrrgGr 4__r \n",
"0 grrrgrrrgrrrrrgGG 4_g \n",
"1 grrrgrrrgrrrrrgyy 4_y \n",
"2 grrrgrrrgrrrrrgrr 0__r "
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"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
}