diff --git a/Documents/신호생성 정리(240712).pptx b/Documents/신호생성 정리(240712).pptx
index 5a56146c4..e49756f91 100644
Binary files a/Documents/신호생성 정리(240712).pptx and b/Documents/신호생성 정리(240712).pptx differ
diff --git a/Scripts/__pycache__/generate_signals.cpython-38.pyc b/Scripts/__pycache__/generate_signals.cpython-38.pyc
index 209dc4980..cee8600f2 100644
Binary files a/Scripts/__pycache__/generate_signals.cpython-38.pyc and b/Scripts/__pycache__/generate_signals.cpython-38.pyc differ
diff --git a/Scripts/__pycache__/preprocess_daily.cpython-38.pyc b/Scripts/__pycache__/preprocess_daily.cpython-38.pyc
index e5d3aa7bf..3cbdc68a1 100644
Binary files a/Scripts/__pycache__/preprocess_daily.cpython-38.pyc and b/Scripts/__pycache__/preprocess_daily.cpython-38.pyc differ
diff --git a/Scripts/generate_signals.py b/Scripts/generate_signals.py
index b723c4120..cd9603705 100644
--- a/Scripts/generate_signals.py
+++ b/Scripts/generate_signals.py
@@ -461,7 +461,6 @@ class SignalGenerator():
# 2. 이력 테이블 조회해서 교차로별로 유닉스시간 최대인 데이터(교차로번호, 종료유닉스타임)만 수집 : B
recent_histories = [group.iloc[-1:] for _, group in self.history[self.history['end_unix'] < fsec].groupby('inter_no')] # 교차로별로 유닉스시간이 최대인 행들
- # print([group for _, group in self.history[self.history['end_unix'] < fsec].groupby('inter_no')])
if not recent_histories:
rhistory = pd.DataFrame({'inter_no':[], 'end_unix':[]}) # recent history
else:
diff --git a/analysis/0712_revise_code/0717_revise_code.ipynb b/analysis/0712_revise_code/0717_revise_code.ipynb
index 6e6e52833..c39f9ab2b 100644
--- a/analysis/0712_revise_code/0717_revise_code.ipynb
+++ b/analysis/0712_revise_code/0717_revise_code.ipynb
@@ -1162,6 +1162,94 @@
"# 신호배정\n",
"self.matching.head()"
]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "1. 데이터를 준비합니다.\n",
+ "1-1. 네트워크가 로드되었습니다.\n",
+ "1-2. 테이블들이 로드되었습니다.\n",
+ "1-5. 필요한 보조 객체들이 모두 준비되었습니다.\n",
+ "2. 신호이력 테이블을 변환합니다.\n"
+ ]
+ }
+ ],
+ "source": [
+ "import pandas as pd\n",
+ "import numpy as np\n",
+ "import os, sys, copy, argparse\n",
+ "import json\n",
+ "import sumolib, traci\n",
+ "from tqdm import tqdm\n",
+ "from datetime import datetime\n",
+ "path_root = os.path.dirname(os.path.dirname(os.path.abspath('.')))\n",
+ "path_scr = os.path.join(path_root, 'scripts')\n",
+ "sys.path.append(path_scr)\n",
+ "from preprocess_daily import DailyPreprocessor\n",
+ "from generate_signals import SignalGenerator\n",
+ "self = SignalGenerator()\n",
+ "self.prepare_data()\n",
+ "self.process_history()\n",
+ "\n",
+ "fsecs = list(range(self.present_time - self.sim_timespan, self.present_time + 1, 5))\n",
+ "fsec = fsecs[0]\n",
+ "\n",
+ "# 1. 상태 테이블 조회해서 전체 데이터중 필요데이터(교차로번호, A링 현시번호, A링 이동류번호, B링 현시번호, B링 이동류번호)만 수집 : A\n",
+ "move = pd.read_csv(os.path.join(self.path_tables, 'move', f'move_{fsec}.csv'), index_col=0)\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "isinstance(movement, pd.DataFrame)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# 2. 이력 테이블 조회해서 교차로별로 유닉스시간 최대인 데이터(교차로번호, 종료유닉스타임)만 수집 : B\n",
+ "recent_histories = [group.iloc[-1:] for _, group in self.history[self.history['end_unix'] < fsec].groupby('inter_no')] # 교차로별로 유닉스시간이 최대인 행들\n",
+ "\n",
+ "if not recent_histories:\n",
+ " rhistory = pd.DataFrame({'inter_no':[], 'end_unix':[]}) # recent history\n",
+ "else:\n",
+ " rhistory = pd.concat(recent_histories)\n",
+ "recent_unix = rhistory[['inter_no', 'end_unix']]\n",
+ "# 3. 상태 테이블 조회정보(A)와 이력 테이블 조회정보(B) 조인(키값 : 교차로번호) : C\n",
+ "move = pd.merge(move, recent_unix, how='left', on='inter_no')\n",
+ "move['end_unix'] = move['end_unix'].fillna(0).astype(int)\n",
+ "# 4. C데이터 프레임에 신규 컬럼(시작 유닉스타임) 생성 후 종료유닉스 타임 값 입력, 종료 유닉스 타임 컬럼 제거\n",
+ "move = move.rename(columns = {'end_unix':'start_unix'})\n",
+ "# 5. 이동류 이력정보 READ\n",
+ "# - CSV 파일로 서버에 저장된 이동류정보를 읽어옴(파일이 없는 경우에는 데이터가 없는 프레임 D 생성)\n",
+ "try:\n",
+ " if isinstance(movement, pd.DataFrame): # movement가 존재할 경우 그걸 그대로 씀.\n",
+ " pass\n",
+ " else: \n",
+ " movement = pd.DataFrame()\n",
+ "except NameError: # movement가 존재하지 않는 경우 생성\n",
+ " movement = pd.DataFrame()\n",
+ "# 6. 이동류 이력정보 데이터테이블(D)에 C데이터 add\n",
+ "movement = pd.concat([movement, move])\n",
+ "# 7. D데이터 프레임에서 중복데이터 제거(교차로번호, 시작 유닉스타임, A링 현시번호, B링 현시번호 같은 행은 제거)\n",
+ "movement = movement.drop_duplicates(['inter_no','phas_A','phas_B','start_unix'])\n",
+ "# 8. D데이터 보관 시간 기준시간을 시작 유닉스 타임의 최대값 - self.subtractor // 2을 값으로 산출하고, 보관 시간 기준시간보다 작은 시작 유닉스 타임을 가진 행은 모두 제거(1시간 데이터만 보관)\n",
+ "movement = movement[movement.start_unix > fsec - self.subtractor // 2]\n",
+ "# movement = movement.sort_values(by=['start_unix','inter_no','phas_A','phas_B']).reset_index(drop=True)\n",
+ "self.movement = pd.read_csv(os.path.join(self.path_intermediates, 'movement', f'movement_{self.present_time}.csv'), index_col=0)\n"
+ ]
}
],
"metadata": {
diff --git a/analysis/0712_revise_code/0718_review.ipynb b/analysis/0712_revise_code/0718_review.ipynb
new file mode 100644
index 000000000..1b839f4be
--- /dev/null
+++ b/analysis/0712_revise_code/0718_review.ipynb
@@ -0,0 +1,20370 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "1. 데이터를 준비합니다.\n",
+ "1-1. 네트워크가 로드되었습니다.\n",
+ "1-2. 테이블들이 로드되었습니다.\n",
+ "1-5. 필요한 보조 객체들이 모두 준비되었습니다.\n",
+ "2. 신호이력 테이블을 변환합니다.\n"
+ ]
+ }
+ ],
+ "source": [
+ "import pandas as pd\n",
+ "import numpy as np\n",
+ "import os, sys, copy, argparse\n",
+ "import json\n",
+ "import sumolib, traci\n",
+ "from tqdm import tqdm\n",
+ "from datetime import datetime\n",
+ "path_root = os.path.dirname(os.path.dirname(os.path.abspath('.')))\n",
+ "path_scr = os.path.join(path_root, 'scripts')\n",
+ "sys.path.append(path_scr)\n",
+ "from preprocess_daily import DailyPreprocessor\n",
+ "from generate_signals import SignalGenerator\n",
+ "self = SignalGenerator()\n",
+ "self.prepare_data()\n",
+ "self.process_history()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "fsecs = list(range(self.present_time - self.sim_timespan, self.present_time + 1, 5))\n",
+ "I = len(fsecs)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "i=0 1704417900\n",
+ "1. 상태 테이블 조회해서 전체 데이터중 필요데이터(교차로번호, A링 현시번호, A링 이동류번호, B링 현시번호, B링 이동류번호)만 수집 : A\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 18 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B\n",
+ "0 175 2 2 7 3\n",
+ "1 176 1 1 8 4\n",
+ "2 177 1 1 8 4\n",
+ "3 178 4 4 6 1\n",
+ "4 201 4 4 6 1\n",
+ "5 202 2 2 17 18\n",
+ "6 206 2 2 17 18\n",
+ "7 210 1 1 6 18"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "2. 이력 테이블 조회해서 교차로별로 유닉스시간 최대인 데이터(교차로번호, 종료유닉스타임)만 수집 : B\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " end_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 1867 | \n",
+ " 175 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1869 | \n",
+ " 176 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 1866 | \n",
+ " 177 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1871 | \n",
+ " 178 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 1870 | \n",
+ " 201 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 1864 | \n",
+ " 202 | \n",
+ " 1704417740 | \n",
+ "
\n",
+ " \n",
+ " 1868 | \n",
+ " 206 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 1865 | \n",
+ " 210 | \n",
+ " 1704417740 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no end_unix\n",
+ "1867 175 1704417790\n",
+ "1869 176 1704417810\n",
+ "1866 177 1704417790\n",
+ "1871 178 1704417870\n",
+ "1870 201 1704417870\n",
+ "1864 202 1704417740\n",
+ "1868 206 1704417800\n",
+ "1865 210 1704417740"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "3. 상태 테이블 조회정보(A)와 이력 테이블 조회정보(B) 조인(키값 : 교차로번호) : C\n",
+ "4. C데이터 프레임에 신규 컬럼(시작 유닉스타임) 생성 후 종료유닉스 타임 값 입력, 종료 유닉스 타임 컬럼 제거\n",
+ "\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ " start_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417740 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 18 | \n",
+ " 1704417740 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B start_unix\n",
+ "0 175 2 2 7 3 1704417790\n",
+ "1 176 1 1 8 4 1704417810\n",
+ "2 177 1 1 8 4 1704417790\n",
+ "3 178 4 4 6 1 1704417870\n",
+ "4 201 4 4 6 1 1704417870\n",
+ "5 202 2 2 17 18 1704417740\n",
+ "6 206 2 2 17 18 1704417800\n",
+ "7 210 1 1 6 18 1704417740"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "5. 이동류 이력정보 READ\n",
+ " - CSV 파일로 서버에 저장된 이동류정보를 읽어옴(파일이 없는 경우에는 데이터가 없는 프레임 D 생성\n",
+ "6. 이동류 이력정보 데이터테이블(D)에 C데이터 add\n",
+ "7. D데이터 프레임에서 중복데이터 제거(교차로번호, 시작 유닉스타임, A링 현시번호, B링 현시번호 같은 행은 제거)\n",
+ "8. D데이터 보관 시간 기준시간을 시작 유닉스 타임의 최대값 - self.subtractor // 2을 값으로 산출하고, 보관 시간 기준시간보다 작은 시작 유닉스 타임을 가진 행은 모두 제거(1시간 데이터만 보관)\n",
+ "\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ " start_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417740 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 18 | \n",
+ " 1704417740 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B start_unix\n",
+ "0 175 2 2 7 3 1704417790\n",
+ "1 176 1 1 8 4 1704417810\n",
+ "2 177 1 1 8 4 1704417790\n",
+ "3 178 4 4 6 1 1704417870\n",
+ "4 201 4 4 6 1 1704417870\n",
+ "5 202 2 2 17 18 1704417740\n",
+ "6 206 2 2 17 18 1704417800\n",
+ "7 210 1 1 6 18 1704417740"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "i=1 1704417905\n",
+ "1. 상태 테이블 조회해서 전체 데이터중 필요데이터(교차로번호, A링 현시번호, A링 이동류번호, B링 현시번호, B링 이동류번호)만 수집 : A\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 5 | \n",
+ " 5 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 18 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B\n",
+ "0 175 2 2 7 3\n",
+ "1 176 1 1 8 4\n",
+ "2 177 1 1 8 4\n",
+ "3 178 4 4 6 1\n",
+ "4 201 5 5 7 4\n",
+ "5 202 2 2 17 18\n",
+ "6 206 2 2 17 18\n",
+ "7 210 1 1 6 18"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "2. 이력 테이블 조회해서 교차로별로 유닉스시간 최대인 데이터(교차로번호, 종료유닉스타임)만 수집 : B\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " end_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 1867 | \n",
+ " 175 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1869 | \n",
+ " 176 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 1866 | \n",
+ " 177 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1871 | \n",
+ " 178 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 1870 | \n",
+ " 201 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 1872 | \n",
+ " 202 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 1868 | \n",
+ " 206 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 1865 | \n",
+ " 210 | \n",
+ " 1704417740 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no end_unix\n",
+ "1867 175 1704417790\n",
+ "1869 176 1704417810\n",
+ "1866 177 1704417790\n",
+ "1871 178 1704417870\n",
+ "1870 201 1704417870\n",
+ "1872 202 1704417900\n",
+ "1868 206 1704417800\n",
+ "1865 210 1704417740"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "3. 상태 테이블 조회정보(A)와 이력 테이블 조회정보(B) 조인(키값 : 교차로번호) : C\n",
+ "4. C데이터 프레임에 신규 컬럼(시작 유닉스타임) 생성 후 종료유닉스 타임 값 입력, 종료 유닉스 타임 컬럼 제거\n",
+ "\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ " start_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 5 | \n",
+ " 5 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 18 | \n",
+ " 1704417740 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B start_unix\n",
+ "0 175 2 2 7 3 1704417790\n",
+ "1 176 1 1 8 4 1704417810\n",
+ "2 177 1 1 8 4 1704417790\n",
+ "3 178 4 4 6 1 1704417870\n",
+ "4 201 5 5 7 4 1704417870\n",
+ "5 202 2 2 17 18 1704417900\n",
+ "6 206 2 2 17 18 1704417800\n",
+ "7 210 1 1 6 18 1704417740"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "5. 이동류 이력정보 READ\n",
+ " - CSV 파일로 서버에 저장된 이동류정보를 읽어옴(파일이 없는 경우에는 데이터가 없는 프레임 D 생성\n",
+ "6. 이동류 이력정보 데이터테이블(D)에 C데이터 add\n",
+ "7. D데이터 프레임에서 중복데이터 제거(교차로번호, 시작 유닉스타임, A링 현시번호, B링 현시번호 같은 행은 제거)\n",
+ "8. D데이터 보관 시간 기준시간을 시작 유닉스 타임의 최대값 - self.subtractor // 2을 값으로 산출하고, 보관 시간 기준시간보다 작은 시작 유닉스 타임을 가진 행은 모두 제거(1시간 데이터만 보관)\n",
+ "\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ " start_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417740 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 18 | \n",
+ " 1704417740 | \n",
+ "
\n",
+ " \n",
+ " 8 | \n",
+ " 201 | \n",
+ " 5 | \n",
+ " 5 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 9 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B start_unix\n",
+ "0 175 2 2 7 3 1704417790\n",
+ "1 176 1 1 8 4 1704417810\n",
+ "2 177 1 1 8 4 1704417790\n",
+ "3 178 4 4 6 1 1704417870\n",
+ "4 201 4 4 6 1 1704417870\n",
+ "5 202 2 2 17 18 1704417740\n",
+ "6 206 2 2 17 18 1704417800\n",
+ "7 210 1 1 6 18 1704417740\n",
+ "8 201 5 5 7 4 1704417870\n",
+ "9 202 2 2 17 18 1704417900"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "i=2 1704417910\n",
+ "1. 상태 테이블 조회해서 전체 데이터중 필요데이터(교차로번호, A링 현시번호, A링 이동류번호, B링 현시번호, B링 이동류번호)만 수집 : A\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 5 | \n",
+ " 5 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 18 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B\n",
+ "0 175 2 2 7 3\n",
+ "1 176 1 1 8 4\n",
+ "2 177 1 1 8 4\n",
+ "3 178 4 4 6 1\n",
+ "4 201 5 5 7 4\n",
+ "5 202 2 2 17 18\n",
+ "6 206 3 3 8 4\n",
+ "7 210 1 1 6 18"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "2. 이력 테이블 조회해서 교차로별로 유닉스시간 최대인 데이터(교차로번호, 종료유닉스타임)만 수집 : B\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " end_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 1867 | \n",
+ " 175 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1869 | \n",
+ " 176 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 1866 | \n",
+ " 177 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1871 | \n",
+ " 178 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 1870 | \n",
+ " 201 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 1872 | \n",
+ " 202 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 1868 | \n",
+ " 206 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 1865 | \n",
+ " 210 | \n",
+ " 1704417740 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no end_unix\n",
+ "1867 175 1704417790\n",
+ "1869 176 1704417810\n",
+ "1866 177 1704417790\n",
+ "1871 178 1704417870\n",
+ "1870 201 1704417870\n",
+ "1872 202 1704417900\n",
+ "1868 206 1704417800\n",
+ "1865 210 1704417740"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "3. 상태 테이블 조회정보(A)와 이력 테이블 조회정보(B) 조인(키값 : 교차로번호) : C\n",
+ "4. C데이터 프레임에 신규 컬럼(시작 유닉스타임) 생성 후 종료유닉스 타임 값 입력, 종료 유닉스 타임 컬럼 제거\n",
+ "\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ " start_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 5 | \n",
+ " 5 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 18 | \n",
+ " 1704417740 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B start_unix\n",
+ "0 175 2 2 7 3 1704417790\n",
+ "1 176 1 1 8 4 1704417810\n",
+ "2 177 1 1 8 4 1704417790\n",
+ "3 178 4 4 6 1 1704417870\n",
+ "4 201 5 5 7 4 1704417870\n",
+ "5 202 2 2 17 18 1704417900\n",
+ "6 206 3 3 8 4 1704417800\n",
+ "7 210 1 1 6 18 1704417740"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "5. 이동류 이력정보 READ\n",
+ " - CSV 파일로 서버에 저장된 이동류정보를 읽어옴(파일이 없는 경우에는 데이터가 없는 프레임 D 생성\n",
+ "6. 이동류 이력정보 데이터테이블(D)에 C데이터 add\n",
+ "7. D데이터 프레임에서 중복데이터 제거(교차로번호, 시작 유닉스타임, A링 현시번호, B링 현시번호 같은 행은 제거)\n",
+ "8. D데이터 보관 시간 기준시간을 시작 유닉스 타임의 최대값 - self.subtractor // 2을 값으로 산출하고, 보관 시간 기준시간보다 작은 시작 유닉스 타임을 가진 행은 모두 제거(1시간 데이터만 보관)\n",
+ "\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ " start_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417740 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 18 | \n",
+ " 1704417740 | \n",
+ "
\n",
+ " \n",
+ " 8 | \n",
+ " 201 | \n",
+ " 5 | \n",
+ " 5 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 9 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 10 | \n",
+ " 206 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B start_unix\n",
+ "0 175 2 2 7 3 1704417790\n",
+ "1 176 1 1 8 4 1704417810\n",
+ "2 177 1 1 8 4 1704417790\n",
+ "3 178 4 4 6 1 1704417870\n",
+ "4 201 4 4 6 1 1704417870\n",
+ "5 202 2 2 17 18 1704417740\n",
+ "6 206 2 2 17 18 1704417800\n",
+ "7 210 1 1 6 18 1704417740\n",
+ "8 201 5 5 7 4 1704417870\n",
+ "9 202 2 2 17 18 1704417900\n",
+ "10 206 3 3 8 4 1704417800"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "i=3 1704417915\n",
+ "1. 상태 테이블 조회해서 전체 데이터중 필요데이터(교차로번호, A링 현시번호, A링 이동류번호, B링 현시번호, B링 이동류번호)만 수집 : A\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 5 | \n",
+ " 5 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 18 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B\n",
+ "0 175 2 2 7 3\n",
+ "1 176 1 1 8 4\n",
+ "2 177 1 1 8 4\n",
+ "3 178 4 4 6 1\n",
+ "4 201 5 5 7 4\n",
+ "5 202 2 2 17 18\n",
+ "6 206 3 3 8 4\n",
+ "7 210 1 1 6 18"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "2. 이력 테이블 조회해서 교차로별로 유닉스시간 최대인 데이터(교차로번호, 종료유닉스타임)만 수집 : B\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " end_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 1867 | \n",
+ " 175 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1869 | \n",
+ " 176 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 1866 | \n",
+ " 177 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1871 | \n",
+ " 178 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 1870 | \n",
+ " 201 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 1872 | \n",
+ " 202 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 1868 | \n",
+ " 206 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 1865 | \n",
+ " 210 | \n",
+ " 1704417740 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no end_unix\n",
+ "1867 175 1704417790\n",
+ "1869 176 1704417810\n",
+ "1866 177 1704417790\n",
+ "1871 178 1704417870\n",
+ "1870 201 1704417870\n",
+ "1872 202 1704417900\n",
+ "1868 206 1704417800\n",
+ "1865 210 1704417740"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "3. 상태 테이블 조회정보(A)와 이력 테이블 조회정보(B) 조인(키값 : 교차로번호) : C\n",
+ "4. C데이터 프레임에 신규 컬럼(시작 유닉스타임) 생성 후 종료유닉스 타임 값 입력, 종료 유닉스 타임 컬럼 제거\n",
+ "\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ " start_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 5 | \n",
+ " 5 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 18 | \n",
+ " 1704417740 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B start_unix\n",
+ "0 175 2 2 7 3 1704417790\n",
+ "1 176 1 1 8 4 1704417810\n",
+ "2 177 1 1 8 4 1704417790\n",
+ "3 178 4 4 6 1 1704417870\n",
+ "4 201 5 5 7 4 1704417870\n",
+ "5 202 2 2 17 18 1704417900\n",
+ "6 206 3 3 8 4 1704417800\n",
+ "7 210 1 1 6 18 1704417740"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "5. 이동류 이력정보 READ\n",
+ " - CSV 파일로 서버에 저장된 이동류정보를 읽어옴(파일이 없는 경우에는 데이터가 없는 프레임 D 생성\n",
+ "6. 이동류 이력정보 데이터테이블(D)에 C데이터 add\n",
+ "7. D데이터 프레임에서 중복데이터 제거(교차로번호, 시작 유닉스타임, A링 현시번호, B링 현시번호 같은 행은 제거)\n",
+ "8. D데이터 보관 시간 기준시간을 시작 유닉스 타임의 최대값 - self.subtractor // 2을 값으로 산출하고, 보관 시간 기준시간보다 작은 시작 유닉스 타임을 가진 행은 모두 제거(1시간 데이터만 보관)\n",
+ "\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ " start_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417740 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 18 | \n",
+ " 1704417740 | \n",
+ "
\n",
+ " \n",
+ " 8 | \n",
+ " 201 | \n",
+ " 5 | \n",
+ " 5 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 9 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 10 | \n",
+ " 206 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B start_unix\n",
+ "0 175 2 2 7 3 1704417790\n",
+ "1 176 1 1 8 4 1704417810\n",
+ "2 177 1 1 8 4 1704417790\n",
+ "3 178 4 4 6 1 1704417870\n",
+ "4 201 4 4 6 1 1704417870\n",
+ "5 202 2 2 17 18 1704417740\n",
+ "6 206 2 2 17 18 1704417800\n",
+ "7 210 1 1 6 18 1704417740\n",
+ "8 201 5 5 7 4 1704417870\n",
+ "9 202 2 2 17 18 1704417900\n",
+ "10 206 3 3 8 4 1704417800"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "i=4 1704417920\n",
+ "1. 상태 테이블 조회해서 전체 데이터중 필요데이터(교차로번호, A링 현시번호, A링 이동류번호, B링 현시번호, B링 이동류번호)만 수집 : A\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 18 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B\n",
+ "0 175 3 3 6 1\n",
+ "1 176 1 1 8 4\n",
+ "2 177 1 1 8 4\n",
+ "3 178 1 1 8 4\n",
+ "4 201 1 1 8 3\n",
+ "5 202 1 1 6 2\n",
+ "6 206 3 3 8 4\n",
+ "7 210 1 1 6 18"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "2. 이력 테이블 조회해서 교차로별로 유닉스시간 최대인 데이터(교차로번호, 종료유닉스타임)만 수집 : B\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " end_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 1867 | \n",
+ " 175 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1869 | \n",
+ " 176 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 1866 | \n",
+ " 177 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1871 | \n",
+ " 178 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 1870 | \n",
+ " 201 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 1872 | \n",
+ " 202 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 1868 | \n",
+ " 206 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 1865 | \n",
+ " 210 | \n",
+ " 1704417740 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no end_unix\n",
+ "1867 175 1704417790\n",
+ "1869 176 1704417810\n",
+ "1866 177 1704417790\n",
+ "1871 178 1704417870\n",
+ "1870 201 1704417870\n",
+ "1872 202 1704417900\n",
+ "1868 206 1704417800\n",
+ "1865 210 1704417740"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "3. 상태 테이블 조회정보(A)와 이력 테이블 조회정보(B) 조인(키값 : 교차로번호) : C\n",
+ "4. C데이터 프레임에 신규 컬럼(시작 유닉스타임) 생성 후 종료유닉스 타임 값 입력, 종료 유닉스 타임 컬럼 제거\n",
+ "\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ " start_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 18 | \n",
+ " 1704417740 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B start_unix\n",
+ "0 175 3 3 6 1 1704417790\n",
+ "1 176 1 1 8 4 1704417810\n",
+ "2 177 1 1 8 4 1704417790\n",
+ "3 178 1 1 8 4 1704417870\n",
+ "4 201 1 1 8 3 1704417870\n",
+ "5 202 1 1 6 2 1704417900\n",
+ "6 206 3 3 8 4 1704417800\n",
+ "7 210 1 1 6 18 1704417740"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "5. 이동류 이력정보 READ\n",
+ " - CSV 파일로 서버에 저장된 이동류정보를 읽어옴(파일이 없는 경우에는 데이터가 없는 프레임 D 생성\n",
+ "6. 이동류 이력정보 데이터테이블(D)에 C데이터 add\n",
+ "7. D데이터 프레임에서 중복데이터 제거(교차로번호, 시작 유닉스타임, A링 현시번호, B링 현시번호 같은 행은 제거)\n",
+ "8. D데이터 보관 시간 기준시간을 시작 유닉스 타임의 최대값 - self.subtractor // 2을 값으로 산출하고, 보관 시간 기준시간보다 작은 시작 유닉스 타임을 가진 행은 모두 제거(1시간 데이터만 보관)\n",
+ "\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ " start_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417740 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 18 | \n",
+ " 1704417740 | \n",
+ "
\n",
+ " \n",
+ " 8 | \n",
+ " 201 | \n",
+ " 5 | \n",
+ " 5 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 9 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 10 | \n",
+ " 206 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 11 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 12 | \n",
+ " 178 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 13 | \n",
+ " 201 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 14 | \n",
+ " 202 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B start_unix\n",
+ "0 175 2 2 7 3 1704417790\n",
+ "1 176 1 1 8 4 1704417810\n",
+ "2 177 1 1 8 4 1704417790\n",
+ "3 178 4 4 6 1 1704417870\n",
+ "4 201 4 4 6 1 1704417870\n",
+ "5 202 2 2 17 18 1704417740\n",
+ "6 206 2 2 17 18 1704417800\n",
+ "7 210 1 1 6 18 1704417740\n",
+ "8 201 5 5 7 4 1704417870\n",
+ "9 202 2 2 17 18 1704417900\n",
+ "10 206 3 3 8 4 1704417800\n",
+ "11 175 3 3 6 1 1704417790\n",
+ "12 178 1 1 8 4 1704417870\n",
+ "13 201 1 1 8 3 1704417870\n",
+ "14 202 1 1 6 2 1704417900"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "i=5 1704417925\n",
+ "1. 상태 테이블 조회해서 전체 데이터중 필요데이터(교차로번호, A링 현시번호, A링 이동류번호, B링 현시번호, B링 이동류번호)만 수집 : A\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " 2 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B\n",
+ "0 175 3 3 6 1\n",
+ "1 176 1 1 8 4\n",
+ "2 177 1 1 8 4\n",
+ "3 178 1 1 8 4\n",
+ "4 201 1 1 8 3\n",
+ "5 202 1 1 6 2\n",
+ "6 206 3 3 8 4\n",
+ "7 210 1 2 6 2"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "2. 이력 테이블 조회해서 교차로별로 유닉스시간 최대인 데이터(교차로번호, 종료유닉스타임)만 수집 : B\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " end_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 1867 | \n",
+ " 175 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1869 | \n",
+ " 176 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 1866 | \n",
+ " 177 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1871 | \n",
+ " 178 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 1870 | \n",
+ " 201 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 1872 | \n",
+ " 202 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 1868 | \n",
+ " 206 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 1873 | \n",
+ " 210 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no end_unix\n",
+ "1867 175 1704417790\n",
+ "1869 176 1704417810\n",
+ "1866 177 1704417790\n",
+ "1871 178 1704417870\n",
+ "1870 201 1704417870\n",
+ "1872 202 1704417900\n",
+ "1868 206 1704417800\n",
+ "1873 210 1704417921"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "3. 상태 테이블 조회정보(A)와 이력 테이블 조회정보(B) 조인(키값 : 교차로번호) : C\n",
+ "4. C데이터 프레임에 신규 컬럼(시작 유닉스타임) 생성 후 종료유닉스 타임 값 입력, 종료 유닉스 타임 컬럼 제거\n",
+ "\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ " start_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " 2 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B start_unix\n",
+ "0 175 3 3 6 1 1704417790\n",
+ "1 176 1 1 8 4 1704417810\n",
+ "2 177 1 1 8 4 1704417790\n",
+ "3 178 1 1 8 4 1704417870\n",
+ "4 201 1 1 8 3 1704417870\n",
+ "5 202 1 1 6 2 1704417900\n",
+ "6 206 3 3 8 4 1704417800\n",
+ "7 210 1 2 6 2 1704417921"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "5. 이동류 이력정보 READ\n",
+ " - CSV 파일로 서버에 저장된 이동류정보를 읽어옴(파일이 없는 경우에는 데이터가 없는 프레임 D 생성\n",
+ "6. 이동류 이력정보 데이터테이블(D)에 C데이터 add\n",
+ "7. D데이터 프레임에서 중복데이터 제거(교차로번호, 시작 유닉스타임, A링 현시번호, B링 현시번호 같은 행은 제거)\n",
+ "8. D데이터 보관 시간 기준시간을 시작 유닉스 타임의 최대값 - self.subtractor // 2을 값으로 산출하고, 보관 시간 기준시간보다 작은 시작 유닉스 타임을 가진 행은 모두 제거(1시간 데이터만 보관)\n",
+ "\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ " start_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417740 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 18 | \n",
+ " 1704417740 | \n",
+ "
\n",
+ " \n",
+ " 8 | \n",
+ " 201 | \n",
+ " 5 | \n",
+ " 5 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 9 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 10 | \n",
+ " 206 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 11 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 12 | \n",
+ " 178 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 13 | \n",
+ " 201 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 14 | \n",
+ " 202 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 15 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " 2 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B start_unix\n",
+ "0 175 2 2 7 3 1704417790\n",
+ "1 176 1 1 8 4 1704417810\n",
+ "2 177 1 1 8 4 1704417790\n",
+ "3 178 4 4 6 1 1704417870\n",
+ "4 201 4 4 6 1 1704417870\n",
+ "5 202 2 2 17 18 1704417740\n",
+ "6 206 2 2 17 18 1704417800\n",
+ "7 210 1 1 6 18 1704417740\n",
+ "8 201 5 5 7 4 1704417870\n",
+ "9 202 2 2 17 18 1704417900\n",
+ "10 206 3 3 8 4 1704417800\n",
+ "11 175 3 3 6 1 1704417790\n",
+ "12 178 1 1 8 4 1704417870\n",
+ "13 201 1 1 8 3 1704417870\n",
+ "14 202 1 1 6 2 1704417900\n",
+ "15 210 1 2 6 2 1704417921"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "i=6 1704417930\n",
+ "1. 상태 테이블 조회해서 전체 데이터중 필요데이터(교차로번호, A링 현시번호, A링 이동류번호, B링 현시번호, B링 이동류번호)만 수집 : A\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " 2 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B\n",
+ "0 175 3 3 6 1\n",
+ "1 176 1 1 8 4\n",
+ "2 177 1 1 8 4\n",
+ "3 178 1 1 8 4\n",
+ "4 201 1 1 8 3\n",
+ "5 202 1 1 6 2\n",
+ "6 206 3 3 8 4\n",
+ "7 210 1 2 6 2"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "2. 이력 테이블 조회해서 교차로별로 유닉스시간 최대인 데이터(교차로번호, 종료유닉스타임)만 수집 : B\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " end_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 1867 | \n",
+ " 175 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1869 | \n",
+ " 176 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 1866 | \n",
+ " 177 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1871 | \n",
+ " 178 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 1870 | \n",
+ " 201 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 1872 | \n",
+ " 202 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 1868 | \n",
+ " 206 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 1873 | \n",
+ " 210 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no end_unix\n",
+ "1867 175 1704417790\n",
+ "1869 176 1704417810\n",
+ "1866 177 1704417790\n",
+ "1871 178 1704417870\n",
+ "1870 201 1704417870\n",
+ "1872 202 1704417900\n",
+ "1868 206 1704417800\n",
+ "1873 210 1704417921"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "3. 상태 테이블 조회정보(A)와 이력 테이블 조회정보(B) 조인(키값 : 교차로번호) : C\n",
+ "4. C데이터 프레임에 신규 컬럼(시작 유닉스타임) 생성 후 종료유닉스 타임 값 입력, 종료 유닉스 타임 컬럼 제거\n",
+ "\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ " start_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " 2 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B start_unix\n",
+ "0 175 3 3 6 1 1704417790\n",
+ "1 176 1 1 8 4 1704417810\n",
+ "2 177 1 1 8 4 1704417790\n",
+ "3 178 1 1 8 4 1704417870\n",
+ "4 201 1 1 8 3 1704417870\n",
+ "5 202 1 1 6 2 1704417900\n",
+ "6 206 3 3 8 4 1704417800\n",
+ "7 210 1 2 6 2 1704417921"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "5. 이동류 이력정보 READ\n",
+ " - CSV 파일로 서버에 저장된 이동류정보를 읽어옴(파일이 없는 경우에는 데이터가 없는 프레임 D 생성\n",
+ "6. 이동류 이력정보 데이터테이블(D)에 C데이터 add\n",
+ "7. D데이터 프레임에서 중복데이터 제거(교차로번호, 시작 유닉스타임, A링 현시번호, B링 현시번호 같은 행은 제거)\n",
+ "8. D데이터 보관 시간 기준시간을 시작 유닉스 타임의 최대값 - self.subtractor // 2을 값으로 산출하고, 보관 시간 기준시간보다 작은 시작 유닉스 타임을 가진 행은 모두 제거(1시간 데이터만 보관)\n",
+ "\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ " start_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417740 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 18 | \n",
+ " 1704417740 | \n",
+ "
\n",
+ " \n",
+ " 8 | \n",
+ " 201 | \n",
+ " 5 | \n",
+ " 5 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 9 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 10 | \n",
+ " 206 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 11 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 12 | \n",
+ " 178 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 13 | \n",
+ " 201 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 14 | \n",
+ " 202 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 15 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " 2 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B start_unix\n",
+ "0 175 2 2 7 3 1704417790\n",
+ "1 176 1 1 8 4 1704417810\n",
+ "2 177 1 1 8 4 1704417790\n",
+ "3 178 4 4 6 1 1704417870\n",
+ "4 201 4 4 6 1 1704417870\n",
+ "5 202 2 2 17 18 1704417740\n",
+ "6 206 2 2 17 18 1704417800\n",
+ "7 210 1 1 6 18 1704417740\n",
+ "8 201 5 5 7 4 1704417870\n",
+ "9 202 2 2 17 18 1704417900\n",
+ "10 206 3 3 8 4 1704417800\n",
+ "11 175 3 3 6 1 1704417790\n",
+ "12 178 1 1 8 4 1704417870\n",
+ "13 201 1 1 8 3 1704417870\n",
+ "14 202 1 1 6 2 1704417900\n",
+ "15 210 1 2 6 2 1704417921"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "i=7 1704417935\n",
+ "1. 상태 테이블 조회해서 전체 데이터중 필요데이터(교차로번호, A링 현시번호, A링 이동류번호, B링 현시번호, B링 이동류번호)만 수집 : A\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " 2 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B\n",
+ "0 175 3 3 6 1\n",
+ "1 176 1 1 8 4\n",
+ "2 177 1 1 8 4\n",
+ "3 178 1 1 8 4\n",
+ "4 201 1 1 8 3\n",
+ "5 202 1 1 6 2\n",
+ "6 206 4 4 17 18\n",
+ "7 210 1 2 6 2"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "2. 이력 테이블 조회해서 교차로별로 유닉스시간 최대인 데이터(교차로번호, 종료유닉스타임)만 수집 : B\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " end_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 1867 | \n",
+ " 175 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1869 | \n",
+ " 176 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 1866 | \n",
+ " 177 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1871 | \n",
+ " 178 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 1870 | \n",
+ " 201 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 1872 | \n",
+ " 202 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 1868 | \n",
+ " 206 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 1873 | \n",
+ " 210 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no end_unix\n",
+ "1867 175 1704417790\n",
+ "1869 176 1704417810\n",
+ "1866 177 1704417790\n",
+ "1871 178 1704417870\n",
+ "1870 201 1704417870\n",
+ "1872 202 1704417900\n",
+ "1868 206 1704417800\n",
+ "1873 210 1704417921"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "3. 상태 테이블 조회정보(A)와 이력 테이블 조회정보(B) 조인(키값 : 교차로번호) : C\n",
+ "4. C데이터 프레임에 신규 컬럼(시작 유닉스타임) 생성 후 종료유닉스 타임 값 입력, 종료 유닉스 타임 컬럼 제거\n",
+ "\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ " start_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " 2 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B start_unix\n",
+ "0 175 3 3 6 1 1704417790\n",
+ "1 176 1 1 8 4 1704417810\n",
+ "2 177 1 1 8 4 1704417790\n",
+ "3 178 1 1 8 4 1704417870\n",
+ "4 201 1 1 8 3 1704417870\n",
+ "5 202 1 1 6 2 1704417900\n",
+ "6 206 4 4 17 18 1704417800\n",
+ "7 210 1 2 6 2 1704417921"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "5. 이동류 이력정보 READ\n",
+ " - CSV 파일로 서버에 저장된 이동류정보를 읽어옴(파일이 없는 경우에는 데이터가 없는 프레임 D 생성\n",
+ "6. 이동류 이력정보 데이터테이블(D)에 C데이터 add\n",
+ "7. D데이터 프레임에서 중복데이터 제거(교차로번호, 시작 유닉스타임, A링 현시번호, B링 현시번호 같은 행은 제거)\n",
+ "8. D데이터 보관 시간 기준시간을 시작 유닉스 타임의 최대값 - self.subtractor // 2을 값으로 산출하고, 보관 시간 기준시간보다 작은 시작 유닉스 타임을 가진 행은 모두 제거(1시간 데이터만 보관)\n",
+ "\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ " start_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417740 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 18 | \n",
+ " 1704417740 | \n",
+ "
\n",
+ " \n",
+ " 8 | \n",
+ " 201 | \n",
+ " 5 | \n",
+ " 5 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 9 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 10 | \n",
+ " 206 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 11 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 12 | \n",
+ " 178 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 13 | \n",
+ " 201 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 14 | \n",
+ " 202 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 15 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " 2 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ " 16 | \n",
+ " 206 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B start_unix\n",
+ "0 175 2 2 7 3 1704417790\n",
+ "1 176 1 1 8 4 1704417810\n",
+ "2 177 1 1 8 4 1704417790\n",
+ "3 178 4 4 6 1 1704417870\n",
+ "4 201 4 4 6 1 1704417870\n",
+ "5 202 2 2 17 18 1704417740\n",
+ "6 206 2 2 17 18 1704417800\n",
+ "7 210 1 1 6 18 1704417740\n",
+ "8 201 5 5 7 4 1704417870\n",
+ "9 202 2 2 17 18 1704417900\n",
+ "10 206 3 3 8 4 1704417800\n",
+ "11 175 3 3 6 1 1704417790\n",
+ "12 178 1 1 8 4 1704417870\n",
+ "13 201 1 1 8 3 1704417870\n",
+ "14 202 1 1 6 2 1704417900\n",
+ "15 210 1 2 6 2 1704417921\n",
+ "16 206 4 4 17 18 1704417800"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "i=8 1704417940\n",
+ "1. 상태 테이블 조회해서 전체 데이터중 필요데이터(교차로번호, A링 현시번호, A링 이동류번호, B링 현시번호, B링 이동류번호)만 수집 : A\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " 2 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B\n",
+ "0 175 3 3 6 1\n",
+ "1 176 2 2 8 3\n",
+ "2 177 2 2 7 3\n",
+ "3 178 1 1 8 4\n",
+ "4 201 1 1 8 3\n",
+ "5 202 1 1 6 2\n",
+ "6 206 4 4 17 18\n",
+ "7 210 1 2 6 2"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "2. 이력 테이블 조회해서 교차로별로 유닉스시간 최대인 데이터(교차로번호, 종료유닉스타임)만 수집 : B\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " end_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 1867 | \n",
+ " 175 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1869 | \n",
+ " 176 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 1866 | \n",
+ " 177 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1871 | \n",
+ " 178 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 1870 | \n",
+ " 201 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 1872 | \n",
+ " 202 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 1868 | \n",
+ " 206 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 1873 | \n",
+ " 210 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no end_unix\n",
+ "1867 175 1704417790\n",
+ "1869 176 1704417810\n",
+ "1866 177 1704417790\n",
+ "1871 178 1704417870\n",
+ "1870 201 1704417870\n",
+ "1872 202 1704417900\n",
+ "1868 206 1704417800\n",
+ "1873 210 1704417921"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "3. 상태 테이블 조회정보(A)와 이력 테이블 조회정보(B) 조인(키값 : 교차로번호) : C\n",
+ "4. C데이터 프레임에 신규 컬럼(시작 유닉스타임) 생성 후 종료유닉스 타임 값 입력, 종료 유닉스 타임 컬럼 제거\n",
+ "\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ " start_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " 2 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B start_unix\n",
+ "0 175 3 3 6 1 1704417790\n",
+ "1 176 2 2 8 3 1704417810\n",
+ "2 177 2 2 7 3 1704417790\n",
+ "3 178 1 1 8 4 1704417870\n",
+ "4 201 1 1 8 3 1704417870\n",
+ "5 202 1 1 6 2 1704417900\n",
+ "6 206 4 4 17 18 1704417800\n",
+ "7 210 1 2 6 2 1704417921"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "5. 이동류 이력정보 READ\n",
+ " - CSV 파일로 서버에 저장된 이동류정보를 읽어옴(파일이 없는 경우에는 데이터가 없는 프레임 D 생성\n",
+ "6. 이동류 이력정보 데이터테이블(D)에 C데이터 add\n",
+ "7. D데이터 프레임에서 중복데이터 제거(교차로번호, 시작 유닉스타임, A링 현시번호, B링 현시번호 같은 행은 제거)\n",
+ "8. D데이터 보관 시간 기준시간을 시작 유닉스 타임의 최대값 - self.subtractor // 2을 값으로 산출하고, 보관 시간 기준시간보다 작은 시작 유닉스 타임을 가진 행은 모두 제거(1시간 데이터만 보관)\n",
+ "\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ " start_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417740 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 18 | \n",
+ " 1704417740 | \n",
+ "
\n",
+ " \n",
+ " 8 | \n",
+ " 201 | \n",
+ " 5 | \n",
+ " 5 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 9 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 10 | \n",
+ " 206 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 11 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 12 | \n",
+ " 178 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 13 | \n",
+ " 201 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 14 | \n",
+ " 202 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 15 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " 2 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ " 16 | \n",
+ " 206 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 17 | \n",
+ " 176 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 18 | \n",
+ " 177 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B start_unix\n",
+ "0 175 2 2 7 3 1704417790\n",
+ "1 176 1 1 8 4 1704417810\n",
+ "2 177 1 1 8 4 1704417790\n",
+ "3 178 4 4 6 1 1704417870\n",
+ "4 201 4 4 6 1 1704417870\n",
+ "5 202 2 2 17 18 1704417740\n",
+ "6 206 2 2 17 18 1704417800\n",
+ "7 210 1 1 6 18 1704417740\n",
+ "8 201 5 5 7 4 1704417870\n",
+ "9 202 2 2 17 18 1704417900\n",
+ "10 206 3 3 8 4 1704417800\n",
+ "11 175 3 3 6 1 1704417790\n",
+ "12 178 1 1 8 4 1704417870\n",
+ "13 201 1 1 8 3 1704417870\n",
+ "14 202 1 1 6 2 1704417900\n",
+ "15 210 1 2 6 2 1704417921\n",
+ "16 206 4 4 17 18 1704417800\n",
+ "17 176 2 2 8 3 1704417810\n",
+ "18 177 2 2 7 3 1704417790"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "i=9 1704417945\n",
+ "1. 상태 테이블 조회해서 전체 데이터중 필요데이터(교차로번호, A링 현시번호, A링 이동류번호, B링 현시번호, B링 이동류번호)만 수집 : A\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B\n",
+ "0 175 3 4 6 2\n",
+ "1 176 2 2 8 3\n",
+ "2 177 2 2 7 3\n",
+ "3 178 1 1 8 4\n",
+ "4 201 2 2 5 2\n",
+ "5 202 1 1 6 2\n",
+ "6 206 4 4 17 18\n",
+ "7 210 2 2 5 2"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "2. 이력 테이블 조회해서 교차로별로 유닉스시간 최대인 데이터(교차로번호, 종료유닉스타임)만 수집 : B\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " end_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 1867 | \n",
+ " 175 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1869 | \n",
+ " 176 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 1866 | \n",
+ " 177 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1871 | \n",
+ " 178 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 1870 | \n",
+ " 201 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 1872 | \n",
+ " 202 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 1868 | \n",
+ " 206 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 1873 | \n",
+ " 210 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no end_unix\n",
+ "1867 175 1704417790\n",
+ "1869 176 1704417810\n",
+ "1866 177 1704417790\n",
+ "1871 178 1704417870\n",
+ "1870 201 1704417870\n",
+ "1872 202 1704417900\n",
+ "1868 206 1704417800\n",
+ "1873 210 1704417921"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "3. 상태 테이블 조회정보(A)와 이력 테이블 조회정보(B) 조인(키값 : 교차로번호) : C\n",
+ "4. C데이터 프레임에 신규 컬럼(시작 유닉스타임) 생성 후 종료유닉스 타임 값 입력, 종료 유닉스 타임 컬럼 제거\n",
+ "\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ " start_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B start_unix\n",
+ "0 175 3 4 6 2 1704417790\n",
+ "1 176 2 2 8 3 1704417810\n",
+ "2 177 2 2 7 3 1704417790\n",
+ "3 178 1 1 8 4 1704417870\n",
+ "4 201 2 2 5 2 1704417870\n",
+ "5 202 1 1 6 2 1704417900\n",
+ "6 206 4 4 17 18 1704417800\n",
+ "7 210 2 2 5 2 1704417921"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "5. 이동류 이력정보 READ\n",
+ " - CSV 파일로 서버에 저장된 이동류정보를 읽어옴(파일이 없는 경우에는 데이터가 없는 프레임 D 생성\n",
+ "6. 이동류 이력정보 데이터테이블(D)에 C데이터 add\n",
+ "7. D데이터 프레임에서 중복데이터 제거(교차로번호, 시작 유닉스타임, A링 현시번호, B링 현시번호 같은 행은 제거)\n",
+ "8. D데이터 보관 시간 기준시간을 시작 유닉스 타임의 최대값 - self.subtractor // 2을 값으로 산출하고, 보관 시간 기준시간보다 작은 시작 유닉스 타임을 가진 행은 모두 제거(1시간 데이터만 보관)\n",
+ "\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ " start_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417740 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 18 | \n",
+ " 1704417740 | \n",
+ "
\n",
+ " \n",
+ " 8 | \n",
+ " 201 | \n",
+ " 5 | \n",
+ " 5 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 9 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 10 | \n",
+ " 206 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 11 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 12 | \n",
+ " 178 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 13 | \n",
+ " 201 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 14 | \n",
+ " 202 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 15 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " 2 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ " 16 | \n",
+ " 206 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 17 | \n",
+ " 176 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 18 | \n",
+ " 177 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 19 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 20 | \n",
+ " 201 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 21 | \n",
+ " 210 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B start_unix\n",
+ "0 175 2 2 7 3 1704417790\n",
+ "1 176 1 1 8 4 1704417810\n",
+ "2 177 1 1 8 4 1704417790\n",
+ "3 178 4 4 6 1 1704417870\n",
+ "4 201 4 4 6 1 1704417870\n",
+ "5 202 2 2 17 18 1704417740\n",
+ "6 206 2 2 17 18 1704417800\n",
+ "7 210 1 1 6 18 1704417740\n",
+ "8 201 5 5 7 4 1704417870\n",
+ "9 202 2 2 17 18 1704417900\n",
+ "10 206 3 3 8 4 1704417800\n",
+ "11 175 3 3 6 1 1704417790\n",
+ "12 178 1 1 8 4 1704417870\n",
+ "13 201 1 1 8 3 1704417870\n",
+ "14 202 1 1 6 2 1704417900\n",
+ "15 210 1 2 6 2 1704417921\n",
+ "16 206 4 4 17 18 1704417800\n",
+ "17 176 2 2 8 3 1704417810\n",
+ "18 177 2 2 7 3 1704417790\n",
+ "19 175 3 4 6 2 1704417790\n",
+ "20 201 2 2 5 2 1704417870\n",
+ "21 210 2 2 5 2 1704417921"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "i=10 1704417950\n",
+ "1. 상태 테이블 조회해서 전체 데이터중 필요데이터(교차로번호, A링 현시번호, A링 이동류번호, B링 현시번호, B링 이동류번호)만 수집 : A\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B\n",
+ "0 175 3 4 6 2\n",
+ "1 176 2 2 8 3\n",
+ "2 177 2 2 7 3\n",
+ "3 178 1 1 8 4\n",
+ "4 201 2 2 5 2\n",
+ "5 202 1 1 6 2\n",
+ "6 206 4 4 17 18\n",
+ "7 210 2 2 5 2"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "2. 이력 테이블 조회해서 교차로별로 유닉스시간 최대인 데이터(교차로번호, 종료유닉스타임)만 수집 : B\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " end_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 1867 | \n",
+ " 175 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1869 | \n",
+ " 176 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 1866 | \n",
+ " 177 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1871 | \n",
+ " 178 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 1870 | \n",
+ " 201 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 1872 | \n",
+ " 202 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 1868 | \n",
+ " 206 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 1873 | \n",
+ " 210 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no end_unix\n",
+ "1867 175 1704417790\n",
+ "1869 176 1704417810\n",
+ "1866 177 1704417790\n",
+ "1871 178 1704417870\n",
+ "1870 201 1704417870\n",
+ "1872 202 1704417900\n",
+ "1868 206 1704417800\n",
+ "1873 210 1704417921"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "3. 상태 테이블 조회정보(A)와 이력 테이블 조회정보(B) 조인(키값 : 교차로번호) : C\n",
+ "4. C데이터 프레임에 신규 컬럼(시작 유닉스타임) 생성 후 종료유닉스 타임 값 입력, 종료 유닉스 타임 컬럼 제거\n",
+ "\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ " start_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B start_unix\n",
+ "0 175 3 4 6 2 1704417790\n",
+ "1 176 2 2 8 3 1704417810\n",
+ "2 177 2 2 7 3 1704417790\n",
+ "3 178 1 1 8 4 1704417870\n",
+ "4 201 2 2 5 2 1704417870\n",
+ "5 202 1 1 6 2 1704417900\n",
+ "6 206 4 4 17 18 1704417800\n",
+ "7 210 2 2 5 2 1704417921"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "5. 이동류 이력정보 READ\n",
+ " - CSV 파일로 서버에 저장된 이동류정보를 읽어옴(파일이 없는 경우에는 데이터가 없는 프레임 D 생성\n",
+ "6. 이동류 이력정보 데이터테이블(D)에 C데이터 add\n",
+ "7. D데이터 프레임에서 중복데이터 제거(교차로번호, 시작 유닉스타임, A링 현시번호, B링 현시번호 같은 행은 제거)\n",
+ "8. D데이터 보관 시간 기준시간을 시작 유닉스 타임의 최대값 - self.subtractor // 2을 값으로 산출하고, 보관 시간 기준시간보다 작은 시작 유닉스 타임을 가진 행은 모두 제거(1시간 데이터만 보관)\n",
+ "\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ " start_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417740 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 18 | \n",
+ " 1704417740 | \n",
+ "
\n",
+ " \n",
+ " 8 | \n",
+ " 201 | \n",
+ " 5 | \n",
+ " 5 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 9 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 10 | \n",
+ " 206 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 11 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 12 | \n",
+ " 178 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 13 | \n",
+ " 201 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 14 | \n",
+ " 202 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 15 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " 2 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ " 16 | \n",
+ " 206 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 17 | \n",
+ " 176 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 18 | \n",
+ " 177 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 19 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 20 | \n",
+ " 201 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 21 | \n",
+ " 210 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B start_unix\n",
+ "0 175 2 2 7 3 1704417790\n",
+ "1 176 1 1 8 4 1704417810\n",
+ "2 177 1 1 8 4 1704417790\n",
+ "3 178 4 4 6 1 1704417870\n",
+ "4 201 4 4 6 1 1704417870\n",
+ "5 202 2 2 17 18 1704417740\n",
+ "6 206 2 2 17 18 1704417800\n",
+ "7 210 1 1 6 18 1704417740\n",
+ "8 201 5 5 7 4 1704417870\n",
+ "9 202 2 2 17 18 1704417900\n",
+ "10 206 3 3 8 4 1704417800\n",
+ "11 175 3 3 6 1 1704417790\n",
+ "12 178 1 1 8 4 1704417870\n",
+ "13 201 1 1 8 3 1704417870\n",
+ "14 202 1 1 6 2 1704417900\n",
+ "15 210 1 2 6 2 1704417921\n",
+ "16 206 4 4 17 18 1704417800\n",
+ "17 176 2 2 8 3 1704417810\n",
+ "18 177 2 2 7 3 1704417790\n",
+ "19 175 3 4 6 2 1704417790\n",
+ "20 201 2 2 5 2 1704417870\n",
+ "21 210 2 2 5 2 1704417921"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "i=11 1704417955\n",
+ "1. 상태 테이블 조회해서 전체 데이터중 필요데이터(교차로번호, A링 현시번호, A링 이동류번호, B링 현시번호, B링 이동류번호)만 수집 : A\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B\n",
+ "0 175 3 4 6 2\n",
+ "1 176 2 2 8 3\n",
+ "2 177 2 2 7 3\n",
+ "3 178 1 1 8 4\n",
+ "4 201 2 2 5 2\n",
+ "5 202 1 1 6 2\n",
+ "6 206 4 4 17 18\n",
+ "7 210 2 2 5 2"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "2. 이력 테이블 조회해서 교차로별로 유닉스시간 최대인 데이터(교차로번호, 종료유닉스타임)만 수집 : B\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " end_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 1867 | \n",
+ " 175 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1869 | \n",
+ " 176 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 1866 | \n",
+ " 177 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1871 | \n",
+ " 178 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 1870 | \n",
+ " 201 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 1872 | \n",
+ " 202 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 1874 | \n",
+ " 206 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 1873 | \n",
+ " 210 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no end_unix\n",
+ "1867 175 1704417790\n",
+ "1869 176 1704417810\n",
+ "1866 177 1704417790\n",
+ "1871 178 1704417870\n",
+ "1870 201 1704417870\n",
+ "1872 202 1704417900\n",
+ "1874 206 1704417950\n",
+ "1873 210 1704417921"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "3. 상태 테이블 조회정보(A)와 이력 테이블 조회정보(B) 조인(키값 : 교차로번호) : C\n",
+ "4. C데이터 프레임에 신규 컬럼(시작 유닉스타임) 생성 후 종료유닉스 타임 값 입력, 종료 유닉스 타임 컬럼 제거\n",
+ "\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ " start_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B start_unix\n",
+ "0 175 3 4 6 2 1704417790\n",
+ "1 176 2 2 8 3 1704417810\n",
+ "2 177 2 2 7 3 1704417790\n",
+ "3 178 1 1 8 4 1704417870\n",
+ "4 201 2 2 5 2 1704417870\n",
+ "5 202 1 1 6 2 1704417900\n",
+ "6 206 4 4 17 18 1704417950\n",
+ "7 210 2 2 5 2 1704417921"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "5. 이동류 이력정보 READ\n",
+ " - CSV 파일로 서버에 저장된 이동류정보를 읽어옴(파일이 없는 경우에는 데이터가 없는 프레임 D 생성\n",
+ "6. 이동류 이력정보 데이터테이블(D)에 C데이터 add\n",
+ "7. D데이터 프레임에서 중복데이터 제거(교차로번호, 시작 유닉스타임, A링 현시번호, B링 현시번호 같은 행은 제거)\n",
+ "8. D데이터 보관 시간 기준시간을 시작 유닉스 타임의 최대값 - self.subtractor // 2을 값으로 산출하고, 보관 시간 기준시간보다 작은 시작 유닉스 타임을 가진 행은 모두 제거(1시간 데이터만 보관)\n",
+ "\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ " start_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417740 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 18 | \n",
+ " 1704417740 | \n",
+ "
\n",
+ " \n",
+ " 8 | \n",
+ " 201 | \n",
+ " 5 | \n",
+ " 5 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 9 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 10 | \n",
+ " 206 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 11 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 12 | \n",
+ " 178 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 13 | \n",
+ " 201 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 14 | \n",
+ " 202 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 15 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " 2 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ " 16 | \n",
+ " 206 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 17 | \n",
+ " 176 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 18 | \n",
+ " 177 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 19 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 20 | \n",
+ " 201 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 21 | \n",
+ " 210 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ " 22 | \n",
+ " 206 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B start_unix\n",
+ "0 175 2 2 7 3 1704417790\n",
+ "1 176 1 1 8 4 1704417810\n",
+ "2 177 1 1 8 4 1704417790\n",
+ "3 178 4 4 6 1 1704417870\n",
+ "4 201 4 4 6 1 1704417870\n",
+ "5 202 2 2 17 18 1704417740\n",
+ "6 206 2 2 17 18 1704417800\n",
+ "7 210 1 1 6 18 1704417740\n",
+ "8 201 5 5 7 4 1704417870\n",
+ "9 202 2 2 17 18 1704417900\n",
+ "10 206 3 3 8 4 1704417800\n",
+ "11 175 3 3 6 1 1704417790\n",
+ "12 178 1 1 8 4 1704417870\n",
+ "13 201 1 1 8 3 1704417870\n",
+ "14 202 1 1 6 2 1704417900\n",
+ "15 210 1 2 6 2 1704417921\n",
+ "16 206 4 4 17 18 1704417800\n",
+ "17 176 2 2 8 3 1704417810\n",
+ "18 177 2 2 7 3 1704417790\n",
+ "19 175 3 4 6 2 1704417790\n",
+ "20 201 2 2 5 2 1704417870\n",
+ "21 210 2 2 5 2 1704417921\n",
+ "22 206 4 4 17 18 1704417950"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "i=12 1704417960\n",
+ "1. 상태 테이블 조회해서 전체 데이터중 필요데이터(교차로번호, A링 현시번호, A링 이동류번호, B링 현시번호, B링 이동류번호)만 수집 : A\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B\n",
+ "0 175 3 4 6 2\n",
+ "1 176 2 2 8 3\n",
+ "2 177 3 3 17 18\n",
+ "3 178 2 2 7 3\n",
+ "4 201 2 2 5 2\n",
+ "5 202 2 2 17 18\n",
+ "6 206 1 1 8 4\n",
+ "7 210 2 2 5 2"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "2. 이력 테이블 조회해서 교차로별로 유닉스시간 최대인 데이터(교차로번호, 종료유닉스타임)만 수집 : B\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " end_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 1867 | \n",
+ " 175 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1869 | \n",
+ " 176 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 1866 | \n",
+ " 177 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1871 | \n",
+ " 178 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 1870 | \n",
+ " 201 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 1872 | \n",
+ " 202 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 1874 | \n",
+ " 206 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 1873 | \n",
+ " 210 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no end_unix\n",
+ "1867 175 1704417790\n",
+ "1869 176 1704417810\n",
+ "1866 177 1704417790\n",
+ "1871 178 1704417870\n",
+ "1870 201 1704417870\n",
+ "1872 202 1704417900\n",
+ "1874 206 1704417950\n",
+ "1873 210 1704417921"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "3. 상태 테이블 조회정보(A)와 이력 테이블 조회정보(B) 조인(키값 : 교차로번호) : C\n",
+ "4. C데이터 프레임에 신규 컬럼(시작 유닉스타임) 생성 후 종료유닉스 타임 값 입력, 종료 유닉스 타임 컬럼 제거\n",
+ "\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ " start_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B start_unix\n",
+ "0 175 3 4 6 2 1704417790\n",
+ "1 176 2 2 8 3 1704417810\n",
+ "2 177 3 3 17 18 1704417790\n",
+ "3 178 2 2 7 3 1704417870\n",
+ "4 201 2 2 5 2 1704417870\n",
+ "5 202 2 2 17 18 1704417900\n",
+ "6 206 1 1 8 4 1704417950\n",
+ "7 210 2 2 5 2 1704417921"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "5. 이동류 이력정보 READ\n",
+ " - CSV 파일로 서버에 저장된 이동류정보를 읽어옴(파일이 없는 경우에는 데이터가 없는 프레임 D 생성\n",
+ "6. 이동류 이력정보 데이터테이블(D)에 C데이터 add\n",
+ "7. D데이터 프레임에서 중복데이터 제거(교차로번호, 시작 유닉스타임, A링 현시번호, B링 현시번호 같은 행은 제거)\n",
+ "8. D데이터 보관 시간 기준시간을 시작 유닉스 타임의 최대값 - self.subtractor // 2을 값으로 산출하고, 보관 시간 기준시간보다 작은 시작 유닉스 타임을 가진 행은 모두 제거(1시간 데이터만 보관)\n",
+ "\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ " start_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417740 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 18 | \n",
+ " 1704417740 | \n",
+ "
\n",
+ " \n",
+ " 8 | \n",
+ " 201 | \n",
+ " 5 | \n",
+ " 5 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 9 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 10 | \n",
+ " 206 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 11 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 12 | \n",
+ " 178 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 13 | \n",
+ " 201 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 14 | \n",
+ " 202 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 15 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " 2 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ " 16 | \n",
+ " 206 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 17 | \n",
+ " 176 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 18 | \n",
+ " 177 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 19 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 20 | \n",
+ " 201 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 21 | \n",
+ " 210 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ " 22 | \n",
+ " 206 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 23 | \n",
+ " 177 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 24 | \n",
+ " 178 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 25 | \n",
+ " 206 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B start_unix\n",
+ "0 175 2 2 7 3 1704417790\n",
+ "1 176 1 1 8 4 1704417810\n",
+ "2 177 1 1 8 4 1704417790\n",
+ "3 178 4 4 6 1 1704417870\n",
+ "4 201 4 4 6 1 1704417870\n",
+ "5 202 2 2 17 18 1704417740\n",
+ "6 206 2 2 17 18 1704417800\n",
+ "7 210 1 1 6 18 1704417740\n",
+ "8 201 5 5 7 4 1704417870\n",
+ "9 202 2 2 17 18 1704417900\n",
+ "10 206 3 3 8 4 1704417800\n",
+ "11 175 3 3 6 1 1704417790\n",
+ "12 178 1 1 8 4 1704417870\n",
+ "13 201 1 1 8 3 1704417870\n",
+ "14 202 1 1 6 2 1704417900\n",
+ "15 210 1 2 6 2 1704417921\n",
+ "16 206 4 4 17 18 1704417800\n",
+ "17 176 2 2 8 3 1704417810\n",
+ "18 177 2 2 7 3 1704417790\n",
+ "19 175 3 4 6 2 1704417790\n",
+ "20 201 2 2 5 2 1704417870\n",
+ "21 210 2 2 5 2 1704417921\n",
+ "22 206 4 4 17 18 1704417950\n",
+ "23 177 3 3 17 18 1704417790\n",
+ "24 178 2 2 7 3 1704417870\n",
+ "25 206 1 1 8 4 1704417950"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "i=13 1704417965\n",
+ "1. 상태 테이블 조회해서 전체 데이터중 필요데이터(교차로번호, A링 현시번호, A링 이동류번호, B링 현시번호, B링 이동류번호)만 수집 : A\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B\n",
+ "0 175 3 4 6 2\n",
+ "1 176 2 2 8 3\n",
+ "2 177 3 3 17 18\n",
+ "3 178 2 2 7 3\n",
+ "4 201 2 2 5 2\n",
+ "5 202 2 2 17 18\n",
+ "6 206 1 1 8 4\n",
+ "7 210 2 2 5 2"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "2. 이력 테이블 조회해서 교차로별로 유닉스시간 최대인 데이터(교차로번호, 종료유닉스타임)만 수집 : B\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " end_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 1867 | \n",
+ " 175 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1869 | \n",
+ " 176 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 1866 | \n",
+ " 177 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1871 | \n",
+ " 178 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 1870 | \n",
+ " 201 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 1872 | \n",
+ " 202 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 1874 | \n",
+ " 206 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 1873 | \n",
+ " 210 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no end_unix\n",
+ "1867 175 1704417790\n",
+ "1869 176 1704417810\n",
+ "1866 177 1704417790\n",
+ "1871 178 1704417870\n",
+ "1870 201 1704417870\n",
+ "1872 202 1704417900\n",
+ "1874 206 1704417950\n",
+ "1873 210 1704417921"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "3. 상태 테이블 조회정보(A)와 이력 테이블 조회정보(B) 조인(키값 : 교차로번호) : C\n",
+ "4. C데이터 프레임에 신규 컬럼(시작 유닉스타임) 생성 후 종료유닉스 타임 값 입력, 종료 유닉스 타임 컬럼 제거\n",
+ "\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ " start_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B start_unix\n",
+ "0 175 3 4 6 2 1704417790\n",
+ "1 176 2 2 8 3 1704417810\n",
+ "2 177 3 3 17 18 1704417790\n",
+ "3 178 2 2 7 3 1704417870\n",
+ "4 201 2 2 5 2 1704417870\n",
+ "5 202 2 2 17 18 1704417900\n",
+ "6 206 1 1 8 4 1704417950\n",
+ "7 210 2 2 5 2 1704417921"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "5. 이동류 이력정보 READ\n",
+ " - CSV 파일로 서버에 저장된 이동류정보를 읽어옴(파일이 없는 경우에는 데이터가 없는 프레임 D 생성\n",
+ "6. 이동류 이력정보 데이터테이블(D)에 C데이터 add\n",
+ "7. D데이터 프레임에서 중복데이터 제거(교차로번호, 시작 유닉스타임, A링 현시번호, B링 현시번호 같은 행은 제거)\n",
+ "8. D데이터 보관 시간 기준시간을 시작 유닉스 타임의 최대값 - self.subtractor // 2을 값으로 산출하고, 보관 시간 기준시간보다 작은 시작 유닉스 타임을 가진 행은 모두 제거(1시간 데이터만 보관)\n",
+ "\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ " start_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417740 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 18 | \n",
+ " 1704417740 | \n",
+ "
\n",
+ " \n",
+ " 8 | \n",
+ " 201 | \n",
+ " 5 | \n",
+ " 5 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 9 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 10 | \n",
+ " 206 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 11 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 12 | \n",
+ " 178 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 13 | \n",
+ " 201 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 14 | \n",
+ " 202 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 15 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " 2 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ " 16 | \n",
+ " 206 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 17 | \n",
+ " 176 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 18 | \n",
+ " 177 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 19 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 20 | \n",
+ " 201 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 21 | \n",
+ " 210 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ " 22 | \n",
+ " 206 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 23 | \n",
+ " 177 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 24 | \n",
+ " 178 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 25 | \n",
+ " 206 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B start_unix\n",
+ "0 175 2 2 7 3 1704417790\n",
+ "1 176 1 1 8 4 1704417810\n",
+ "2 177 1 1 8 4 1704417790\n",
+ "3 178 4 4 6 1 1704417870\n",
+ "4 201 4 4 6 1 1704417870\n",
+ "5 202 2 2 17 18 1704417740\n",
+ "6 206 2 2 17 18 1704417800\n",
+ "7 210 1 1 6 18 1704417740\n",
+ "8 201 5 5 7 4 1704417870\n",
+ "9 202 2 2 17 18 1704417900\n",
+ "10 206 3 3 8 4 1704417800\n",
+ "11 175 3 3 6 1 1704417790\n",
+ "12 178 1 1 8 4 1704417870\n",
+ "13 201 1 1 8 3 1704417870\n",
+ "14 202 1 1 6 2 1704417900\n",
+ "15 210 1 2 6 2 1704417921\n",
+ "16 206 4 4 17 18 1704417800\n",
+ "17 176 2 2 8 3 1704417810\n",
+ "18 177 2 2 7 3 1704417790\n",
+ "19 175 3 4 6 2 1704417790\n",
+ "20 201 2 2 5 2 1704417870\n",
+ "21 210 2 2 5 2 1704417921\n",
+ "22 206 4 4 17 18 1704417950\n",
+ "23 177 3 3 17 18 1704417790\n",
+ "24 178 2 2 7 3 1704417870\n",
+ "25 206 1 1 8 4 1704417950"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "i=14 1704417970\n",
+ "1. 상태 테이블 조회해서 전체 데이터중 필요데이터(교차로번호, A링 현시번호, A링 이동류번호, B링 현시번호, B링 이동류번호)만 수집 : A\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B\n",
+ "0 175 3 4 6 2\n",
+ "1 176 2 2 8 3\n",
+ "2 177 3 3 17 18\n",
+ "3 178 2 2 7 3\n",
+ "4 201 3 3 6 2\n",
+ "5 202 2 2 17 18\n",
+ "6 206 1 1 8 4\n",
+ "7 210 2 2 5 2"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "2. 이력 테이블 조회해서 교차로별로 유닉스시간 최대인 데이터(교차로번호, 종료유닉스타임)만 수집 : B\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " end_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 1867 | \n",
+ " 175 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1869 | \n",
+ " 176 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 1866 | \n",
+ " 177 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1871 | \n",
+ " 178 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 1870 | \n",
+ " 201 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 1872 | \n",
+ " 202 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 1874 | \n",
+ " 206 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 1873 | \n",
+ " 210 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no end_unix\n",
+ "1867 175 1704417790\n",
+ "1869 176 1704417810\n",
+ "1866 177 1704417790\n",
+ "1871 178 1704417870\n",
+ "1870 201 1704417870\n",
+ "1872 202 1704417900\n",
+ "1874 206 1704417950\n",
+ "1873 210 1704417921"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "3. 상태 테이블 조회정보(A)와 이력 테이블 조회정보(B) 조인(키값 : 교차로번호) : C\n",
+ "4. C데이터 프레임에 신규 컬럼(시작 유닉스타임) 생성 후 종료유닉스 타임 값 입력, 종료 유닉스 타임 컬럼 제거\n",
+ "\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ " start_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B start_unix\n",
+ "0 175 3 4 6 2 1704417790\n",
+ "1 176 2 2 8 3 1704417810\n",
+ "2 177 3 3 17 18 1704417790\n",
+ "3 178 2 2 7 3 1704417870\n",
+ "4 201 3 3 6 2 1704417870\n",
+ "5 202 2 2 17 18 1704417900\n",
+ "6 206 1 1 8 4 1704417950\n",
+ "7 210 2 2 5 2 1704417921"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "5. 이동류 이력정보 READ\n",
+ " - CSV 파일로 서버에 저장된 이동류정보를 읽어옴(파일이 없는 경우에는 데이터가 없는 프레임 D 생성\n",
+ "6. 이동류 이력정보 데이터테이블(D)에 C데이터 add\n",
+ "7. D데이터 프레임에서 중복데이터 제거(교차로번호, 시작 유닉스타임, A링 현시번호, B링 현시번호 같은 행은 제거)\n",
+ "8. D데이터 보관 시간 기준시간을 시작 유닉스 타임의 최대값 - self.subtractor // 2을 값으로 산출하고, 보관 시간 기준시간보다 작은 시작 유닉스 타임을 가진 행은 모두 제거(1시간 데이터만 보관)\n",
+ "\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ " start_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417740 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 18 | \n",
+ " 1704417740 | \n",
+ "
\n",
+ " \n",
+ " 8 | \n",
+ " 201 | \n",
+ " 5 | \n",
+ " 5 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 9 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 10 | \n",
+ " 206 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 11 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 12 | \n",
+ " 178 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 13 | \n",
+ " 201 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 14 | \n",
+ " 202 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 15 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " 2 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ " 16 | \n",
+ " 206 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 17 | \n",
+ " 176 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 18 | \n",
+ " 177 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 19 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 20 | \n",
+ " 201 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 21 | \n",
+ " 210 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ " 22 | \n",
+ " 206 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 23 | \n",
+ " 177 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 24 | \n",
+ " 178 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 25 | \n",
+ " 206 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 26 | \n",
+ " 201 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B start_unix\n",
+ "0 175 2 2 7 3 1704417790\n",
+ "1 176 1 1 8 4 1704417810\n",
+ "2 177 1 1 8 4 1704417790\n",
+ "3 178 4 4 6 1 1704417870\n",
+ "4 201 4 4 6 1 1704417870\n",
+ "5 202 2 2 17 18 1704417740\n",
+ "6 206 2 2 17 18 1704417800\n",
+ "7 210 1 1 6 18 1704417740\n",
+ "8 201 5 5 7 4 1704417870\n",
+ "9 202 2 2 17 18 1704417900\n",
+ "10 206 3 3 8 4 1704417800\n",
+ "11 175 3 3 6 1 1704417790\n",
+ "12 178 1 1 8 4 1704417870\n",
+ "13 201 1 1 8 3 1704417870\n",
+ "14 202 1 1 6 2 1704417900\n",
+ "15 210 1 2 6 2 1704417921\n",
+ "16 206 4 4 17 18 1704417800\n",
+ "17 176 2 2 8 3 1704417810\n",
+ "18 177 2 2 7 3 1704417790\n",
+ "19 175 3 4 6 2 1704417790\n",
+ "20 201 2 2 5 2 1704417870\n",
+ "21 210 2 2 5 2 1704417921\n",
+ "22 206 4 4 17 18 1704417950\n",
+ "23 177 3 3 17 18 1704417790\n",
+ "24 178 2 2 7 3 1704417870\n",
+ "25 206 1 1 8 4 1704417950\n",
+ "26 201 3 3 6 2 1704417870"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "i=15 1704417975\n",
+ "1. 상태 테이블 조회해서 전체 데이터중 필요데이터(교차로번호, A링 현시번호, A링 이동류번호, B링 현시번호, B링 이동류번호)만 수집 : A\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B\n",
+ "0 175 4 4 5 2\n",
+ "1 176 2 2 8 3\n",
+ "2 177 3 3 17 18\n",
+ "3 178 2 2 7 3\n",
+ "4 201 3 3 6 2\n",
+ "5 202 2 2 17 18\n",
+ "6 206 1 1 8 4\n",
+ "7 210 3 3 7 4"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "2. 이력 테이블 조회해서 교차로별로 유닉스시간 최대인 데이터(교차로번호, 종료유닉스타임)만 수집 : B\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " end_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 1876 | \n",
+ " 175 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 1869 | \n",
+ " 176 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 1875 | \n",
+ " 177 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 1871 | \n",
+ " 178 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 1870 | \n",
+ " 201 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 1872 | \n",
+ " 202 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 1874 | \n",
+ " 206 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 1873 | \n",
+ " 210 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no end_unix\n",
+ "1876 175 1704417970\n",
+ "1869 176 1704417810\n",
+ "1875 177 1704417970\n",
+ "1871 178 1704417870\n",
+ "1870 201 1704417870\n",
+ "1872 202 1704417900\n",
+ "1874 206 1704417950\n",
+ "1873 210 1704417921"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "3. 상태 테이블 조회정보(A)와 이력 테이블 조회정보(B) 조인(키값 : 교차로번호) : C\n",
+ "4. C데이터 프레임에 신규 컬럼(시작 유닉스타임) 생성 후 종료유닉스 타임 값 입력, 종료 유닉스 타임 컬럼 제거\n",
+ "\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ " start_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B start_unix\n",
+ "0 175 4 4 5 2 1704417970\n",
+ "1 176 2 2 8 3 1704417810\n",
+ "2 177 3 3 17 18 1704417970\n",
+ "3 178 2 2 7 3 1704417870\n",
+ "4 201 3 3 6 2 1704417870\n",
+ "5 202 2 2 17 18 1704417900\n",
+ "6 206 1 1 8 4 1704417950\n",
+ "7 210 3 3 7 4 1704417921"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "5. 이동류 이력정보 READ\n",
+ " - CSV 파일로 서버에 저장된 이동류정보를 읽어옴(파일이 없는 경우에는 데이터가 없는 프레임 D 생성\n",
+ "6. 이동류 이력정보 데이터테이블(D)에 C데이터 add\n",
+ "7. D데이터 프레임에서 중복데이터 제거(교차로번호, 시작 유닉스타임, A링 현시번호, B링 현시번호 같은 행은 제거)\n",
+ "8. D데이터 보관 시간 기준시간을 시작 유닉스 타임의 최대값 - self.subtractor // 2을 값으로 산출하고, 보관 시간 기준시간보다 작은 시작 유닉스 타임을 가진 행은 모두 제거(1시간 데이터만 보관)\n",
+ "\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ " start_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417740 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 18 | \n",
+ " 1704417740 | \n",
+ "
\n",
+ " \n",
+ " 8 | \n",
+ " 201 | \n",
+ " 5 | \n",
+ " 5 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 9 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 10 | \n",
+ " 206 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 11 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 12 | \n",
+ " 178 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 13 | \n",
+ " 201 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 14 | \n",
+ " 202 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 15 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " 2 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ " 16 | \n",
+ " 206 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 17 | \n",
+ " 176 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 18 | \n",
+ " 177 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 19 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 20 | \n",
+ " 201 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 21 | \n",
+ " 210 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ " 22 | \n",
+ " 206 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 23 | \n",
+ " 177 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 24 | \n",
+ " 178 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 25 | \n",
+ " 206 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 26 | \n",
+ " 201 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 27 | \n",
+ " 175 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 28 | \n",
+ " 177 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 29 | \n",
+ " 210 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B start_unix\n",
+ "0 175 2 2 7 3 1704417790\n",
+ "1 176 1 1 8 4 1704417810\n",
+ "2 177 1 1 8 4 1704417790\n",
+ "3 178 4 4 6 1 1704417870\n",
+ "4 201 4 4 6 1 1704417870\n",
+ "5 202 2 2 17 18 1704417740\n",
+ "6 206 2 2 17 18 1704417800\n",
+ "7 210 1 1 6 18 1704417740\n",
+ "8 201 5 5 7 4 1704417870\n",
+ "9 202 2 2 17 18 1704417900\n",
+ "10 206 3 3 8 4 1704417800\n",
+ "11 175 3 3 6 1 1704417790\n",
+ "12 178 1 1 8 4 1704417870\n",
+ "13 201 1 1 8 3 1704417870\n",
+ "14 202 1 1 6 2 1704417900\n",
+ "15 210 1 2 6 2 1704417921\n",
+ "16 206 4 4 17 18 1704417800\n",
+ "17 176 2 2 8 3 1704417810\n",
+ "18 177 2 2 7 3 1704417790\n",
+ "19 175 3 4 6 2 1704417790\n",
+ "20 201 2 2 5 2 1704417870\n",
+ "21 210 2 2 5 2 1704417921\n",
+ "22 206 4 4 17 18 1704417950\n",
+ "23 177 3 3 17 18 1704417790\n",
+ "24 178 2 2 7 3 1704417870\n",
+ "25 206 1 1 8 4 1704417950\n",
+ "26 201 3 3 6 2 1704417870\n",
+ "27 175 4 4 5 2 1704417970\n",
+ "28 177 3 3 17 18 1704417970\n",
+ "29 210 3 3 7 4 1704417921"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "i=16 1704417980\n",
+ "1. 상태 테이블 조회해서 전체 데이터중 필요데이터(교차로번호, A링 현시번호, A링 이동류번호, B링 현시번호, B링 이동류번호)만 수집 : A\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B\n",
+ "0 175 4 4 5 2\n",
+ "1 176 2 2 8 3\n",
+ "2 177 3 3 17 18\n",
+ "3 178 2 2 7 3\n",
+ "4 201 3 3 6 2\n",
+ "5 202 2 2 17 18\n",
+ "6 206 1 1 8 4\n",
+ "7 210 3 3 7 4"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "2. 이력 테이블 조회해서 교차로별로 유닉스시간 최대인 데이터(교차로번호, 종료유닉스타임)만 수집 : B\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " end_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 1876 | \n",
+ " 175 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 1869 | \n",
+ " 176 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 1875 | \n",
+ " 177 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 1871 | \n",
+ " 178 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 1870 | \n",
+ " 201 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 1872 | \n",
+ " 202 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 1874 | \n",
+ " 206 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 1873 | \n",
+ " 210 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no end_unix\n",
+ "1876 175 1704417970\n",
+ "1869 176 1704417810\n",
+ "1875 177 1704417970\n",
+ "1871 178 1704417870\n",
+ "1870 201 1704417870\n",
+ "1872 202 1704417900\n",
+ "1874 206 1704417950\n",
+ "1873 210 1704417921"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "3. 상태 테이블 조회정보(A)와 이력 테이블 조회정보(B) 조인(키값 : 교차로번호) : C\n",
+ "4. C데이터 프레임에 신규 컬럼(시작 유닉스타임) 생성 후 종료유닉스 타임 값 입력, 종료 유닉스 타임 컬럼 제거\n",
+ "\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ " start_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B start_unix\n",
+ "0 175 4 4 5 2 1704417970\n",
+ "1 176 2 2 8 3 1704417810\n",
+ "2 177 3 3 17 18 1704417970\n",
+ "3 178 2 2 7 3 1704417870\n",
+ "4 201 3 3 6 2 1704417870\n",
+ "5 202 2 2 17 18 1704417900\n",
+ "6 206 1 1 8 4 1704417950\n",
+ "7 210 3 3 7 4 1704417921"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "5. 이동류 이력정보 READ\n",
+ " - CSV 파일로 서버에 저장된 이동류정보를 읽어옴(파일이 없는 경우에는 데이터가 없는 프레임 D 생성\n",
+ "6. 이동류 이력정보 데이터테이블(D)에 C데이터 add\n",
+ "7. D데이터 프레임에서 중복데이터 제거(교차로번호, 시작 유닉스타임, A링 현시번호, B링 현시번호 같은 행은 제거)\n",
+ "8. D데이터 보관 시간 기준시간을 시작 유닉스 타임의 최대값 - self.subtractor // 2을 값으로 산출하고, 보관 시간 기준시간보다 작은 시작 유닉스 타임을 가진 행은 모두 제거(1시간 데이터만 보관)\n",
+ "\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ " start_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417740 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 18 | \n",
+ " 1704417740 | \n",
+ "
\n",
+ " \n",
+ " 8 | \n",
+ " 201 | \n",
+ " 5 | \n",
+ " 5 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 9 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 10 | \n",
+ " 206 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 11 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 12 | \n",
+ " 178 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 13 | \n",
+ " 201 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 14 | \n",
+ " 202 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 15 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " 2 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ " 16 | \n",
+ " 206 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 17 | \n",
+ " 176 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 18 | \n",
+ " 177 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 19 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 20 | \n",
+ " 201 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 21 | \n",
+ " 210 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ " 22 | \n",
+ " 206 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 23 | \n",
+ " 177 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 24 | \n",
+ " 178 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 25 | \n",
+ " 206 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 26 | \n",
+ " 201 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 27 | \n",
+ " 175 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 28 | \n",
+ " 177 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 29 | \n",
+ " 210 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B start_unix\n",
+ "0 175 2 2 7 3 1704417790\n",
+ "1 176 1 1 8 4 1704417810\n",
+ "2 177 1 1 8 4 1704417790\n",
+ "3 178 4 4 6 1 1704417870\n",
+ "4 201 4 4 6 1 1704417870\n",
+ "5 202 2 2 17 18 1704417740\n",
+ "6 206 2 2 17 18 1704417800\n",
+ "7 210 1 1 6 18 1704417740\n",
+ "8 201 5 5 7 4 1704417870\n",
+ "9 202 2 2 17 18 1704417900\n",
+ "10 206 3 3 8 4 1704417800\n",
+ "11 175 3 3 6 1 1704417790\n",
+ "12 178 1 1 8 4 1704417870\n",
+ "13 201 1 1 8 3 1704417870\n",
+ "14 202 1 1 6 2 1704417900\n",
+ "15 210 1 2 6 2 1704417921\n",
+ "16 206 4 4 17 18 1704417800\n",
+ "17 176 2 2 8 3 1704417810\n",
+ "18 177 2 2 7 3 1704417790\n",
+ "19 175 3 4 6 2 1704417790\n",
+ "20 201 2 2 5 2 1704417870\n",
+ "21 210 2 2 5 2 1704417921\n",
+ "22 206 4 4 17 18 1704417950\n",
+ "23 177 3 3 17 18 1704417790\n",
+ "24 178 2 2 7 3 1704417870\n",
+ "25 206 1 1 8 4 1704417950\n",
+ "26 201 3 3 6 2 1704417870\n",
+ "27 175 4 4 5 2 1704417970\n",
+ "28 177 3 3 17 18 1704417970\n",
+ "29 210 3 3 7 4 1704417921"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "i=17 1704417985\n",
+ "1. 상태 테이블 조회해서 전체 데이터중 필요데이터(교차로번호, A링 현시번호, A링 이동류번호, B링 현시번호, B링 이동류번호)만 수집 : A\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B\n",
+ "0 175 4 4 5 2\n",
+ "1 176 2 2 8 3\n",
+ "2 177 3 3 17 18\n",
+ "3 178 2 2 7 3\n",
+ "4 201 4 4 6 1\n",
+ "5 202 2 2 17 18\n",
+ "6 206 1 1 8 4\n",
+ "7 210 3 3 7 4"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "2. 이력 테이블 조회해서 교차로별로 유닉스시간 최대인 데이터(교차로번호, 종료유닉스타임)만 수집 : B\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " end_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 1876 | \n",
+ " 175 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 1869 | \n",
+ " 176 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 1875 | \n",
+ " 177 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 1871 | \n",
+ " 178 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 1870 | \n",
+ " 201 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 1872 | \n",
+ " 202 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 1874 | \n",
+ " 206 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 1873 | \n",
+ " 210 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no end_unix\n",
+ "1876 175 1704417970\n",
+ "1869 176 1704417810\n",
+ "1875 177 1704417970\n",
+ "1871 178 1704417870\n",
+ "1870 201 1704417870\n",
+ "1872 202 1704417900\n",
+ "1874 206 1704417950\n",
+ "1873 210 1704417921"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "3. 상태 테이블 조회정보(A)와 이력 테이블 조회정보(B) 조인(키값 : 교차로번호) : C\n",
+ "4. C데이터 프레임에 신규 컬럼(시작 유닉스타임) 생성 후 종료유닉스 타임 값 입력, 종료 유닉스 타임 컬럼 제거\n",
+ "\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ " start_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B start_unix\n",
+ "0 175 4 4 5 2 1704417970\n",
+ "1 176 2 2 8 3 1704417810\n",
+ "2 177 3 3 17 18 1704417970\n",
+ "3 178 2 2 7 3 1704417870\n",
+ "4 201 4 4 6 1 1704417870\n",
+ "5 202 2 2 17 18 1704417900\n",
+ "6 206 1 1 8 4 1704417950\n",
+ "7 210 3 3 7 4 1704417921"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "5. 이동류 이력정보 READ\n",
+ " - CSV 파일로 서버에 저장된 이동류정보를 읽어옴(파일이 없는 경우에는 데이터가 없는 프레임 D 생성\n",
+ "6. 이동류 이력정보 데이터테이블(D)에 C데이터 add\n",
+ "7. D데이터 프레임에서 중복데이터 제거(교차로번호, 시작 유닉스타임, A링 현시번호, B링 현시번호 같은 행은 제거)\n",
+ "8. D데이터 보관 시간 기준시간을 시작 유닉스 타임의 최대값 - self.subtractor // 2을 값으로 산출하고, 보관 시간 기준시간보다 작은 시작 유닉스 타임을 가진 행은 모두 제거(1시간 데이터만 보관)\n",
+ "\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ " start_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417740 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 18 | \n",
+ " 1704417740 | \n",
+ "
\n",
+ " \n",
+ " 8 | \n",
+ " 201 | \n",
+ " 5 | \n",
+ " 5 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 9 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 10 | \n",
+ " 206 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 11 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 12 | \n",
+ " 178 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 13 | \n",
+ " 201 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 14 | \n",
+ " 202 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 15 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " 2 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ " 16 | \n",
+ " 206 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 17 | \n",
+ " 176 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 18 | \n",
+ " 177 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 19 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 20 | \n",
+ " 201 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 21 | \n",
+ " 210 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ " 22 | \n",
+ " 206 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 23 | \n",
+ " 177 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 24 | \n",
+ " 178 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 25 | \n",
+ " 206 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 26 | \n",
+ " 201 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 27 | \n",
+ " 175 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 28 | \n",
+ " 177 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 29 | \n",
+ " 210 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B start_unix\n",
+ "0 175 2 2 7 3 1704417790\n",
+ "1 176 1 1 8 4 1704417810\n",
+ "2 177 1 1 8 4 1704417790\n",
+ "3 178 4 4 6 1 1704417870\n",
+ "4 201 4 4 6 1 1704417870\n",
+ "5 202 2 2 17 18 1704417740\n",
+ "6 206 2 2 17 18 1704417800\n",
+ "7 210 1 1 6 18 1704417740\n",
+ "8 201 5 5 7 4 1704417870\n",
+ "9 202 2 2 17 18 1704417900\n",
+ "10 206 3 3 8 4 1704417800\n",
+ "11 175 3 3 6 1 1704417790\n",
+ "12 178 1 1 8 4 1704417870\n",
+ "13 201 1 1 8 3 1704417870\n",
+ "14 202 1 1 6 2 1704417900\n",
+ "15 210 1 2 6 2 1704417921\n",
+ "16 206 4 4 17 18 1704417800\n",
+ "17 176 2 2 8 3 1704417810\n",
+ "18 177 2 2 7 3 1704417790\n",
+ "19 175 3 4 6 2 1704417790\n",
+ "20 201 2 2 5 2 1704417870\n",
+ "21 210 2 2 5 2 1704417921\n",
+ "22 206 4 4 17 18 1704417950\n",
+ "23 177 3 3 17 18 1704417790\n",
+ "24 178 2 2 7 3 1704417870\n",
+ "25 206 1 1 8 4 1704417950\n",
+ "26 201 3 3 6 2 1704417870\n",
+ "27 175 4 4 5 2 1704417970\n",
+ "28 177 3 3 17 18 1704417970\n",
+ "29 210 3 3 7 4 1704417921"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "i=18 1704417990\n",
+ "1. 상태 테이블 조회해서 전체 데이터중 필요데이터(교차로번호, A링 현시번호, A링 이동류번호, B링 현시번호, B링 이동류번호)만 수집 : A\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B\n",
+ "0 175 4 4 5 2\n",
+ "1 176 2 2 8 3\n",
+ "2 177 3 3 17 18\n",
+ "3 178 2 2 7 3\n",
+ "4 201 4 4 6 1\n",
+ "5 202 2 2 17 18\n",
+ "6 206 1 1 8 4\n",
+ "7 210 3 3 7 4"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "2. 이력 테이블 조회해서 교차로별로 유닉스시간 최대인 데이터(교차로번호, 종료유닉스타임)만 수집 : B\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " end_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 1876 | \n",
+ " 175 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 1869 | \n",
+ " 176 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 1875 | \n",
+ " 177 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 1871 | \n",
+ " 178 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 1870 | \n",
+ " 201 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 1872 | \n",
+ " 202 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 1874 | \n",
+ " 206 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 1873 | \n",
+ " 210 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no end_unix\n",
+ "1876 175 1704417970\n",
+ "1869 176 1704417810\n",
+ "1875 177 1704417970\n",
+ "1871 178 1704417870\n",
+ "1870 201 1704417870\n",
+ "1872 202 1704417900\n",
+ "1874 206 1704417950\n",
+ "1873 210 1704417921"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "3. 상태 테이블 조회정보(A)와 이력 테이블 조회정보(B) 조인(키값 : 교차로번호) : C\n",
+ "4. C데이터 프레임에 신규 컬럼(시작 유닉스타임) 생성 후 종료유닉스 타임 값 입력, 종료 유닉스 타임 컬럼 제거\n",
+ "\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ " start_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B start_unix\n",
+ "0 175 4 4 5 2 1704417970\n",
+ "1 176 2 2 8 3 1704417810\n",
+ "2 177 3 3 17 18 1704417970\n",
+ "3 178 2 2 7 3 1704417870\n",
+ "4 201 4 4 6 1 1704417870\n",
+ "5 202 2 2 17 18 1704417900\n",
+ "6 206 1 1 8 4 1704417950\n",
+ "7 210 3 3 7 4 1704417921"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "5. 이동류 이력정보 READ\n",
+ " - CSV 파일로 서버에 저장된 이동류정보를 읽어옴(파일이 없는 경우에는 데이터가 없는 프레임 D 생성\n",
+ "6. 이동류 이력정보 데이터테이블(D)에 C데이터 add\n",
+ "7. D데이터 프레임에서 중복데이터 제거(교차로번호, 시작 유닉스타임, A링 현시번호, B링 현시번호 같은 행은 제거)\n",
+ "8. D데이터 보관 시간 기준시간을 시작 유닉스 타임의 최대값 - self.subtractor // 2을 값으로 산출하고, 보관 시간 기준시간보다 작은 시작 유닉스 타임을 가진 행은 모두 제거(1시간 데이터만 보관)\n",
+ "\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ " start_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417740 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 18 | \n",
+ " 1704417740 | \n",
+ "
\n",
+ " \n",
+ " 8 | \n",
+ " 201 | \n",
+ " 5 | \n",
+ " 5 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 9 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 10 | \n",
+ " 206 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 11 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 12 | \n",
+ " 178 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 13 | \n",
+ " 201 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 14 | \n",
+ " 202 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 15 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " 2 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ " 16 | \n",
+ " 206 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 17 | \n",
+ " 176 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 18 | \n",
+ " 177 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 19 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 20 | \n",
+ " 201 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 21 | \n",
+ " 210 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ " 22 | \n",
+ " 206 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 23 | \n",
+ " 177 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 24 | \n",
+ " 178 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 25 | \n",
+ " 206 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 26 | \n",
+ " 201 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 27 | \n",
+ " 175 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 28 | \n",
+ " 177 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 29 | \n",
+ " 210 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B start_unix\n",
+ "0 175 2 2 7 3 1704417790\n",
+ "1 176 1 1 8 4 1704417810\n",
+ "2 177 1 1 8 4 1704417790\n",
+ "3 178 4 4 6 1 1704417870\n",
+ "4 201 4 4 6 1 1704417870\n",
+ "5 202 2 2 17 18 1704417740\n",
+ "6 206 2 2 17 18 1704417800\n",
+ "7 210 1 1 6 18 1704417740\n",
+ "8 201 5 5 7 4 1704417870\n",
+ "9 202 2 2 17 18 1704417900\n",
+ "10 206 3 3 8 4 1704417800\n",
+ "11 175 3 3 6 1 1704417790\n",
+ "12 178 1 1 8 4 1704417870\n",
+ "13 201 1 1 8 3 1704417870\n",
+ "14 202 1 1 6 2 1704417900\n",
+ "15 210 1 2 6 2 1704417921\n",
+ "16 206 4 4 17 18 1704417800\n",
+ "17 176 2 2 8 3 1704417810\n",
+ "18 177 2 2 7 3 1704417790\n",
+ "19 175 3 4 6 2 1704417790\n",
+ "20 201 2 2 5 2 1704417870\n",
+ "21 210 2 2 5 2 1704417921\n",
+ "22 206 4 4 17 18 1704417950\n",
+ "23 177 3 3 17 18 1704417790\n",
+ "24 178 2 2 7 3 1704417870\n",
+ "25 206 1 1 8 4 1704417950\n",
+ "26 201 3 3 6 2 1704417870\n",
+ "27 175 4 4 5 2 1704417970\n",
+ "28 177 3 3 17 18 1704417970\n",
+ "29 210 3 3 7 4 1704417921"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "i=19 1704417995\n",
+ "1. 상태 테이블 조회해서 전체 데이터중 필요데이터(교차로번호, A링 현시번호, A링 이동류번호, B링 현시번호, B링 이동류번호)만 수집 : A\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B\n",
+ "0 175 4 4 5 2\n",
+ "1 176 2 2 8 3\n",
+ "2 177 3 3 17 18\n",
+ "3 178 2 2 7 3\n",
+ "4 201 4 4 6 1\n",
+ "5 202 2 2 17 18\n",
+ "6 206 2 2 17 18\n",
+ "7 210 3 3 7 4"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "2. 이력 테이블 조회해서 교차로별로 유닉스시간 최대인 데이터(교차로번호, 종료유닉스타임)만 수집 : B\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " end_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 1876 | \n",
+ " 175 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 1877 | \n",
+ " 176 | \n",
+ " 1704417990 | \n",
+ "
\n",
+ " \n",
+ " 1875 | \n",
+ " 177 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 1871 | \n",
+ " 178 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 1870 | \n",
+ " 201 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 1872 | \n",
+ " 202 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 1874 | \n",
+ " 206 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 1873 | \n",
+ " 210 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no end_unix\n",
+ "1876 175 1704417970\n",
+ "1877 176 1704417990\n",
+ "1875 177 1704417970\n",
+ "1871 178 1704417870\n",
+ "1870 201 1704417870\n",
+ "1872 202 1704417900\n",
+ "1874 206 1704417950\n",
+ "1873 210 1704417921"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "3. 상태 테이블 조회정보(A)와 이력 테이블 조회정보(B) 조인(키값 : 교차로번호) : C\n",
+ "4. C데이터 프레임에 신규 컬럼(시작 유닉스타임) 생성 후 종료유닉스 타임 값 입력, 종료 유닉스 타임 컬럼 제거\n",
+ "\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ " start_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417990 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B start_unix\n",
+ "0 175 4 4 5 2 1704417970\n",
+ "1 176 2 2 8 3 1704417990\n",
+ "2 177 3 3 17 18 1704417970\n",
+ "3 178 2 2 7 3 1704417870\n",
+ "4 201 4 4 6 1 1704417870\n",
+ "5 202 2 2 17 18 1704417900\n",
+ "6 206 2 2 17 18 1704417950\n",
+ "7 210 3 3 7 4 1704417921"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "5. 이동류 이력정보 READ\n",
+ " - CSV 파일로 서버에 저장된 이동류정보를 읽어옴(파일이 없는 경우에는 데이터가 없는 프레임 D 생성\n",
+ "6. 이동류 이력정보 데이터테이블(D)에 C데이터 add\n",
+ "7. D데이터 프레임에서 중복데이터 제거(교차로번호, 시작 유닉스타임, A링 현시번호, B링 현시번호 같은 행은 제거)\n",
+ "8. D데이터 보관 시간 기준시간을 시작 유닉스 타임의 최대값 - self.subtractor // 2을 값으로 산출하고, 보관 시간 기준시간보다 작은 시작 유닉스 타임을 가진 행은 모두 제거(1시간 데이터만 보관)\n",
+ "\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ " start_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417740 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 18 | \n",
+ " 1704417740 | \n",
+ "
\n",
+ " \n",
+ " 8 | \n",
+ " 201 | \n",
+ " 5 | \n",
+ " 5 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 9 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 10 | \n",
+ " 206 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 11 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 12 | \n",
+ " 178 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 13 | \n",
+ " 201 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 14 | \n",
+ " 202 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 15 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " 2 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ " 16 | \n",
+ " 206 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 17 | \n",
+ " 176 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 18 | \n",
+ " 177 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 19 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 20 | \n",
+ " 201 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 21 | \n",
+ " 210 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ " 22 | \n",
+ " 206 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 23 | \n",
+ " 177 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 24 | \n",
+ " 178 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 25 | \n",
+ " 206 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 26 | \n",
+ " 201 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 27 | \n",
+ " 175 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 28 | \n",
+ " 177 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 29 | \n",
+ " 210 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ " 30 | \n",
+ " 176 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417990 | \n",
+ "
\n",
+ " \n",
+ " 31 | \n",
+ " 206 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B start_unix\n",
+ "0 175 2 2 7 3 1704417790\n",
+ "1 176 1 1 8 4 1704417810\n",
+ "2 177 1 1 8 4 1704417790\n",
+ "3 178 4 4 6 1 1704417870\n",
+ "4 201 4 4 6 1 1704417870\n",
+ "5 202 2 2 17 18 1704417740\n",
+ "6 206 2 2 17 18 1704417800\n",
+ "7 210 1 1 6 18 1704417740\n",
+ "8 201 5 5 7 4 1704417870\n",
+ "9 202 2 2 17 18 1704417900\n",
+ "10 206 3 3 8 4 1704417800\n",
+ "11 175 3 3 6 1 1704417790\n",
+ "12 178 1 1 8 4 1704417870\n",
+ "13 201 1 1 8 3 1704417870\n",
+ "14 202 1 1 6 2 1704417900\n",
+ "15 210 1 2 6 2 1704417921\n",
+ "16 206 4 4 17 18 1704417800\n",
+ "17 176 2 2 8 3 1704417810\n",
+ "18 177 2 2 7 3 1704417790\n",
+ "19 175 3 4 6 2 1704417790\n",
+ "20 201 2 2 5 2 1704417870\n",
+ "21 210 2 2 5 2 1704417921\n",
+ "22 206 4 4 17 18 1704417950\n",
+ "23 177 3 3 17 18 1704417790\n",
+ "24 178 2 2 7 3 1704417870\n",
+ "25 206 1 1 8 4 1704417950\n",
+ "26 201 3 3 6 2 1704417870\n",
+ "27 175 4 4 5 2 1704417970\n",
+ "28 177 3 3 17 18 1704417970\n",
+ "29 210 3 3 7 4 1704417921\n",
+ "30 176 2 2 8 3 1704417990\n",
+ "31 206 2 2 17 18 1704417950"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "i=20 1704418000\n",
+ "1. 상태 테이블 조회해서 전체 데이터중 필요데이터(교차로번호, A링 현시번호, A링 이동류번호, B링 현시번호, B링 이동류번호)만 수집 : A\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B\n",
+ "0 175 1 1 8 4\n",
+ "1 176 2 2 8 3\n",
+ "2 177 3 3 17 18\n",
+ "3 178 3 3 5 2\n",
+ "4 201 4 4 6 1\n",
+ "5 202 2 2 17 18\n",
+ "6 206 2 2 17 18\n",
+ "7 210 3 3 7 4"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "2. 이력 테이블 조회해서 교차로별로 유닉스시간 최대인 데이터(교차로번호, 종료유닉스타임)만 수집 : B\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " end_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 1876 | \n",
+ " 175 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 1877 | \n",
+ " 176 | \n",
+ " 1704417990 | \n",
+ "
\n",
+ " \n",
+ " 1875 | \n",
+ " 177 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 1871 | \n",
+ " 178 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 1870 | \n",
+ " 201 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 1872 | \n",
+ " 202 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 1874 | \n",
+ " 206 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 1873 | \n",
+ " 210 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no end_unix\n",
+ "1876 175 1704417970\n",
+ "1877 176 1704417990\n",
+ "1875 177 1704417970\n",
+ "1871 178 1704417870\n",
+ "1870 201 1704417870\n",
+ "1872 202 1704417900\n",
+ "1874 206 1704417950\n",
+ "1873 210 1704417921"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "3. 상태 테이블 조회정보(A)와 이력 테이블 조회정보(B) 조인(키값 : 교차로번호) : C\n",
+ "4. C데이터 프레임에 신규 컬럼(시작 유닉스타임) 생성 후 종료유닉스 타임 값 입력, 종료 유닉스 타임 컬럼 제거\n",
+ "\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ " start_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417990 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B start_unix\n",
+ "0 175 1 1 8 4 1704417970\n",
+ "1 176 2 2 8 3 1704417990\n",
+ "2 177 3 3 17 18 1704417970\n",
+ "3 178 3 3 5 2 1704417870\n",
+ "4 201 4 4 6 1 1704417870\n",
+ "5 202 2 2 17 18 1704417900\n",
+ "6 206 2 2 17 18 1704417950\n",
+ "7 210 3 3 7 4 1704417921"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "5. 이동류 이력정보 READ\n",
+ " - CSV 파일로 서버에 저장된 이동류정보를 읽어옴(파일이 없는 경우에는 데이터가 없는 프레임 D 생성\n",
+ "6. 이동류 이력정보 데이터테이블(D)에 C데이터 add\n",
+ "7. D데이터 프레임에서 중복데이터 제거(교차로번호, 시작 유닉스타임, A링 현시번호, B링 현시번호 같은 행은 제거)\n",
+ "8. D데이터 보관 시간 기준시간을 시작 유닉스 타임의 최대값 - self.subtractor // 2을 값으로 산출하고, 보관 시간 기준시간보다 작은 시작 유닉스 타임을 가진 행은 모두 제거(1시간 데이터만 보관)\n",
+ "\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ " start_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417740 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 18 | \n",
+ " 1704417740 | \n",
+ "
\n",
+ " \n",
+ " 8 | \n",
+ " 201 | \n",
+ " 5 | \n",
+ " 5 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 9 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 10 | \n",
+ " 206 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 11 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 12 | \n",
+ " 178 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 13 | \n",
+ " 201 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 14 | \n",
+ " 202 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 15 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " 2 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ " 16 | \n",
+ " 206 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 17 | \n",
+ " 176 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 18 | \n",
+ " 177 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 19 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 20 | \n",
+ " 201 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 21 | \n",
+ " 210 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ " 22 | \n",
+ " 206 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 23 | \n",
+ " 177 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 24 | \n",
+ " 178 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 25 | \n",
+ " 206 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 26 | \n",
+ " 201 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 27 | \n",
+ " 175 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 28 | \n",
+ " 177 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 29 | \n",
+ " 210 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ " 30 | \n",
+ " 176 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417990 | \n",
+ "
\n",
+ " \n",
+ " 31 | \n",
+ " 206 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 32 | \n",
+ " 175 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 33 | \n",
+ " 178 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B start_unix\n",
+ "0 175 2 2 7 3 1704417790\n",
+ "1 176 1 1 8 4 1704417810\n",
+ "2 177 1 1 8 4 1704417790\n",
+ "3 178 4 4 6 1 1704417870\n",
+ "4 201 4 4 6 1 1704417870\n",
+ "5 202 2 2 17 18 1704417740\n",
+ "6 206 2 2 17 18 1704417800\n",
+ "7 210 1 1 6 18 1704417740\n",
+ "8 201 5 5 7 4 1704417870\n",
+ "9 202 2 2 17 18 1704417900\n",
+ "10 206 3 3 8 4 1704417800\n",
+ "11 175 3 3 6 1 1704417790\n",
+ "12 178 1 1 8 4 1704417870\n",
+ "13 201 1 1 8 3 1704417870\n",
+ "14 202 1 1 6 2 1704417900\n",
+ "15 210 1 2 6 2 1704417921\n",
+ "16 206 4 4 17 18 1704417800\n",
+ "17 176 2 2 8 3 1704417810\n",
+ "18 177 2 2 7 3 1704417790\n",
+ "19 175 3 4 6 2 1704417790\n",
+ "20 201 2 2 5 2 1704417870\n",
+ "21 210 2 2 5 2 1704417921\n",
+ "22 206 4 4 17 18 1704417950\n",
+ "23 177 3 3 17 18 1704417790\n",
+ "24 178 2 2 7 3 1704417870\n",
+ "25 206 1 1 8 4 1704417950\n",
+ "26 201 3 3 6 2 1704417870\n",
+ "27 175 4 4 5 2 1704417970\n",
+ "28 177 3 3 17 18 1704417970\n",
+ "29 210 3 3 7 4 1704417921\n",
+ "30 176 2 2 8 3 1704417990\n",
+ "31 206 2 2 17 18 1704417950\n",
+ "32 175 1 1 8 4 1704417970\n",
+ "33 178 3 3 5 2 1704417870"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "i=21 1704418005\n",
+ "1. 상태 테이블 조회해서 전체 데이터중 필요데이터(교차로번호, A링 현시번호, A링 이동류번호, B링 현시번호, B링 이동류번호)만 수집 : A\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B\n",
+ "0 175 1 1 8 4\n",
+ "1 176 2 2 8 3\n",
+ "2 177 3 3 17 18\n",
+ "3 178 3 3 5 2\n",
+ "4 201 4 4 6 1\n",
+ "5 202 2 2 17 18\n",
+ "6 206 2 2 17 18\n",
+ "7 210 3 3 7 4"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "2. 이력 테이블 조회해서 교차로별로 유닉스시간 최대인 데이터(교차로번호, 종료유닉스타임)만 수집 : B\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " end_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 1876 | \n",
+ " 175 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 1877 | \n",
+ " 176 | \n",
+ " 1704417990 | \n",
+ "
\n",
+ " \n",
+ " 1875 | \n",
+ " 177 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 1871 | \n",
+ " 178 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 1870 | \n",
+ " 201 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 1872 | \n",
+ " 202 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 1874 | \n",
+ " 206 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 1873 | \n",
+ " 210 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no end_unix\n",
+ "1876 175 1704417970\n",
+ "1877 176 1704417990\n",
+ "1875 177 1704417970\n",
+ "1871 178 1704417870\n",
+ "1870 201 1704417870\n",
+ "1872 202 1704417900\n",
+ "1874 206 1704417950\n",
+ "1873 210 1704417921"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "3. 상태 테이블 조회정보(A)와 이력 테이블 조회정보(B) 조인(키값 : 교차로번호) : C\n",
+ "4. C데이터 프레임에 신규 컬럼(시작 유닉스타임) 생성 후 종료유닉스 타임 값 입력, 종료 유닉스 타임 컬럼 제거\n",
+ "\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ " start_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417990 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B start_unix\n",
+ "0 175 1 1 8 4 1704417970\n",
+ "1 176 2 2 8 3 1704417990\n",
+ "2 177 3 3 17 18 1704417970\n",
+ "3 178 3 3 5 2 1704417870\n",
+ "4 201 4 4 6 1 1704417870\n",
+ "5 202 2 2 17 18 1704417900\n",
+ "6 206 2 2 17 18 1704417950\n",
+ "7 210 3 3 7 4 1704417921"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "5. 이동류 이력정보 READ\n",
+ " - CSV 파일로 서버에 저장된 이동류정보를 읽어옴(파일이 없는 경우에는 데이터가 없는 프레임 D 생성\n",
+ "6. 이동류 이력정보 데이터테이블(D)에 C데이터 add\n",
+ "7. D데이터 프레임에서 중복데이터 제거(교차로번호, 시작 유닉스타임, A링 현시번호, B링 현시번호 같은 행은 제거)\n",
+ "8. D데이터 보관 시간 기준시간을 시작 유닉스 타임의 최대값 - self.subtractor // 2을 값으로 산출하고, 보관 시간 기준시간보다 작은 시작 유닉스 타임을 가진 행은 모두 제거(1시간 데이터만 보관)\n",
+ "\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ " start_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417740 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 18 | \n",
+ " 1704417740 | \n",
+ "
\n",
+ " \n",
+ " 8 | \n",
+ " 201 | \n",
+ " 5 | \n",
+ " 5 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 9 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 10 | \n",
+ " 206 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 11 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 12 | \n",
+ " 178 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 13 | \n",
+ " 201 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 14 | \n",
+ " 202 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 15 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " 2 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ " 16 | \n",
+ " 206 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 17 | \n",
+ " 176 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 18 | \n",
+ " 177 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 19 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 20 | \n",
+ " 201 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 21 | \n",
+ " 210 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ " 22 | \n",
+ " 206 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 23 | \n",
+ " 177 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 24 | \n",
+ " 178 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 25 | \n",
+ " 206 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 26 | \n",
+ " 201 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 27 | \n",
+ " 175 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 28 | \n",
+ " 177 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 29 | \n",
+ " 210 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ " 30 | \n",
+ " 176 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417990 | \n",
+ "
\n",
+ " \n",
+ " 31 | \n",
+ " 206 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 32 | \n",
+ " 175 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 33 | \n",
+ " 178 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B start_unix\n",
+ "0 175 2 2 7 3 1704417790\n",
+ "1 176 1 1 8 4 1704417810\n",
+ "2 177 1 1 8 4 1704417790\n",
+ "3 178 4 4 6 1 1704417870\n",
+ "4 201 4 4 6 1 1704417870\n",
+ "5 202 2 2 17 18 1704417740\n",
+ "6 206 2 2 17 18 1704417800\n",
+ "7 210 1 1 6 18 1704417740\n",
+ "8 201 5 5 7 4 1704417870\n",
+ "9 202 2 2 17 18 1704417900\n",
+ "10 206 3 3 8 4 1704417800\n",
+ "11 175 3 3 6 1 1704417790\n",
+ "12 178 1 1 8 4 1704417870\n",
+ "13 201 1 1 8 3 1704417870\n",
+ "14 202 1 1 6 2 1704417900\n",
+ "15 210 1 2 6 2 1704417921\n",
+ "16 206 4 4 17 18 1704417800\n",
+ "17 176 2 2 8 3 1704417810\n",
+ "18 177 2 2 7 3 1704417790\n",
+ "19 175 3 4 6 2 1704417790\n",
+ "20 201 2 2 5 2 1704417870\n",
+ "21 210 2 2 5 2 1704417921\n",
+ "22 206 4 4 17 18 1704417950\n",
+ "23 177 3 3 17 18 1704417790\n",
+ "24 178 2 2 7 3 1704417870\n",
+ "25 206 1 1 8 4 1704417950\n",
+ "26 201 3 3 6 2 1704417870\n",
+ "27 175 4 4 5 2 1704417970\n",
+ "28 177 3 3 17 18 1704417970\n",
+ "29 210 3 3 7 4 1704417921\n",
+ "30 176 2 2 8 3 1704417990\n",
+ "31 206 2 2 17 18 1704417950\n",
+ "32 175 1 1 8 4 1704417970\n",
+ "33 178 3 3 5 2 1704417870"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "i=22 1704418010\n",
+ "1. 상태 테이블 조회해서 전체 데이터중 필요데이터(교차로번호, A링 현시번호, A링 이동류번호, B링 현시번호, B링 이동류번호)만 수집 : A\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 5 | \n",
+ " 18 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B\n",
+ "0 175 1 1 8 4\n",
+ "1 176 3 3 5 18\n",
+ "2 177 3 3 17 18\n",
+ "3 178 3 3 5 2\n",
+ "4 201 4 4 6 1\n",
+ "5 202 2 2 17 18\n",
+ "6 206 2 2 17 18\n",
+ "7 210 3 3 7 4"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "2. 이력 테이블 조회해서 교차로별로 유닉스시간 최대인 데이터(교차로번호, 종료유닉스타임)만 수집 : B\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " end_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 1876 | \n",
+ " 175 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 1877 | \n",
+ " 176 | \n",
+ " 1704417990 | \n",
+ "
\n",
+ " \n",
+ " 1875 | \n",
+ " 177 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 1871 | \n",
+ " 178 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 1870 | \n",
+ " 201 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 1872 | \n",
+ " 202 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 1874 | \n",
+ " 206 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 1873 | \n",
+ " 210 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no end_unix\n",
+ "1876 175 1704417970\n",
+ "1877 176 1704417990\n",
+ "1875 177 1704417970\n",
+ "1871 178 1704417870\n",
+ "1870 201 1704417870\n",
+ "1872 202 1704417900\n",
+ "1874 206 1704417950\n",
+ "1873 210 1704417921"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "3. 상태 테이블 조회정보(A)와 이력 테이블 조회정보(B) 조인(키값 : 교차로번호) : C\n",
+ "4. C데이터 프레임에 신규 컬럼(시작 유닉스타임) 생성 후 종료유닉스 타임 값 입력, 종료 유닉스 타임 컬럼 제거\n",
+ "\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ " start_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 5 | \n",
+ " 18 | \n",
+ " 1704417990 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B start_unix\n",
+ "0 175 1 1 8 4 1704417970\n",
+ "1 176 3 3 5 18 1704417990\n",
+ "2 177 3 3 17 18 1704417970\n",
+ "3 178 3 3 5 2 1704417870\n",
+ "4 201 4 4 6 1 1704417870\n",
+ "5 202 2 2 17 18 1704417900\n",
+ "6 206 2 2 17 18 1704417950\n",
+ "7 210 3 3 7 4 1704417921"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "5. 이동류 이력정보 READ\n",
+ " - CSV 파일로 서버에 저장된 이동류정보를 읽어옴(파일이 없는 경우에는 데이터가 없는 프레임 D 생성\n",
+ "6. 이동류 이력정보 데이터테이블(D)에 C데이터 add\n",
+ "7. D데이터 프레임에서 중복데이터 제거(교차로번호, 시작 유닉스타임, A링 현시번호, B링 현시번호 같은 행은 제거)\n",
+ "8. D데이터 보관 시간 기준시간을 시작 유닉스 타임의 최대값 - self.subtractor // 2을 값으로 산출하고, 보관 시간 기준시간보다 작은 시작 유닉스 타임을 가진 행은 모두 제거(1시간 데이터만 보관)\n",
+ "\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ " start_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417740 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 18 | \n",
+ " 1704417740 | \n",
+ "
\n",
+ " \n",
+ " 8 | \n",
+ " 201 | \n",
+ " 5 | \n",
+ " 5 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 9 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 10 | \n",
+ " 206 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 11 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 12 | \n",
+ " 178 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 13 | \n",
+ " 201 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 14 | \n",
+ " 202 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 15 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " 2 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ " 16 | \n",
+ " 206 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 17 | \n",
+ " 176 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 18 | \n",
+ " 177 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 19 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 20 | \n",
+ " 201 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 21 | \n",
+ " 210 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ " 22 | \n",
+ " 206 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 23 | \n",
+ " 177 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 24 | \n",
+ " 178 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 25 | \n",
+ " 206 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 26 | \n",
+ " 201 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 27 | \n",
+ " 175 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 28 | \n",
+ " 177 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 29 | \n",
+ " 210 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ " 30 | \n",
+ " 176 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417990 | \n",
+ "
\n",
+ " \n",
+ " 31 | \n",
+ " 206 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 32 | \n",
+ " 175 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 33 | \n",
+ " 178 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 34 | \n",
+ " 176 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 5 | \n",
+ " 18 | \n",
+ " 1704417990 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B start_unix\n",
+ "0 175 2 2 7 3 1704417790\n",
+ "1 176 1 1 8 4 1704417810\n",
+ "2 177 1 1 8 4 1704417790\n",
+ "3 178 4 4 6 1 1704417870\n",
+ "4 201 4 4 6 1 1704417870\n",
+ "5 202 2 2 17 18 1704417740\n",
+ "6 206 2 2 17 18 1704417800\n",
+ "7 210 1 1 6 18 1704417740\n",
+ "8 201 5 5 7 4 1704417870\n",
+ "9 202 2 2 17 18 1704417900\n",
+ "10 206 3 3 8 4 1704417800\n",
+ "11 175 3 3 6 1 1704417790\n",
+ "12 178 1 1 8 4 1704417870\n",
+ "13 201 1 1 8 3 1704417870\n",
+ "14 202 1 1 6 2 1704417900\n",
+ "15 210 1 2 6 2 1704417921\n",
+ "16 206 4 4 17 18 1704417800\n",
+ "17 176 2 2 8 3 1704417810\n",
+ "18 177 2 2 7 3 1704417790\n",
+ "19 175 3 4 6 2 1704417790\n",
+ "20 201 2 2 5 2 1704417870\n",
+ "21 210 2 2 5 2 1704417921\n",
+ "22 206 4 4 17 18 1704417950\n",
+ "23 177 3 3 17 18 1704417790\n",
+ "24 178 2 2 7 3 1704417870\n",
+ "25 206 1 1 8 4 1704417950\n",
+ "26 201 3 3 6 2 1704417870\n",
+ "27 175 4 4 5 2 1704417970\n",
+ "28 177 3 3 17 18 1704417970\n",
+ "29 210 3 3 7 4 1704417921\n",
+ "30 176 2 2 8 3 1704417990\n",
+ "31 206 2 2 17 18 1704417950\n",
+ "32 175 1 1 8 4 1704417970\n",
+ "33 178 3 3 5 2 1704417870\n",
+ "34 176 3 3 5 18 1704417990"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "i=23 1704418015\n",
+ "1. 상태 테이블 조회해서 전체 데이터중 필요데이터(교차로번호, A링 현시번호, A링 이동류번호, B링 현시번호, B링 이동류번호)만 수집 : A\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 5 | \n",
+ " 18 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B\n",
+ "0 175 1 1 8 4\n",
+ "1 176 3 3 5 18\n",
+ "2 177 3 3 17 18\n",
+ "3 178 3 3 5 2\n",
+ "4 201 4 4 6 1\n",
+ "5 202 2 2 17 18\n",
+ "6 206 2 2 17 18\n",
+ "7 210 3 3 7 4"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "2. 이력 테이블 조회해서 교차로별로 유닉스시간 최대인 데이터(교차로번호, 종료유닉스타임)만 수집 : B\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " end_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 1876 | \n",
+ " 175 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 1877 | \n",
+ " 176 | \n",
+ " 1704417990 | \n",
+ "
\n",
+ " \n",
+ " 1875 | \n",
+ " 177 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 1871 | \n",
+ " 178 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 1870 | \n",
+ " 201 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 1872 | \n",
+ " 202 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 1874 | \n",
+ " 206 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 1873 | \n",
+ " 210 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no end_unix\n",
+ "1876 175 1704417970\n",
+ "1877 176 1704417990\n",
+ "1875 177 1704417970\n",
+ "1871 178 1704417870\n",
+ "1870 201 1704417870\n",
+ "1872 202 1704417900\n",
+ "1874 206 1704417950\n",
+ "1873 210 1704417921"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "3. 상태 테이블 조회정보(A)와 이력 테이블 조회정보(B) 조인(키값 : 교차로번호) : C\n",
+ "4. C데이터 프레임에 신규 컬럼(시작 유닉스타임) 생성 후 종료유닉스 타임 값 입력, 종료 유닉스 타임 컬럼 제거\n",
+ "\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ " start_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 5 | \n",
+ " 18 | \n",
+ " 1704417990 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B start_unix\n",
+ "0 175 1 1 8 4 1704417970\n",
+ "1 176 3 3 5 18 1704417990\n",
+ "2 177 3 3 17 18 1704417970\n",
+ "3 178 3 3 5 2 1704417870\n",
+ "4 201 4 4 6 1 1704417870\n",
+ "5 202 2 2 17 18 1704417900\n",
+ "6 206 2 2 17 18 1704417950\n",
+ "7 210 3 3 7 4 1704417921"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "5. 이동류 이력정보 READ\n",
+ " - CSV 파일로 서버에 저장된 이동류정보를 읽어옴(파일이 없는 경우에는 데이터가 없는 프레임 D 생성\n",
+ "6. 이동류 이력정보 데이터테이블(D)에 C데이터 add\n",
+ "7. D데이터 프레임에서 중복데이터 제거(교차로번호, 시작 유닉스타임, A링 현시번호, B링 현시번호 같은 행은 제거)\n",
+ "8. D데이터 보관 시간 기준시간을 시작 유닉스 타임의 최대값 - self.subtractor // 2을 값으로 산출하고, 보관 시간 기준시간보다 작은 시작 유닉스 타임을 가진 행은 모두 제거(1시간 데이터만 보관)\n",
+ "\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ " start_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417740 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 18 | \n",
+ " 1704417740 | \n",
+ "
\n",
+ " \n",
+ " 8 | \n",
+ " 201 | \n",
+ " 5 | \n",
+ " 5 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 9 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 10 | \n",
+ " 206 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 11 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 12 | \n",
+ " 178 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 13 | \n",
+ " 201 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 14 | \n",
+ " 202 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 15 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " 2 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ " 16 | \n",
+ " 206 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 17 | \n",
+ " 176 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 18 | \n",
+ " 177 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 19 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 20 | \n",
+ " 201 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 21 | \n",
+ " 210 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ " 22 | \n",
+ " 206 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 23 | \n",
+ " 177 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 24 | \n",
+ " 178 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 25 | \n",
+ " 206 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 26 | \n",
+ " 201 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 27 | \n",
+ " 175 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 28 | \n",
+ " 177 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 29 | \n",
+ " 210 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ " 30 | \n",
+ " 176 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417990 | \n",
+ "
\n",
+ " \n",
+ " 31 | \n",
+ " 206 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 32 | \n",
+ " 175 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 33 | \n",
+ " 178 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 34 | \n",
+ " 176 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 5 | \n",
+ " 18 | \n",
+ " 1704417990 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B start_unix\n",
+ "0 175 2 2 7 3 1704417790\n",
+ "1 176 1 1 8 4 1704417810\n",
+ "2 177 1 1 8 4 1704417790\n",
+ "3 178 4 4 6 1 1704417870\n",
+ "4 201 4 4 6 1 1704417870\n",
+ "5 202 2 2 17 18 1704417740\n",
+ "6 206 2 2 17 18 1704417800\n",
+ "7 210 1 1 6 18 1704417740\n",
+ "8 201 5 5 7 4 1704417870\n",
+ "9 202 2 2 17 18 1704417900\n",
+ "10 206 3 3 8 4 1704417800\n",
+ "11 175 3 3 6 1 1704417790\n",
+ "12 178 1 1 8 4 1704417870\n",
+ "13 201 1 1 8 3 1704417870\n",
+ "14 202 1 1 6 2 1704417900\n",
+ "15 210 1 2 6 2 1704417921\n",
+ "16 206 4 4 17 18 1704417800\n",
+ "17 176 2 2 8 3 1704417810\n",
+ "18 177 2 2 7 3 1704417790\n",
+ "19 175 3 4 6 2 1704417790\n",
+ "20 201 2 2 5 2 1704417870\n",
+ "21 210 2 2 5 2 1704417921\n",
+ "22 206 4 4 17 18 1704417950\n",
+ "23 177 3 3 17 18 1704417790\n",
+ "24 178 2 2 7 3 1704417870\n",
+ "25 206 1 1 8 4 1704417950\n",
+ "26 201 3 3 6 2 1704417870\n",
+ "27 175 4 4 5 2 1704417970\n",
+ "28 177 3 3 17 18 1704417970\n",
+ "29 210 3 3 7 4 1704417921\n",
+ "30 176 2 2 8 3 1704417990\n",
+ "31 206 2 2 17 18 1704417950\n",
+ "32 175 1 1 8 4 1704417970\n",
+ "33 178 3 3 5 2 1704417870\n",
+ "34 176 3 3 5 18 1704417990"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "i=24 1704418020\n",
+ "1. 상태 테이블 조회해서 전체 데이터중 필요데이터(교차로번호, A링 현시번호, A링 이동류번호, B링 현시번호, B링 이동류번호)만 수집 : A\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 5 | \n",
+ " 18 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B\n",
+ "0 175 1 1 8 4\n",
+ "1 176 3 3 5 18\n",
+ "2 177 3 3 17 18\n",
+ "3 178 3 3 5 2\n",
+ "4 201 4 4 6 1\n",
+ "5 202 2 2 17 18\n",
+ "6 206 2 2 17 18\n",
+ "7 210 3 3 7 4"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "2. 이력 테이블 조회해서 교차로별로 유닉스시간 최대인 데이터(교차로번호, 종료유닉스타임)만 수집 : B\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " end_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 1876 | \n",
+ " 175 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 1877 | \n",
+ " 176 | \n",
+ " 1704417990 | \n",
+ "
\n",
+ " \n",
+ " 1875 | \n",
+ " 177 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 1871 | \n",
+ " 178 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 1870 | \n",
+ " 201 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 1872 | \n",
+ " 202 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 1874 | \n",
+ " 206 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 1873 | \n",
+ " 210 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no end_unix\n",
+ "1876 175 1704417970\n",
+ "1877 176 1704417990\n",
+ "1875 177 1704417970\n",
+ "1871 178 1704417870\n",
+ "1870 201 1704417870\n",
+ "1872 202 1704417900\n",
+ "1874 206 1704417950\n",
+ "1873 210 1704417921"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "3. 상태 테이블 조회정보(A)와 이력 테이블 조회정보(B) 조인(키값 : 교차로번호) : C\n",
+ "4. C데이터 프레임에 신규 컬럼(시작 유닉스타임) 생성 후 종료유닉스 타임 값 입력, 종료 유닉스 타임 컬럼 제거\n",
+ "\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ " start_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 5 | \n",
+ " 18 | \n",
+ " 1704417990 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B start_unix\n",
+ "0 175 1 1 8 4 1704417970\n",
+ "1 176 3 3 5 18 1704417990\n",
+ "2 177 3 3 17 18 1704417970\n",
+ "3 178 3 3 5 2 1704417870\n",
+ "4 201 4 4 6 1 1704417870\n",
+ "5 202 2 2 17 18 1704417900\n",
+ "6 206 2 2 17 18 1704417950\n",
+ "7 210 3 3 7 4 1704417921"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "5. 이동류 이력정보 READ\n",
+ " - CSV 파일로 서버에 저장된 이동류정보를 읽어옴(파일이 없는 경우에는 데이터가 없는 프레임 D 생성\n",
+ "6. 이동류 이력정보 데이터테이블(D)에 C데이터 add\n",
+ "7. D데이터 프레임에서 중복데이터 제거(교차로번호, 시작 유닉스타임, A링 현시번호, B링 현시번호 같은 행은 제거)\n",
+ "8. D데이터 보관 시간 기준시간을 시작 유닉스 타임의 최대값 - self.subtractor // 2을 값으로 산출하고, 보관 시간 기준시간보다 작은 시작 유닉스 타임을 가진 행은 모두 제거(1시간 데이터만 보관)\n",
+ "\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ " start_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417740 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 18 | \n",
+ " 1704417740 | \n",
+ "
\n",
+ " \n",
+ " 8 | \n",
+ " 201 | \n",
+ " 5 | \n",
+ " 5 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 9 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 10 | \n",
+ " 206 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 11 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 12 | \n",
+ " 178 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 13 | \n",
+ " 201 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 14 | \n",
+ " 202 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 15 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " 2 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ " 16 | \n",
+ " 206 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 17 | \n",
+ " 176 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 18 | \n",
+ " 177 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 19 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 20 | \n",
+ " 201 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 21 | \n",
+ " 210 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ " 22 | \n",
+ " 206 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 23 | \n",
+ " 177 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 24 | \n",
+ " 178 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 25 | \n",
+ " 206 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 26 | \n",
+ " 201 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 27 | \n",
+ " 175 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 28 | \n",
+ " 177 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 29 | \n",
+ " 210 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ " 30 | \n",
+ " 176 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417990 | \n",
+ "
\n",
+ " \n",
+ " 31 | \n",
+ " 206 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 32 | \n",
+ " 175 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 33 | \n",
+ " 178 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 34 | \n",
+ " 176 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 5 | \n",
+ " 18 | \n",
+ " 1704417990 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B start_unix\n",
+ "0 175 2 2 7 3 1704417790\n",
+ "1 176 1 1 8 4 1704417810\n",
+ "2 177 1 1 8 4 1704417790\n",
+ "3 178 4 4 6 1 1704417870\n",
+ "4 201 4 4 6 1 1704417870\n",
+ "5 202 2 2 17 18 1704417740\n",
+ "6 206 2 2 17 18 1704417800\n",
+ "7 210 1 1 6 18 1704417740\n",
+ "8 201 5 5 7 4 1704417870\n",
+ "9 202 2 2 17 18 1704417900\n",
+ "10 206 3 3 8 4 1704417800\n",
+ "11 175 3 3 6 1 1704417790\n",
+ "12 178 1 1 8 4 1704417870\n",
+ "13 201 1 1 8 3 1704417870\n",
+ "14 202 1 1 6 2 1704417900\n",
+ "15 210 1 2 6 2 1704417921\n",
+ "16 206 4 4 17 18 1704417800\n",
+ "17 176 2 2 8 3 1704417810\n",
+ "18 177 2 2 7 3 1704417790\n",
+ "19 175 3 4 6 2 1704417790\n",
+ "20 201 2 2 5 2 1704417870\n",
+ "21 210 2 2 5 2 1704417921\n",
+ "22 206 4 4 17 18 1704417950\n",
+ "23 177 3 3 17 18 1704417790\n",
+ "24 178 2 2 7 3 1704417870\n",
+ "25 206 1 1 8 4 1704417950\n",
+ "26 201 3 3 6 2 1704417870\n",
+ "27 175 4 4 5 2 1704417970\n",
+ "28 177 3 3 17 18 1704417970\n",
+ "29 210 3 3 7 4 1704417921\n",
+ "30 176 2 2 8 3 1704417990\n",
+ "31 206 2 2 17 18 1704417950\n",
+ "32 175 1 1 8 4 1704417970\n",
+ "33 178 3 3 5 2 1704417870\n",
+ "34 176 3 3 5 18 1704417990"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "i=25 1704418025\n",
+ "1. 상태 테이블 조회해서 전체 데이터중 필요데이터(교차로번호, A링 현시번호, A링 이동류번호, B링 현시번호, B링 이동류번호)만 수집 : A\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 5 | \n",
+ " 18 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 5 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B\n",
+ "0 175 1 1 8 4\n",
+ "1 176 3 3 5 18\n",
+ "2 177 4 4 5 1\n",
+ "3 178 3 3 5 2\n",
+ "4 201 4 4 6 1\n",
+ "5 202 2 2 17 18\n",
+ "6 206 2 2 17 18\n",
+ "7 210 3 3 7 4"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "2. 이력 테이블 조회해서 교차로별로 유닉스시간 최대인 데이터(교차로번호, 종료유닉스타임)만 수집 : B\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " end_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 1876 | \n",
+ " 175 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 1877 | \n",
+ " 176 | \n",
+ " 1704417990 | \n",
+ "
\n",
+ " \n",
+ " 1875 | \n",
+ " 177 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 1871 | \n",
+ " 178 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 1870 | \n",
+ " 201 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 1872 | \n",
+ " 202 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 1874 | \n",
+ " 206 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 1873 | \n",
+ " 210 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no end_unix\n",
+ "1876 175 1704417970\n",
+ "1877 176 1704417990\n",
+ "1875 177 1704417970\n",
+ "1871 178 1704417870\n",
+ "1870 201 1704417870\n",
+ "1872 202 1704417900\n",
+ "1874 206 1704417950\n",
+ "1873 210 1704417921"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "3. 상태 테이블 조회정보(A)와 이력 테이블 조회정보(B) 조인(키값 : 교차로번호) : C\n",
+ "4. C데이터 프레임에 신규 컬럼(시작 유닉스타임) 생성 후 종료유닉스 타임 값 입력, 종료 유닉스 타임 컬럼 제거\n",
+ "\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ " start_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 5 | \n",
+ " 18 | \n",
+ " 1704417990 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 5 | \n",
+ " 1 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B start_unix\n",
+ "0 175 1 1 8 4 1704417970\n",
+ "1 176 3 3 5 18 1704417990\n",
+ "2 177 4 4 5 1 1704417970\n",
+ "3 178 3 3 5 2 1704417870\n",
+ "4 201 4 4 6 1 1704417870\n",
+ "5 202 2 2 17 18 1704417900\n",
+ "6 206 2 2 17 18 1704417950\n",
+ "7 210 3 3 7 4 1704417921"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "5. 이동류 이력정보 READ\n",
+ " - CSV 파일로 서버에 저장된 이동류정보를 읽어옴(파일이 없는 경우에는 데이터가 없는 프레임 D 생성\n",
+ "6. 이동류 이력정보 데이터테이블(D)에 C데이터 add\n",
+ "7. D데이터 프레임에서 중복데이터 제거(교차로번호, 시작 유닉스타임, A링 현시번호, B링 현시번호 같은 행은 제거)\n",
+ "8. D데이터 보관 시간 기준시간을 시작 유닉스 타임의 최대값 - self.subtractor // 2을 값으로 산출하고, 보관 시간 기준시간보다 작은 시작 유닉스 타임을 가진 행은 모두 제거(1시간 데이터만 보관)\n",
+ "\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ " start_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417740 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 18 | \n",
+ " 1704417740 | \n",
+ "
\n",
+ " \n",
+ " 8 | \n",
+ " 201 | \n",
+ " 5 | \n",
+ " 5 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 9 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 10 | \n",
+ " 206 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 11 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 12 | \n",
+ " 178 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 13 | \n",
+ " 201 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 14 | \n",
+ " 202 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 15 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " 2 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ " 16 | \n",
+ " 206 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 17 | \n",
+ " 176 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 18 | \n",
+ " 177 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 19 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 20 | \n",
+ " 201 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 21 | \n",
+ " 210 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ " 22 | \n",
+ " 206 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 23 | \n",
+ " 177 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 24 | \n",
+ " 178 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 25 | \n",
+ " 206 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 26 | \n",
+ " 201 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 27 | \n",
+ " 175 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 28 | \n",
+ " 177 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 29 | \n",
+ " 210 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ " 30 | \n",
+ " 176 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417990 | \n",
+ "
\n",
+ " \n",
+ " 31 | \n",
+ " 206 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 32 | \n",
+ " 175 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 33 | \n",
+ " 178 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 34 | \n",
+ " 176 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 5 | \n",
+ " 18 | \n",
+ " 1704417990 | \n",
+ "
\n",
+ " \n",
+ " 35 | \n",
+ " 177 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 5 | \n",
+ " 1 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B start_unix\n",
+ "0 175 2 2 7 3 1704417790\n",
+ "1 176 1 1 8 4 1704417810\n",
+ "2 177 1 1 8 4 1704417790\n",
+ "3 178 4 4 6 1 1704417870\n",
+ "4 201 4 4 6 1 1704417870\n",
+ "5 202 2 2 17 18 1704417740\n",
+ "6 206 2 2 17 18 1704417800\n",
+ "7 210 1 1 6 18 1704417740\n",
+ "8 201 5 5 7 4 1704417870\n",
+ "9 202 2 2 17 18 1704417900\n",
+ "10 206 3 3 8 4 1704417800\n",
+ "11 175 3 3 6 1 1704417790\n",
+ "12 178 1 1 8 4 1704417870\n",
+ "13 201 1 1 8 3 1704417870\n",
+ "14 202 1 1 6 2 1704417900\n",
+ "15 210 1 2 6 2 1704417921\n",
+ "16 206 4 4 17 18 1704417800\n",
+ "17 176 2 2 8 3 1704417810\n",
+ "18 177 2 2 7 3 1704417790\n",
+ "19 175 3 4 6 2 1704417790\n",
+ "20 201 2 2 5 2 1704417870\n",
+ "21 210 2 2 5 2 1704417921\n",
+ "22 206 4 4 17 18 1704417950\n",
+ "23 177 3 3 17 18 1704417790\n",
+ "24 178 2 2 7 3 1704417870\n",
+ "25 206 1 1 8 4 1704417950\n",
+ "26 201 3 3 6 2 1704417870\n",
+ "27 175 4 4 5 2 1704417970\n",
+ "28 177 3 3 17 18 1704417970\n",
+ "29 210 3 3 7 4 1704417921\n",
+ "30 176 2 2 8 3 1704417990\n",
+ "31 206 2 2 17 18 1704417950\n",
+ "32 175 1 1 8 4 1704417970\n",
+ "33 178 3 3 5 2 1704417870\n",
+ "34 176 3 3 5 18 1704417990\n",
+ "35 177 4 4 5 1 1704417970"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "i=26 1704418030\n",
+ "1. 상태 테이블 조회해서 전체 데이터중 필요데이터(교차로번호, A링 현시번호, A링 이동류번호, B링 현시번호, B링 이동류번호)만 수집 : A\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 5 | \n",
+ " 18 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 5 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B\n",
+ "0 175 1 1 8 4\n",
+ "1 176 3 3 5 18\n",
+ "2 177 4 4 5 1\n",
+ "3 178 3 3 5 2\n",
+ "4 201 4 4 6 1\n",
+ "5 202 2 2 17 18\n",
+ "6 206 3 3 8 4\n",
+ "7 210 4 4 8 3"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "2. 이력 테이블 조회해서 교차로별로 유닉스시간 최대인 데이터(교차로번호, 종료유닉스타임)만 수집 : B\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " end_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 1876 | \n",
+ " 175 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 1877 | \n",
+ " 176 | \n",
+ " 1704417990 | \n",
+ "
\n",
+ " \n",
+ " 1875 | \n",
+ " 177 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 1871 | \n",
+ " 178 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 1870 | \n",
+ " 201 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 1872 | \n",
+ " 202 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 1874 | \n",
+ " 206 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 1873 | \n",
+ " 210 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no end_unix\n",
+ "1876 175 1704417970\n",
+ "1877 176 1704417990\n",
+ "1875 177 1704417970\n",
+ "1871 178 1704417870\n",
+ "1870 201 1704417870\n",
+ "1872 202 1704417900\n",
+ "1874 206 1704417950\n",
+ "1873 210 1704417921"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "3. 상태 테이블 조회정보(A)와 이력 테이블 조회정보(B) 조인(키값 : 교차로번호) : C\n",
+ "4. C데이터 프레임에 신규 컬럼(시작 유닉스타임) 생성 후 종료유닉스 타임 값 입력, 종료 유닉스 타임 컬럼 제거\n",
+ "\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ " start_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 5 | \n",
+ " 18 | \n",
+ " 1704417990 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 5 | \n",
+ " 1 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B start_unix\n",
+ "0 175 1 1 8 4 1704417970\n",
+ "1 176 3 3 5 18 1704417990\n",
+ "2 177 4 4 5 1 1704417970\n",
+ "3 178 3 3 5 2 1704417870\n",
+ "4 201 4 4 6 1 1704417870\n",
+ "5 202 2 2 17 18 1704417900\n",
+ "6 206 3 3 8 4 1704417950\n",
+ "7 210 4 4 8 3 1704417921"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "5. 이동류 이력정보 READ\n",
+ " - CSV 파일로 서버에 저장된 이동류정보를 읽어옴(파일이 없는 경우에는 데이터가 없는 프레임 D 생성\n",
+ "6. 이동류 이력정보 데이터테이블(D)에 C데이터 add\n",
+ "7. D데이터 프레임에서 중복데이터 제거(교차로번호, 시작 유닉스타임, A링 현시번호, B링 현시번호 같은 행은 제거)\n",
+ "8. D데이터 보관 시간 기준시간을 시작 유닉스 타임의 최대값 - self.subtractor // 2을 값으로 산출하고, 보관 시간 기준시간보다 작은 시작 유닉스 타임을 가진 행은 모두 제거(1시간 데이터만 보관)\n",
+ "\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ " start_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417740 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 18 | \n",
+ " 1704417740 | \n",
+ "
\n",
+ " \n",
+ " 8 | \n",
+ " 201 | \n",
+ " 5 | \n",
+ " 5 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 9 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 10 | \n",
+ " 206 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 11 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 12 | \n",
+ " 178 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 13 | \n",
+ " 201 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 14 | \n",
+ " 202 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 15 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " 2 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ " 16 | \n",
+ " 206 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 17 | \n",
+ " 176 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 18 | \n",
+ " 177 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 19 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 20 | \n",
+ " 201 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 21 | \n",
+ " 210 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ " 22 | \n",
+ " 206 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 23 | \n",
+ " 177 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 24 | \n",
+ " 178 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 25 | \n",
+ " 206 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 26 | \n",
+ " 201 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 27 | \n",
+ " 175 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 28 | \n",
+ " 177 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 29 | \n",
+ " 210 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ " 30 | \n",
+ " 176 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417990 | \n",
+ "
\n",
+ " \n",
+ " 31 | \n",
+ " 206 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 32 | \n",
+ " 175 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 33 | \n",
+ " 178 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 34 | \n",
+ " 176 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 5 | \n",
+ " 18 | \n",
+ " 1704417990 | \n",
+ "
\n",
+ " \n",
+ " 35 | \n",
+ " 177 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 5 | \n",
+ " 1 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 36 | \n",
+ " 206 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 37 | \n",
+ " 210 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B start_unix\n",
+ "0 175 2 2 7 3 1704417790\n",
+ "1 176 1 1 8 4 1704417810\n",
+ "2 177 1 1 8 4 1704417790\n",
+ "3 178 4 4 6 1 1704417870\n",
+ "4 201 4 4 6 1 1704417870\n",
+ "5 202 2 2 17 18 1704417740\n",
+ "6 206 2 2 17 18 1704417800\n",
+ "7 210 1 1 6 18 1704417740\n",
+ "8 201 5 5 7 4 1704417870\n",
+ "9 202 2 2 17 18 1704417900\n",
+ "10 206 3 3 8 4 1704417800\n",
+ "11 175 3 3 6 1 1704417790\n",
+ "12 178 1 1 8 4 1704417870\n",
+ "13 201 1 1 8 3 1704417870\n",
+ "14 202 1 1 6 2 1704417900\n",
+ "15 210 1 2 6 2 1704417921\n",
+ "16 206 4 4 17 18 1704417800\n",
+ "17 176 2 2 8 3 1704417810\n",
+ "18 177 2 2 7 3 1704417790\n",
+ "19 175 3 4 6 2 1704417790\n",
+ "20 201 2 2 5 2 1704417870\n",
+ "21 210 2 2 5 2 1704417921\n",
+ "22 206 4 4 17 18 1704417950\n",
+ "23 177 3 3 17 18 1704417790\n",
+ "24 178 2 2 7 3 1704417870\n",
+ "25 206 1 1 8 4 1704417950\n",
+ "26 201 3 3 6 2 1704417870\n",
+ "27 175 4 4 5 2 1704417970\n",
+ "28 177 3 3 17 18 1704417970\n",
+ "29 210 3 3 7 4 1704417921\n",
+ "30 176 2 2 8 3 1704417990\n",
+ "31 206 2 2 17 18 1704417950\n",
+ "32 175 1 1 8 4 1704417970\n",
+ "33 178 3 3 5 2 1704417870\n",
+ "34 176 3 3 5 18 1704417990\n",
+ "35 177 4 4 5 1 1704417970\n",
+ "36 206 3 3 8 4 1704417950\n",
+ "37 210 4 4 8 3 1704417921"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "i=27 1704418035\n",
+ "1. 상태 테이블 조회해서 전체 데이터중 필요데이터(교차로번호, A링 현시번호, A링 이동류번호, B링 현시번호, B링 이동류번호)만 수집 : A\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 5 | \n",
+ " 18 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 5 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B\n",
+ "0 175 1 1 8 4\n",
+ "1 176 3 3 5 18\n",
+ "2 177 4 4 5 1\n",
+ "3 178 3 3 5 2\n",
+ "4 201 4 4 6 1\n",
+ "5 202 2 2 17 18\n",
+ "6 206 3 3 8 4\n",
+ "7 210 4 4 8 3"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "2. 이력 테이블 조회해서 교차로별로 유닉스시간 최대인 데이터(교차로번호, 종료유닉스타임)만 수집 : B\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " end_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 1876 | \n",
+ " 175 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 1877 | \n",
+ " 176 | \n",
+ " 1704417990 | \n",
+ "
\n",
+ " \n",
+ " 1875 | \n",
+ " 177 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 1871 | \n",
+ " 178 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 1870 | \n",
+ " 201 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 1872 | \n",
+ " 202 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 1874 | \n",
+ " 206 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 1873 | \n",
+ " 210 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no end_unix\n",
+ "1876 175 1704417970\n",
+ "1877 176 1704417990\n",
+ "1875 177 1704417970\n",
+ "1871 178 1704417870\n",
+ "1870 201 1704417870\n",
+ "1872 202 1704417900\n",
+ "1874 206 1704417950\n",
+ "1873 210 1704417921"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "3. 상태 테이블 조회정보(A)와 이력 테이블 조회정보(B) 조인(키값 : 교차로번호) : C\n",
+ "4. C데이터 프레임에 신규 컬럼(시작 유닉스타임) 생성 후 종료유닉스 타임 값 입력, 종료 유닉스 타임 컬럼 제거\n",
+ "\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ " start_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 5 | \n",
+ " 18 | \n",
+ " 1704417990 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 5 | \n",
+ " 1 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B start_unix\n",
+ "0 175 1 1 8 4 1704417970\n",
+ "1 176 3 3 5 18 1704417990\n",
+ "2 177 4 4 5 1 1704417970\n",
+ "3 178 3 3 5 2 1704417870\n",
+ "4 201 4 4 6 1 1704417870\n",
+ "5 202 2 2 17 18 1704417900\n",
+ "6 206 3 3 8 4 1704417950\n",
+ "7 210 4 4 8 3 1704417921"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "5. 이동류 이력정보 READ\n",
+ " - CSV 파일로 서버에 저장된 이동류정보를 읽어옴(파일이 없는 경우에는 데이터가 없는 프레임 D 생성\n",
+ "6. 이동류 이력정보 데이터테이블(D)에 C데이터 add\n",
+ "7. D데이터 프레임에서 중복데이터 제거(교차로번호, 시작 유닉스타임, A링 현시번호, B링 현시번호 같은 행은 제거)\n",
+ "8. D데이터 보관 시간 기준시간을 시작 유닉스 타임의 최대값 - self.subtractor // 2을 값으로 산출하고, 보관 시간 기준시간보다 작은 시작 유닉스 타임을 가진 행은 모두 제거(1시간 데이터만 보관)\n",
+ "\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ " start_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417740 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 18 | \n",
+ " 1704417740 | \n",
+ "
\n",
+ " \n",
+ " 8 | \n",
+ " 201 | \n",
+ " 5 | \n",
+ " 5 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 9 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 10 | \n",
+ " 206 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 11 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 12 | \n",
+ " 178 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 13 | \n",
+ " 201 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 14 | \n",
+ " 202 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 15 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " 2 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ " 16 | \n",
+ " 206 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 17 | \n",
+ " 176 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 18 | \n",
+ " 177 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 19 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 20 | \n",
+ " 201 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 21 | \n",
+ " 210 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ " 22 | \n",
+ " 206 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 23 | \n",
+ " 177 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 24 | \n",
+ " 178 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 25 | \n",
+ " 206 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 26 | \n",
+ " 201 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 27 | \n",
+ " 175 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 28 | \n",
+ " 177 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 29 | \n",
+ " 210 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ " 30 | \n",
+ " 176 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417990 | \n",
+ "
\n",
+ " \n",
+ " 31 | \n",
+ " 206 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 32 | \n",
+ " 175 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 33 | \n",
+ " 178 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 34 | \n",
+ " 176 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 5 | \n",
+ " 18 | \n",
+ " 1704417990 | \n",
+ "
\n",
+ " \n",
+ " 35 | \n",
+ " 177 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 5 | \n",
+ " 1 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 36 | \n",
+ " 206 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 37 | \n",
+ " 210 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B start_unix\n",
+ "0 175 2 2 7 3 1704417790\n",
+ "1 176 1 1 8 4 1704417810\n",
+ "2 177 1 1 8 4 1704417790\n",
+ "3 178 4 4 6 1 1704417870\n",
+ "4 201 4 4 6 1 1704417870\n",
+ "5 202 2 2 17 18 1704417740\n",
+ "6 206 2 2 17 18 1704417800\n",
+ "7 210 1 1 6 18 1704417740\n",
+ "8 201 5 5 7 4 1704417870\n",
+ "9 202 2 2 17 18 1704417900\n",
+ "10 206 3 3 8 4 1704417800\n",
+ "11 175 3 3 6 1 1704417790\n",
+ "12 178 1 1 8 4 1704417870\n",
+ "13 201 1 1 8 3 1704417870\n",
+ "14 202 1 1 6 2 1704417900\n",
+ "15 210 1 2 6 2 1704417921\n",
+ "16 206 4 4 17 18 1704417800\n",
+ "17 176 2 2 8 3 1704417810\n",
+ "18 177 2 2 7 3 1704417790\n",
+ "19 175 3 4 6 2 1704417790\n",
+ "20 201 2 2 5 2 1704417870\n",
+ "21 210 2 2 5 2 1704417921\n",
+ "22 206 4 4 17 18 1704417950\n",
+ "23 177 3 3 17 18 1704417790\n",
+ "24 178 2 2 7 3 1704417870\n",
+ "25 206 1 1 8 4 1704417950\n",
+ "26 201 3 3 6 2 1704417870\n",
+ "27 175 4 4 5 2 1704417970\n",
+ "28 177 3 3 17 18 1704417970\n",
+ "29 210 3 3 7 4 1704417921\n",
+ "30 176 2 2 8 3 1704417990\n",
+ "31 206 2 2 17 18 1704417950\n",
+ "32 175 1 1 8 4 1704417970\n",
+ "33 178 3 3 5 2 1704417870\n",
+ "34 176 3 3 5 18 1704417990\n",
+ "35 177 4 4 5 1 1704417970\n",
+ "36 206 3 3 8 4 1704417950\n",
+ "37 210 4 4 8 3 1704417921"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "i=28 1704418040\n",
+ "1. 상태 테이블 조회해서 전체 데이터중 필요데이터(교차로번호, A링 현시번호, A링 이동류번호, B링 현시번호, B링 이동류번호)만 수집 : A\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 5 | \n",
+ " 18 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 5 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B\n",
+ "0 175 2 2 7 3\n",
+ "1 176 3 3 5 18\n",
+ "2 177 4 4 5 1\n",
+ "3 178 4 4 6 1\n",
+ "4 201 4 4 6 1\n",
+ "5 202 2 2 17 18\n",
+ "6 206 3 3 8 4\n",
+ "7 210 4 4 8 3"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "2. 이력 테이블 조회해서 교차로별로 유닉스시간 최대인 데이터(교차로번호, 종료유닉스타임)만 수집 : B\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " end_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 1876 | \n",
+ " 175 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 1877 | \n",
+ " 176 | \n",
+ " 1704417990 | \n",
+ "
\n",
+ " \n",
+ " 1875 | \n",
+ " 177 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 1871 | \n",
+ " 178 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 1870 | \n",
+ " 201 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 1872 | \n",
+ " 202 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 1874 | \n",
+ " 206 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 1873 | \n",
+ " 210 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no end_unix\n",
+ "1876 175 1704417970\n",
+ "1877 176 1704417990\n",
+ "1875 177 1704417970\n",
+ "1871 178 1704417870\n",
+ "1870 201 1704417870\n",
+ "1872 202 1704417900\n",
+ "1874 206 1704417950\n",
+ "1873 210 1704417921"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "3. 상태 테이블 조회정보(A)와 이력 테이블 조회정보(B) 조인(키값 : 교차로번호) : C\n",
+ "4. C데이터 프레임에 신규 컬럼(시작 유닉스타임) 생성 후 종료유닉스 타임 값 입력, 종료 유닉스 타임 컬럼 제거\n",
+ "\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ " start_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 5 | \n",
+ " 18 | \n",
+ " 1704417990 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 5 | \n",
+ " 1 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B start_unix\n",
+ "0 175 2 2 7 3 1704417970\n",
+ "1 176 3 3 5 18 1704417990\n",
+ "2 177 4 4 5 1 1704417970\n",
+ "3 178 4 4 6 1 1704417870\n",
+ "4 201 4 4 6 1 1704417870\n",
+ "5 202 2 2 17 18 1704417900\n",
+ "6 206 3 3 8 4 1704417950\n",
+ "7 210 4 4 8 3 1704417921"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "5. 이동류 이력정보 READ\n",
+ " - CSV 파일로 서버에 저장된 이동류정보를 읽어옴(파일이 없는 경우에는 데이터가 없는 프레임 D 생성\n",
+ "6. 이동류 이력정보 데이터테이블(D)에 C데이터 add\n",
+ "7. D데이터 프레임에서 중복데이터 제거(교차로번호, 시작 유닉스타임, A링 현시번호, B링 현시번호 같은 행은 제거)\n",
+ "8. D데이터 보관 시간 기준시간을 시작 유닉스 타임의 최대값 - self.subtractor // 2을 값으로 산출하고, 보관 시간 기준시간보다 작은 시작 유닉스 타임을 가진 행은 모두 제거(1시간 데이터만 보관)\n",
+ "\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ " start_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417740 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 18 | \n",
+ " 1704417740 | \n",
+ "
\n",
+ " \n",
+ " 8 | \n",
+ " 201 | \n",
+ " 5 | \n",
+ " 5 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 9 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 10 | \n",
+ " 206 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 11 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 12 | \n",
+ " 178 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 13 | \n",
+ " 201 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 14 | \n",
+ " 202 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 15 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " 2 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ " 16 | \n",
+ " 206 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 17 | \n",
+ " 176 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 18 | \n",
+ " 177 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 19 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 20 | \n",
+ " 201 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 21 | \n",
+ " 210 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ " 22 | \n",
+ " 206 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 23 | \n",
+ " 177 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 24 | \n",
+ " 178 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 25 | \n",
+ " 206 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 26 | \n",
+ " 201 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 27 | \n",
+ " 175 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 28 | \n",
+ " 177 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 29 | \n",
+ " 210 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ " 30 | \n",
+ " 176 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417990 | \n",
+ "
\n",
+ " \n",
+ " 31 | \n",
+ " 206 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 32 | \n",
+ " 175 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 33 | \n",
+ " 178 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 34 | \n",
+ " 176 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 5 | \n",
+ " 18 | \n",
+ " 1704417990 | \n",
+ "
\n",
+ " \n",
+ " 35 | \n",
+ " 177 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 5 | \n",
+ " 1 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 36 | \n",
+ " 206 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 37 | \n",
+ " 210 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ " 38 | \n",
+ " 175 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B start_unix\n",
+ "0 175 2 2 7 3 1704417790\n",
+ "1 176 1 1 8 4 1704417810\n",
+ "2 177 1 1 8 4 1704417790\n",
+ "3 178 4 4 6 1 1704417870\n",
+ "4 201 4 4 6 1 1704417870\n",
+ "5 202 2 2 17 18 1704417740\n",
+ "6 206 2 2 17 18 1704417800\n",
+ "7 210 1 1 6 18 1704417740\n",
+ "8 201 5 5 7 4 1704417870\n",
+ "9 202 2 2 17 18 1704417900\n",
+ "10 206 3 3 8 4 1704417800\n",
+ "11 175 3 3 6 1 1704417790\n",
+ "12 178 1 1 8 4 1704417870\n",
+ "13 201 1 1 8 3 1704417870\n",
+ "14 202 1 1 6 2 1704417900\n",
+ "15 210 1 2 6 2 1704417921\n",
+ "16 206 4 4 17 18 1704417800\n",
+ "17 176 2 2 8 3 1704417810\n",
+ "18 177 2 2 7 3 1704417790\n",
+ "19 175 3 4 6 2 1704417790\n",
+ "20 201 2 2 5 2 1704417870\n",
+ "21 210 2 2 5 2 1704417921\n",
+ "22 206 4 4 17 18 1704417950\n",
+ "23 177 3 3 17 18 1704417790\n",
+ "24 178 2 2 7 3 1704417870\n",
+ "25 206 1 1 8 4 1704417950\n",
+ "26 201 3 3 6 2 1704417870\n",
+ "27 175 4 4 5 2 1704417970\n",
+ "28 177 3 3 17 18 1704417970\n",
+ "29 210 3 3 7 4 1704417921\n",
+ "30 176 2 2 8 3 1704417990\n",
+ "31 206 2 2 17 18 1704417950\n",
+ "32 175 1 1 8 4 1704417970\n",
+ "33 178 3 3 5 2 1704417870\n",
+ "34 176 3 3 5 18 1704417990\n",
+ "35 177 4 4 5 1 1704417970\n",
+ "36 206 3 3 8 4 1704417950\n",
+ "37 210 4 4 8 3 1704417921\n",
+ "38 175 2 2 7 3 1704417970"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "i=29 1704418045\n",
+ "1. 상태 테이블 조회해서 전체 데이터중 필요데이터(교차로번호, A링 현시번호, A링 이동류번호, B링 현시번호, B링 이동류번호)만 수집 : A\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 5 | \n",
+ " 18 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 5 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 5 | \n",
+ " 5 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B\n",
+ "0 175 2 2 7 3\n",
+ "1 176 3 3 5 18\n",
+ "2 177 4 4 5 1\n",
+ "3 178 4 4 6 1\n",
+ "4 201 5 5 7 4\n",
+ "5 202 2 2 17 18\n",
+ "6 206 3 3 8 4\n",
+ "7 210 4 4 8 3"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "2. 이력 테이블 조회해서 교차로별로 유닉스시간 최대인 데이터(교차로번호, 종료유닉스타임)만 수집 : B\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " end_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 1876 | \n",
+ " 175 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 1877 | \n",
+ " 176 | \n",
+ " 1704417990 | \n",
+ "
\n",
+ " \n",
+ " 1875 | \n",
+ " 177 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 1879 | \n",
+ " 178 | \n",
+ " 1704418041 | \n",
+ "
\n",
+ " \n",
+ " 1878 | \n",
+ " 201 | \n",
+ " 1704418040 | \n",
+ "
\n",
+ " \n",
+ " 1872 | \n",
+ " 202 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 1874 | \n",
+ " 206 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 1873 | \n",
+ " 210 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no end_unix\n",
+ "1876 175 1704417970\n",
+ "1877 176 1704417990\n",
+ "1875 177 1704417970\n",
+ "1879 178 1704418041\n",
+ "1878 201 1704418040\n",
+ "1872 202 1704417900\n",
+ "1874 206 1704417950\n",
+ "1873 210 1704417921"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "3. 상태 테이블 조회정보(A)와 이력 테이블 조회정보(B) 조인(키값 : 교차로번호) : C\n",
+ "4. C데이터 프레임에 신규 컬럼(시작 유닉스타임) 생성 후 종료유닉스 타임 값 입력, 종료 유닉스 타임 컬럼 제거\n",
+ "\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ " start_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 5 | \n",
+ " 18 | \n",
+ " 1704417990 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 5 | \n",
+ " 1 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704418041 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 5 | \n",
+ " 5 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ " 1704418040 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B start_unix\n",
+ "0 175 2 2 7 3 1704417970\n",
+ "1 176 3 3 5 18 1704417990\n",
+ "2 177 4 4 5 1 1704417970\n",
+ "3 178 4 4 6 1 1704418041\n",
+ "4 201 5 5 7 4 1704418040\n",
+ "5 202 2 2 17 18 1704417900\n",
+ "6 206 3 3 8 4 1704417950\n",
+ "7 210 4 4 8 3 1704417921"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "5. 이동류 이력정보 READ\n",
+ " - CSV 파일로 서버에 저장된 이동류정보를 읽어옴(파일이 없는 경우에는 데이터가 없는 프레임 D 생성\n",
+ "6. 이동류 이력정보 데이터테이블(D)에 C데이터 add\n",
+ "7. D데이터 프레임에서 중복데이터 제거(교차로번호, 시작 유닉스타임, A링 현시번호, B링 현시번호 같은 행은 제거)\n",
+ "8. D데이터 보관 시간 기준시간을 시작 유닉스 타임의 최대값 - self.subtractor // 2을 값으로 산출하고, 보관 시간 기준시간보다 작은 시작 유닉스 타임을 가진 행은 모두 제거(1시간 데이터만 보관)\n",
+ "\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ " start_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 175 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 177 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 178 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417740 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 206 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 18 | \n",
+ " 1704417740 | \n",
+ "
\n",
+ " \n",
+ " 8 | \n",
+ " 201 | \n",
+ " 5 | \n",
+ " 5 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 9 | \n",
+ " 202 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 10 | \n",
+ " 206 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 11 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 12 | \n",
+ " 178 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 13 | \n",
+ " 201 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 14 | \n",
+ " 202 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417900 | \n",
+ "
\n",
+ " \n",
+ " 15 | \n",
+ " 210 | \n",
+ " 1 | \n",
+ " 2 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ " 16 | \n",
+ " 206 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417800 | \n",
+ "
\n",
+ " \n",
+ " 17 | \n",
+ " 176 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417810 | \n",
+ "
\n",
+ " \n",
+ " 18 | \n",
+ " 177 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 19 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 20 | \n",
+ " 201 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 21 | \n",
+ " 210 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ " 22 | \n",
+ " 206 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 23 | \n",
+ " 177 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 24 | \n",
+ " 178 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 25 | \n",
+ " 206 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 26 | \n",
+ " 201 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 27 | \n",
+ " 175 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 28 | \n",
+ " 177 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 29 | \n",
+ " 210 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ " 30 | \n",
+ " 176 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417990 | \n",
+ "
\n",
+ " \n",
+ " 31 | \n",
+ " 206 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 32 | \n",
+ " 175 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 33 | \n",
+ " 178 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417870 | \n",
+ "
\n",
+ " \n",
+ " 34 | \n",
+ " 176 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 5 | \n",
+ " 18 | \n",
+ " 1704417990 | \n",
+ "
\n",
+ " \n",
+ " 35 | \n",
+ " 177 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 5 | \n",
+ " 1 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 36 | \n",
+ " 206 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704417950 | \n",
+ "
\n",
+ " \n",
+ " 37 | \n",
+ " 210 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704417921 | \n",
+ "
\n",
+ " \n",
+ " 38 | \n",
+ " 175 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 1704417970 | \n",
+ "
\n",
+ " \n",
+ " 39 | \n",
+ " 178 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704418041 | \n",
+ "
\n",
+ " \n",
+ " 40 | \n",
+ " 201 | \n",
+ " 5 | \n",
+ " 5 | \n",
+ " 7 | \n",
+ " 4 | \n",
+ " 1704418040 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B start_unix\n",
+ "0 175 2 2 7 3 1704417790\n",
+ "1 176 1 1 8 4 1704417810\n",
+ "2 177 1 1 8 4 1704417790\n",
+ "3 178 4 4 6 1 1704417870\n",
+ "4 201 4 4 6 1 1704417870\n",
+ "5 202 2 2 17 18 1704417740\n",
+ "6 206 2 2 17 18 1704417800\n",
+ "7 210 1 1 6 18 1704417740\n",
+ "8 201 5 5 7 4 1704417870\n",
+ "9 202 2 2 17 18 1704417900\n",
+ "10 206 3 3 8 4 1704417800\n",
+ "11 175 3 3 6 1 1704417790\n",
+ "12 178 1 1 8 4 1704417870\n",
+ "13 201 1 1 8 3 1704417870\n",
+ "14 202 1 1 6 2 1704417900\n",
+ "15 210 1 2 6 2 1704417921\n",
+ "16 206 4 4 17 18 1704417800\n",
+ "17 176 2 2 8 3 1704417810\n",
+ "18 177 2 2 7 3 1704417790\n",
+ "19 175 3 4 6 2 1704417790\n",
+ "20 201 2 2 5 2 1704417870\n",
+ "21 210 2 2 5 2 1704417921\n",
+ "22 206 4 4 17 18 1704417950\n",
+ "23 177 3 3 17 18 1704417790\n",
+ "24 178 2 2 7 3 1704417870\n",
+ "25 206 1 1 8 4 1704417950\n",
+ "26 201 3 3 6 2 1704417870\n",
+ "27 175 4 4 5 2 1704417970\n",
+ "28 177 3 3 17 18 1704417970\n",
+ "29 210 3 3 7 4 1704417921\n",
+ "30 176 2 2 8 3 1704417990\n",
+ "31 206 2 2 17 18 1704417950\n",
+ "32 175 1 1 8 4 1704417970\n",
+ "33 178 3 3 5 2 1704417870\n",
+ "34 176 3 3 5 18 1704417990\n",
+ "35 177 4 4 5 1 1704417970\n",
+ "36 206 3 3 8 4 1704417950\n",
+ "37 210 4 4 8 3 1704417921\n",
+ "38 175 2 2 7 3 1704417970\n",
+ "39 178 4 4 6 1 1704418041\n",
+ "40 201 5 5 7 4 1704418040"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "for i in range(30): # fsec : unix time by Five SECond\n",
+ " fsec = fsecs[i]\n",
+ " print(f'i={i}', fsec)\n",
+ " # 1. 상태 테이블 조회해서 전체 데이터중 필요데이터(교차로번호, A링 현시번호, A링 이동류번호, B링 현시번호, B링 이동류번호)만 수집 : A\n",
+ " print('1. 상태 테이블 조회해서 전체 데이터중 필요데이터(교차로번호, A링 현시번호, A링 이동류번호, B링 현시번호, B링 이동류번호)만 수집 : A')\n",
+ " move = pd.read_csv(os.path.join(self.path_tables, 'move', f'move_{fsec}.csv'), index_col=0).reset_index(drop=True)\n",
+ " display(move)\n",
+ " # 2. 이력 테이블 조회해서 교차로별로 유닉스시간 최대인 데이터(교차로번호, 종료유닉스타임)만 수집 : B\n",
+ " print('2. 이력 테이블 조회해서 교차로별로 유닉스시간 최대인 데이터(교차로번호, 종료유닉스타임)만 수집 : B')\n",
+ " recent_histories = [group.iloc[-1:] for _, group in self.history[self.history['end_unix'] < fsec].groupby('inter_no')] # 교차로별로 유닉스시간이 최대인 행들\n",
+ " \n",
+ " if not recent_histories:\n",
+ " rhistory = pd.DataFrame({'inter_no':[], 'end_unix':[]}) # recent history\n",
+ " else:\n",
+ " rhistory = pd.concat(recent_histories)\n",
+ " recent_unix = rhistory[['inter_no', 'end_unix']]\n",
+ " display(recent_unix)\n",
+ " # 3. 상태 테이블 조회정보(A)와 이력 테이블 조회정보(B) 조인(키값 : 교차로번호) : C\n",
+ " print('''3. 상태 테이블 조회정보(A)와 이력 테이블 조회정보(B) 조인(키값 : 교차로번호) : C\n",
+ "4. C데이터 프레임에 신규 컬럼(시작 유닉스타임) 생성 후 종료유닉스 타임 값 입력, 종료 유닉스 타임 컬럼 제거\n",
+ "''')\n",
+ " move = pd.merge(move, recent_unix, how='left', on='inter_no')\n",
+ " move['end_unix'] = move['end_unix'].fillna(0).astype(int)\n",
+ " # 4. C데이터 프레임에 신규 컬럼(시작 유닉스타임) 생성 후 종료유닉스 타임 값 입력, 종료 유닉스 타임 컬럼 제거\n",
+ " move = move.rename(columns = {'end_unix':'start_unix'})\n",
+ " display(move)\n",
+ " # 5. 이동류 이력정보 READ\n",
+ " # - CSV 파일로 서버에 저장된 이동류정보를 읽어옴(파일이 없는 경우에는 데이터가 없는 프레임 D 생성)\n",
+ " try:\n",
+ " if isinstance(movement, pd.DataFrame): # movement가 존재할 경우 그걸 그대로 씀.\n",
+ " pass\n",
+ " else: \n",
+ " movement = pd.DataFrame()\n",
+ " except NameError: # movement가 존재하지 않는 경우 생성\n",
+ " movement = pd.DataFrame()\n",
+ " # 6. 이동류 이력정보 데이터테이블(D)에 C데이터 add\n",
+ " print('''\n",
+ "5. 이동류 이력정보 READ\n",
+ " - CSV 파일로 서버에 저장된 이동류정보를 읽어옴(파일이 없는 경우에는 데이터가 없는 프레임 D 생성\n",
+ "6. 이동류 이력정보 데이터테이블(D)에 C데이터 add\n",
+ "7. D데이터 프레임에서 중복데이터 제거(교차로번호, 시작 유닉스타임, A링 현시번호, B링 현시번호 같은 행은 제거)\n",
+ "8. D데이터 보관 시간 기준시간을 시작 유닉스 타임의 최대값 - self.subtractor // 2을 값으로 산출하고, 보관 시간 기준시간보다 작은 시작 유닉스 타임을 가진 행은 모두 제거(1시간 데이터만 보관)\n",
+ "''')\n",
+ " movement = pd.concat([movement, move])\n",
+ " # 7. D데이터 프레임에서 중복데이터 제거(교차로번호, 시작 유닉스타임, A링 현시번호, B링 현시번호 같은 행은 제거)\n",
+ " movement = movement.drop_duplicates(['inter_no','phas_A','phas_B','start_unix'])\n",
+ " # 8. D데이터 보관 시간 기준시간을 시작 유닉스 타임의 최대값 - self.subtractor // 2을 값으로 산출하고, 보관 시간 기준시간보다 작은 시작 유닉스 타임을 가진 행은 모두 제거(1시간 데이터만 보관)\n",
+ " movement = movement[movement.start_unix > fsec - self.subtractor // 2].reset_index(drop=True)\n",
+ " # movement = movement.sort_values(by=['start_unix','inter_no','phas_A','phas_B']).reset_index(drop=True)\n",
+ " display(movement)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "self.make_movement()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ " start_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 206 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704414620 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 206 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704414620 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 206 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704414620 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 206 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704414620 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704414640 | \n",
+ "
\n",
+ " \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ "
\n",
+ " \n",
+ " 658 | \n",
+ " 178 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704418150 | \n",
+ "
\n",
+ " \n",
+ " 659 | \n",
+ " 178 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704418150 | \n",
+ "
\n",
+ " \n",
+ " 660 | \n",
+ " 178 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704418150 | \n",
+ "
\n",
+ " \n",
+ " 661 | \n",
+ " 176 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704418180 | \n",
+ "
\n",
+ " \n",
+ " 662 | \n",
+ " 176 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 5 | \n",
+ " 18 | \n",
+ " 1704418180 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
663 rows × 6 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B start_unix\n",
+ "0 206 1 1 8 4 1704414620\n",
+ "1 206 2 2 17 18 1704414620\n",
+ "2 206 3 3 8 4 1704414620\n",
+ "3 206 4 4 17 18 1704414620\n",
+ "4 201 1 1 8 3 1704414640\n",
+ ".. ... ... ... ... ... ...\n",
+ "658 178 1 1 8 4 1704418150\n",
+ "659 178 3 3 5 2 1704418150\n",
+ "660 178 4 4 6 1 1704418150\n",
+ "661 176 1 1 8 4 1704418180\n",
+ "662 176 3 3 5 18 1704418180\n",
+ "\n",
+ "[663 rows x 6 columns]"
+ ]
+ },
+ "execution_count": 6,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "self.movement"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "self.update_movement()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " move_A | \n",
+ " move_B | \n",
+ " start_unix | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 206 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704414620 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 206 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704414620 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 206 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704414620 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 206 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704414620 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 201 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 1704414640 | \n",
+ "
\n",
+ " \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ "
\n",
+ " \n",
+ " 864 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 865 | \n",
+ " 175 | \n",
+ " 3 | \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 866 | \n",
+ " 175 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 5 | \n",
+ " 2 | \n",
+ " 1704417790 | \n",
+ "
\n",
+ " \n",
+ " 867 | \n",
+ " 177 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ " 1704418150 | \n",
+ "
\n",
+ " \n",
+ " 868 | \n",
+ " 177 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1704418150 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
869 rows × 6 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no phas_A phas_B move_A move_B start_unix\n",
+ "0 206 1 1 8 4 1704414620\n",
+ "1 206 2 2 17 18 1704414620\n",
+ "2 206 3 3 8 4 1704414620\n",
+ "3 206 4 4 17 18 1704414620\n",
+ "4 201 1 1 8 3 1704414640\n",
+ ".. ... ... ... ... ... ...\n",
+ "864 175 3 3 6 1 1704417790\n",
+ "865 175 3 4 6 2 1704417790\n",
+ "866 175 4 4 5 2 1704417790\n",
+ "867 177 1 1 8 4 1704418150\n",
+ "868 177 2 2 17 18 1704418150\n",
+ "\n",
+ "[869 rows x 6 columns]"
+ ]
+ },
+ "execution_count": 9,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "self.movement_updated"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " inter_no | \n",
+ " start_unix | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " duration | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 206 | \n",
+ " 1704417350 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 45 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 206 | \n",
+ " 1704417350 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 53 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 206 | \n",
+ " 1704417350 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 26 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 206 | \n",
+ " 1704417350 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 26 | \n",
+ "
\n",
+ " \n",
+ " 0 | \n",
+ " 206 | \n",
+ " 1704417500 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 45 | \n",
+ "
\n",
+ " \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 1704418350 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 103 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 176 | \n",
+ " 1704418350 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 40 | \n",
+ "
\n",
+ " \n",
+ " 0 | \n",
+ " 176 | \n",
+ " 1704418530 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 37 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 176 | \n",
+ " 1704418530 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 103 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 176 | \n",
+ " 1704418530 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 40 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
265 rows × 5 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " inter_no start_unix phas_A phas_B duration\n",
+ "0 206 1704417350 1 1 45\n",
+ "1 206 1704417350 2 2 53\n",
+ "2 206 1704417350 3 3 26\n",
+ "3 206 1704417350 4 4 26\n",
+ "0 206 1704417500 1 1 45\n",
+ ".. ... ... ... ... ...\n",
+ "1 176 1704418350 2 2 103\n",
+ "2 176 1704418350 3 3 40\n",
+ "0 176 1704418530 1 1 37\n",
+ "1 176 1704418530 2 2 103\n",
+ "2 176 1704418530 3 3 40\n",
+ "\n",
+ "[265 rows x 5 columns]"
+ ]
+ },
+ "execution_count": 10,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "self.hrhists"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "siggen",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.8.10"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
diff --git a/configs/credentials.json b/configs/credentials.json
deleted file mode 100644
index c4b8d9a5f..000000000
--- a/configs/credentials.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "DSNNAME": "Tibero6",
- "DBUSER": "snits",
- "DBPWD": "snits"
-}