{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "# 60개 신호교차로 목록\n", "inter_nos = pd.read_csv('(중원구) 스마트교차로_인접진입로 목록.csv')\n", "inter_nos = inter_nos['교차로ID'].unique()\n", "inter_nos = [int(inter_no) for inter_no in inter_nos]" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "# 교차로 마스터(TM_FA_CRSRD) 테이블의 신호교차로 목록\n", "TM_FA_CRSRD = pd.read_csv('TM_FA_CRSRD.csv')\n", "CRSRD_IDs = sorted([int(inter_no) for inter_no in TM_FA_CRSRD.CRSRD_ID])" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAtwAAAGFCAYAAADOwCTLAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/TGe4hAAAACXBIWXMAAA9hAAAPYQGoP6dpAABUpklEQVR4nO3dd3zTZeIH8E/2oHvQltGWUgFZAiJLBKyCCIqKqOiBxymi4kA9PFD0FM59onLqT1HhENFTxIGKgIJUdtkbZLQFSjedaZNm/v7I0SM0TdM06ZPxeb9eeSEZ335SS/rJk+f7PBKbzWYDERERERH5hFR0ACIiIiKiYMbCTURERETkQyzcREREREQ+xMJNRERERORDLNxERERERD7Ewk1ERERE5EMs3EREREREPsTCTURERETkQyzcREREREQ+xMJNRERERORDLNxERERERD7Ewk1ERERE5EMs3EREREREPsTCTURERETkQyzcREREREQ+xMJNRERERORDLNxERERERD7Ewk1ERERE5EMs3EREREREPsTCTURERETkQyzcREREREQ+xMJNRERERORDLNxERERERD7Ewk1ERERE5EMs3EREREREPsTCTURERETkQyzcREREREQ+xMJNRERERORDLNxERERERD7Ewk1ERERE5EMs3EREREREPsTCTURERETkQyzcREREREQ+xMJNRERERORDLNxERERERD7Ewk1ERERE5EMs3EREREREPsTCTURERETkQ3LRAYiIiEKRzWaD3qyH3qR3+NNgNsBgNsBoMTa4mCwmAIBEIoEEEqd/AoBUYh9Pk0AChUwBjVwDjUIDrULr9L/VcrWw7wNRKGDhJiIi8iGjxYgKQ0WDS1VdFaw2q+h4AOwF/eIiHqmKRIwmBjGaGERroiGXsi4QtYTEZrPZRIcgIiIKdDqjzmmxrjXVio7WIhJIEK4Kry/gFy6Rqsj6EXUico2Fm4iIqJlsNhvK9GUo0BWgoLoAhbpC6M160bFalUwiQ5Q6CjGaGMRqY5EUloQ4bRxLOJETLNxERERNsNqsKK0tRUF1AQp09oJttBhFx/I7SpkSiWGJSApLQlK4vYBfmE9OFMpYuImIiC5hsVpQVFOEQl0hCqoLUFRTBLPVLDpWwFFIFWgX3g4dIzuiQ0QHRKgiREciEoKFm4iICIDZasaZyjPILs/Gmcoz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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# !pip install matplotlib-venn\n", "from matplotlib_venn import venn2\n", "plt.rcParams['font.family'] = 'Malgun Gothic'\n", "venn2([set(inter_nos), set(CRSRD_IDs)], ('(중원구) 스마트교차로_인접진입로 목록.xlsx', '교차로 마스터(TM_FA_CRSRD)'))\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "교집합(23개) : [437, 443, 456, 457, 459, 461, 462, 463, 482, 484, 486, 491, 492, 503, 514, 523, 583, 633, 634, 636, 637, 638, 639]\n", "오른쪽만(198개) : [2, 5, 6, 9, 14, 15, 16, 18, 19, 24, 25, 27, 33, 38, 40, 44, 46, 49, 50, 53, 57, 64, 72, 78, 79, 83, 89, 91, 95, 96, 100, 102, 103, 104, 106, 119, 123, 131, 134, 135, 144, 145, 151, 154, 155, 156, 163, 167, 169, 172, 175, 178, 180, 183, 185, 191, 193, 201, 208, 214, 215, 217, 220, 222, 226, 231, 232, 240, 243, 245, 247, 249, 250, 254, 256, 259, 260, 263, 267, 270, 272, 273, 279, 281, 284, 287, 291, 293, 297, 298, 299, 300, 302, 305, 307, 320, 321, 325, 350, 354, 355, 358, 361, 364, 365, 367, 369, 371, 373, 375, 376, 377, 378, 379, 405, 409, 410, 411, 412, 414, 415, 416, 417, 420, 424, 425, 445, 448, 466, 467, 476, 481, 496, 506, 507, 517, 520, 522, 532, 534, 536, 541, 570, 592, 596, 622, 623, 624, 629, 645, 646, 648, 650, 656, 658, 660, 661, 676, 682, 683, 684, 691, 698, 699, 701, 703, 706, 707, 713, 722, 724, 727, 738, 739, 740, 741, 742, 743, 745, 747, 749, 751, 752, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2010, 2101, 2102, 2103, 2104, 2105, 2201]\n", "왼쪽만(37개) : [436, 438, 442, 444, 455, 458, 460, 464, 472, 474, 483, 485, 488, 490, 493, 494, 498, 499, 500, 502, 504, 515, 524, 527, 551, 561, 565, 575, 576, 581, 582, 611, 615, 631, 632, 635, 640]\n" ] } ], "source": [ "print(f'교집합({len(set(CRSRD_IDs) & set(inter_nos))}개) : {sorted(set(CRSRD_IDs) & set(inter_nos))}')\n", "print(f'오른쪽만({len(set(CRSRD_IDs) - set(inter_nos))}개) : {sorted(set(CRSRD_IDs) - set(inter_nos))}')\n", "print(f'왼쪽만({len(set(inter_nos) - set(CRSRD_IDs))}개) : {sorted(set(inter_nos) - set(CRSRD_IDs))}')" ] } ], "metadata": { "kernelspec": { "display_name": "siggen_env", "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.12.4" } }, "nbformat": 4, "nbformat_minor": 2 }