├── Ch1. 파이썬 기본과 마법공식 구현.ipynb ├── Ch2. Pandas를 이용한 데이터 분석.ipynb ├── Ch3. 데이터 수집하기 2.ipynb ├── Ch3. 데이터 수집하기.ipynb ├── Ch4. 전략 구현하기.ipynb ├── Ch5. 백테스트.ipynb ├── python_quant.py └── 엑셀 데이터.zip /Ch1. 파이썬 기본과 마법공식 구현.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "## 기본 데이터" 8 | ] 9 | }, 10 | { 11 | "cell_type": "code", 12 | "execution_count": 1, 13 | "metadata": {}, 14 | "outputs": [ 15 | { 16 | "data": { 17 | "text/plain": [ 18 | "1" 19 | ] 20 | }, 21 | "execution_count": 1, 22 | "metadata": {}, 23 | "output_type": "execute_result" 24 | } 25 | ], 26 | "source": [ 27 | "1" 28 | ] 29 | }, 30 | { 31 | "cell_type": "code", 32 | "execution_count": 2, 33 | "metadata": {}, 34 | "outputs": [ 35 | { 36 | "data": { 37 | "text/plain": [ 38 | "1.0" 39 | ] 40 | }, 41 | "execution_count": 2, 42 | "metadata": {}, 43 | "output_type": "execute_result" 44 | } 45 | ], 46 | "source": [ 47 | "1.0" 48 | ] 49 | }, 50 | { 51 | "cell_type": "code", 52 | "execution_count": 3, 53 | "metadata": {}, 54 | "outputs": [ 55 | { 56 | "data": { 57 | "text/plain": [ 58 | "'1'" 59 | ] 60 | }, 61 | "execution_count": 3, 62 | "metadata": {}, 63 | "output_type": "execute_result" 64 | } 65 | ], 66 | "source": [ 67 | "'1'" 68 | ] 69 | }, 70 | { 71 | "cell_type": "code", 72 | "execution_count": 4, 73 | "metadata": {}, 74 | "outputs": [ 75 | { 76 | "data": { 77 | "text/plain": [ 78 | "int" 79 | ] 80 | }, 81 | "execution_count": 4, 82 | "metadata": {}, 83 | "output_type": "execute_result" 84 | } 85 | ], 86 | "source": [ 87 | "type(1)" 88 | ] 89 | }, 90 | { 91 | "cell_type": "code", 92 | "execution_count": 5, 93 | "metadata": {}, 94 | "outputs": [ 95 | { 96 | "data": { 97 | "text/plain": [ 98 | "float" 99 | ] 100 | }, 101 | "execution_count": 5, 102 | "metadata": {}, 103 | "output_type": "execute_result" 104 | } 105 | ], 106 | "source": [ 107 | "type(1.0)" 108 | ] 109 | }, 110 | { 111 | "cell_type": "code", 112 | "execution_count": 6, 113 | "metadata": {}, 114 | "outputs": [ 115 | { 116 | "data": { 117 | "text/plain": [ 118 | "str" 119 | ] 120 | }, 121 | "execution_count": 6, 122 | "metadata": {}, 123 | "output_type": "execute_result" 124 | } 125 | ], 126 | "source": [ 127 | "type('1')" 128 | ] 129 | }, 130 | { 131 | "cell_type": "code", 132 | "execution_count": 7, 133 | "metadata": {}, 134 | "outputs": [ 135 | { 136 | "data": { 137 | "text/plain": [ 138 | "2.0" 139 | ] 140 | }, 141 | "execution_count": 7, 142 | "metadata": {}, 143 | "output_type": "execute_result" 144 | } 145 | ], 146 | "source": [ 147 | "1 + 1.0" 148 | ] 149 | }, 150 | { 151 | "cell_type": "code", 152 | "execution_count": 8, 153 | "metadata": {}, 154 | "outputs": [ 155 | { 156 | "ename": "TypeError", 157 | "evalue": "unsupported operand type(s) for +: 'int' and 'str'", 158 | "output_type": "error", 159 | "traceback": [ 160 | "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", 161 | "\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)", 162 | "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[1;36m1\u001b[0m \u001b[1;33m+\u001b[0m \u001b[1;34m'1'\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", 163 | "\u001b[1;31mTypeError\u001b[0m: unsupported operand type(s) for +: 'int' and 'str'" 164 | ] 165 | } 166 | ], 167 | "source": [ 168 | "1 + '1'" 169 | ] 170 | }, 171 | { 172 | "cell_type": "code", 173 | "execution_count": 10, 174 | "metadata": {}, 175 | "outputs": [ 176 | { 177 | "data": { 178 | "text/plain": [ 179 | "'성투 하세요'" 180 | ] 181 | }, 182 | "execution_count": 10, 183 | "metadata": {}, 184 | "output_type": "execute_result" 185 | } 186 | ], 187 | "source": [ 188 | "\"성투 \" + \"하세요\"" 189 | ] 190 | }, 191 | { 192 | "cell_type": "code", 193 | "execution_count": 11, 194 | "metadata": {}, 195 | "outputs": [ 196 | { 197 | "data": { 198 | "text/plain": [ 199 | "'성투성투성투'" 200 | ] 201 | }, 202 | "execution_count": 11, 203 | "metadata": {}, 204 | "output_type": "execute_result" 205 | } 206 | ], 207 | "source": [ 208 | "\"성투\" * 3" 209 | ] 210 | }, 211 | { 212 | "cell_type": "markdown", 213 | "metadata": {}, 214 | "source": [ 215 | "## 변수" 216 | ] 217 | }, 218 | { 219 | "cell_type": "code", 220 | "execution_count": 12, 221 | "metadata": {}, 222 | "outputs": [], 223 | "source": [ 224 | "test1 = 1\n", 225 | "\n", 226 | "test2 = 1.0\n", 227 | "\n", 228 | "test3 = '1'" 229 | ] 230 | }, 231 | { 232 | "cell_type": "markdown", 233 | "metadata": {}, 234 | "source": [ 235 | "## 리스트" 236 | ] 237 | }, 238 | { 239 | "cell_type": "code", 240 | "execution_count": 13, 241 | "metadata": {}, 242 | "outputs": [], 243 | "source": [ 244 | "stock_list = ['삼성전자', '현대차', '카카오', 'LG']" 245 | ] 246 | }, 247 | { 248 | "cell_type": "code", 249 | "execution_count": 14, 250 | "metadata": {}, 251 | "outputs": [ 252 | { 253 | "data": { 254 | "text/plain": [ 255 | "['삼성전자', '현대차', '카카오', 'LG']" 256 | ] 257 | }, 258 | "execution_count": 14, 259 | "metadata": {}, 260 | "output_type": "execute_result" 261 | } 262 | ], 263 | "source": [ 264 | "stock_list" 265 | ] 266 | }, 267 | { 268 | "cell_type": "code", 269 | "execution_count": 15, 270 | "metadata": {}, 271 | "outputs": [ 272 | { 273 | "data": { 274 | "text/plain": [ 275 | "'삼성전자'" 276 | ] 277 | }, 278 | "execution_count": 15, 279 | "metadata": {}, 280 | "output_type": "execute_result" 281 | } 282 | ], 283 | "source": [ 284 | "stock_list[0]" 285 | ] 286 | }, 287 | { 288 | "cell_type": "code", 289 | "execution_count": 16, 290 | "metadata": {}, 291 | "outputs": [ 292 | { 293 | "data": { 294 | "text/plain": [ 295 | "['현대차', '카카오']" 296 | ] 297 | }, 298 | "execution_count": 16, 299 | "metadata": {}, 300 | "output_type": "execute_result" 301 | } 302 | ], 303 | "source": [ 304 | "stock_list[1:3]" 305 | ] 306 | }, 307 | { 308 | "cell_type": "markdown", 309 | "metadata": {}, 310 | "source": [ 311 | "## 딕셔너리" 312 | ] 313 | }, 314 | { 315 | "cell_type": "code", 316 | "execution_count": 17, 317 | "metadata": {}, 318 | "outputs": [], 319 | "source": [ 320 | "per_dict = {'삼성전자': 8, 'LG': 4, '카카오': 5}" 321 | ] 322 | }, 323 | { 324 | "cell_type": "code", 325 | "execution_count": 18, 326 | "metadata": {}, 327 | "outputs": [ 328 | { 329 | "data": { 330 | "text/plain": [ 331 | "{'LG': 4, '삼성전자': 8, '카카오': 5}" 332 | ] 333 | }, 334 | "execution_count": 18, 335 | "metadata": {}, 336 | "output_type": "execute_result" 337 | } 338 | ], 339 | "source": [ 340 | "per_dict" 341 | ] 342 | }, 343 | { 344 | "cell_type": "code", 345 | "execution_count": 19, 346 | "metadata": {}, 347 | "outputs": [ 348 | { 349 | "data": { 350 | "text/plain": [ 351 | "4" 352 | ] 353 | }, 354 | "execution_count": 19, 355 | "metadata": {}, 356 | "output_type": "execute_result" 357 | } 358 | ], 359 | "source": [ 360 | "per_dict['LG']" 361 | ] 362 | }, 363 | { 364 | "cell_type": "markdown", 365 | "metadata": {}, 366 | "source": [ 367 | "## 튜플" 368 | ] 369 | }, 370 | { 371 | "cell_type": "code", 372 | "execution_count": 20, 373 | "metadata": {}, 374 | "outputs": [], 375 | "source": [ 376 | "stock_tuple = ('네이버', '삼성전자', '현대차', '카카오')" 377 | ] 378 | }, 379 | { 380 | "cell_type": "code", 381 | "execution_count": 21, 382 | "metadata": {}, 383 | "outputs": [ 384 | { 385 | "data": { 386 | "text/plain": [ 387 | "'현대차'" 388 | ] 389 | }, 390 | "execution_count": 21, 391 | "metadata": {}, 392 | "output_type": "execute_result" 393 | } 394 | ], 395 | "source": [ 396 | "stock_tuple[2]" 397 | ] 398 | }, 399 | { 400 | "cell_type": "code", 401 | "execution_count": 22, 402 | "metadata": {}, 403 | "outputs": [ 404 | { 405 | "ename": "TypeError", 406 | "evalue": "'tuple' object does not support item assignment", 407 | "output_type": "error", 408 | "traceback": [ 409 | "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", 410 | "\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)", 411 | "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mstock_tuple\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;34m'LG'\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", 412 | "\u001b[1;31mTypeError\u001b[0m: 'tuple' object does not support item assignment" 413 | ] 414 | } 415 | ], 416 | "source": [ 417 | "stock_tuple[1] = 'LG'" 418 | ] 419 | }, 420 | { 421 | "cell_type": "markdown", 422 | "metadata": {}, 423 | "source": [ 424 | "## 셋" 425 | ] 426 | }, 427 | { 428 | "cell_type": "code", 429 | "execution_count": 23, 430 | "metadata": {}, 431 | "outputs": [], 432 | "source": [ 433 | "stock_set = set(['삼성전자', 'LG', '현대차', '카카오', '네이버', 'LG'])" 434 | ] 435 | }, 436 | { 437 | "cell_type": "code", 438 | "execution_count": 24, 439 | "metadata": {}, 440 | "outputs": [ 441 | { 442 | "data": { 443 | "text/plain": [ 444 | "{'LG', '네이버', '삼성전자', '카카오', '현대차'}" 445 | ] 446 | }, 447 | "execution_count": 24, 448 | "metadata": {}, 449 | "output_type": "execute_result" 450 | } 451 | ], 452 | "source": [ 453 | "stock_set" 454 | ] 455 | }, 456 | { 457 | "cell_type": "markdown", 458 | "metadata": {}, 459 | "source": [ 460 | "## for문" 461 | ] 462 | }, 463 | { 464 | "cell_type": "code", 465 | "execution_count": 25, 466 | "metadata": {}, 467 | "outputs": [ 468 | { 469 | "name": "stdout", 470 | "output_type": "stream", 471 | "text": [ 472 | "1\n", 473 | "2\n", 474 | "3\n", 475 | "4\n", 476 | "5\n" 477 | ] 478 | } 479 | ], 480 | "source": [ 481 | "for i in [1, 2, 3, 4, 5]:\n", 482 | " print(i)" 483 | ] 484 | }, 485 | { 486 | "cell_type": "code", 487 | "execution_count": 26, 488 | "metadata": {}, 489 | "outputs": [ 490 | { 491 | "name": "stdout", 492 | "output_type": "stream", 493 | "text": [ 494 | "1\n", 495 | "2\n", 496 | "3\n", 497 | "4\n", 498 | "5\n", 499 | "6\n", 500 | "7\n", 501 | "8\n", 502 | "9\n" 503 | ] 504 | } 505 | ], 506 | "source": [ 507 | "for i in range(1, 10):\n", 508 | " print(i)" 509 | ] 510 | }, 511 | { 512 | "cell_type": "markdown", 513 | "metadata": {}, 514 | "source": [ 515 | "## while문" 516 | ] 517 | }, 518 | { 519 | "cell_type": "code", 520 | "execution_count": 27, 521 | "metadata": {}, 522 | "outputs": [ 523 | { 524 | "name": "stdout", 525 | "output_type": "stream", 526 | "text": [ 527 | "1\n", 528 | "2\n", 529 | "3\n", 530 | "4\n", 531 | "5\n" 532 | ] 533 | } 534 | ], 535 | "source": [ 536 | "a = 1\n", 537 | "while a < 6:\n", 538 | " print(a)\n", 539 | " a = a + 1" 540 | ] 541 | }, 542 | { 543 | "cell_type": "markdown", 544 | "metadata": {}, 545 | "source": [ 546 | "## 조건문" 547 | ] 548 | }, 549 | { 550 | "cell_type": "code", 551 | "execution_count": 28, 552 | "metadata": {}, 553 | "outputs": [ 554 | { 555 | "name": "stdout", 556 | "output_type": "stream", 557 | "text": [ 558 | "양수입니다\n" 559 | ] 560 | } 561 | ], 562 | "source": [ 563 | "number = 1\n", 564 | "\n", 565 | "if number > 0:\n", 566 | " print(\"양수입니다\")\n", 567 | "elif number < 0 :\n", 568 | " print(\"음수입니다\")\n", 569 | "else:\n", 570 | " print(\"0 입니다\")" 571 | ] 572 | }, 573 | { 574 | "cell_type": "markdown", 575 | "metadata": {}, 576 | "source": [ 577 | "## 마법공식 구현" 578 | ] 579 | }, 580 | { 581 | "cell_type": "code", 582 | "execution_count": 1, 583 | "metadata": {}, 584 | "outputs": [], 585 | "source": [ 586 | "#[코드 1.4] xlrd 모듈 임포트(import)하기 (Ch1. 파이썬 기본과 마법공식 구현.ipynb)\n", 587 | " \n", 588 | "import xlrd " 589 | ] 590 | }, 591 | { 592 | "cell_type": "code", 593 | "execution_count": 2, 594 | "metadata": {}, 595 | "outputs": [], 596 | "source": [ 597 | "#[코드 1.5] 마법공식 데이터 파일 연결하기 (Ch1. 파이썬 기본과 마법공식 구현.ipynb)\n", 598 | "\n", 599 | "file_path = 'C:\\\\Users\\\\JK\\\\Desktop\\\\파이썬으로 하는 퀀트투자\\\\마법공식 데이터.xlsx'\n", 600 | "wb = xlrd.open_workbook(file_path)" 601 | ] 602 | }, 603 | { 604 | "cell_type": "code", 605 | "execution_count": 3, 606 | "metadata": {}, 607 | "outputs": [], 608 | "source": [ 609 | "#[코드 1.6] PER시트와 연결하기(Ch1. 파이썬 기본과 마법공식 구현.ipynb)\n", 610 | "\n", 611 | "per_sh = wb.sheet_by_name('PER')" 612 | ] 613 | }, 614 | { 615 | "cell_type": "code", 616 | "execution_count": 4, 617 | "metadata": {}, 618 | "outputs": [], 619 | "source": [ 620 | "#[코드 1.7] PER시트에서 행 별로 데이터 읽어와 저장하기 (Ch1. 파이썬 기본과 마법공식 구현.ipynb)\n", 621 | "\n", 622 | "per_dict = { }\n", 623 | "for i in range(1, per_sh.nrows): \n", 624 | " data = per_sh.row_values(i)\n", 625 | " name = data[0]\n", 626 | " per = data[1]\n", 627 | " if per > 0:\n", 628 | " per_dict[name] = per" 629 | ] 630 | }, 631 | { 632 | "cell_type": "code", 633 | "execution_count": 6, 634 | "metadata": {}, 635 | "outputs": [], 636 | "source": [ 637 | "#[코드 1.8] 저장한 PER딕셔너리 정렬하기 (Ch1. 파이썬 기본과 마법공식 구현.ipynb)\n", 638 | "\n", 639 | "import operator\n", 640 | "\n", 641 | "sorted_per = sorted(per_dict.items(), key=operator.itemgetter(1))" 642 | ] 643 | }, 644 | { 645 | "cell_type": "code", 646 | "execution_count": 7, 647 | "metadata": {}, 648 | "outputs": [], 649 | "source": [ 650 | "#[코드 1.9] PER랭크 메기기 (Ch1. 파이썬 기본과 마법공식 구현.ipynb)\n", 651 | "\n", 652 | "per_rank = {}\n", 653 | "\n", 654 | "for num, firm in enumerate(sorted_per):\n", 655 | " per_rank[firm[0]] = num + 1 " 656 | ] 657 | }, 658 | { 659 | "cell_type": "code", 660 | "execution_count": 9, 661 | "metadata": {}, 662 | "outputs": [], 663 | "source": [ 664 | "#[코드 1.10] ROA시트 가져오기 (Ch1. 파이썬 기본과 마법공식 구현.ipynb)\n", 665 | "\n", 666 | "roa_sh = wb.sheet_by_name('ROA')" 667 | ] 668 | }, 669 | { 670 | "cell_type": "code", 671 | "execution_count": 11, 672 | "metadata": {}, 673 | "outputs": [], 674 | "source": [ 675 | "#[코드 1.11] ROA시트에서 행 별로 데이터 읽어와 저장하기 (Ch1. 파이썬 기본과 마법공식 구현.ipynb)\n", 676 | "\n", 677 | "roa_dict = { }\n", 678 | "\n", 679 | "for i in range(1, roa_sh.nrows): \n", 680 | " data = roa_sh.row_values(i)\n", 681 | " name = data[0]\n", 682 | " roa = data[1]\n", 683 | " if roa != '':\n", 684 | " roa_dict[name] = roa" 685 | ] 686 | }, 687 | { 688 | "cell_type": "code", 689 | "execution_count": 13, 690 | "metadata": {}, 691 | "outputs": [], 692 | "source": [ 693 | "#[코드 1.12] 저장한 ROA딕셔너리 정렬하기 (Ch1. 파이썬 기본과 마법공식 구현.ipynb)\n", 694 | "\n", 695 | "sorted_roa = sorted(roa_dict.items(), key=operator.itemgetter(1), reverse=True)" 696 | ] 697 | }, 698 | { 699 | "cell_type": "code", 700 | "execution_count": 14, 701 | "metadata": {}, 702 | "outputs": [], 703 | "source": [ 704 | "#[코드 1.13] ROA랭크 메기기 (Ch1. 파이썬 기본과 마법공식 구현.ipynb)\n", 705 | "\n", 706 | "roa_rank = {}\n", 707 | "\n", 708 | "for num, firm in enumerate(sorted_roa):\n", 709 | " roa_rank[firm[0]] = num + 1" 710 | ] 711 | }, 712 | { 713 | "cell_type": "code", 714 | "execution_count": 25, 715 | "metadata": {}, 716 | "outputs": [], 717 | "source": [ 718 | "#[코드 1.14] 종합랭크 메기기 (Ch1. 파이썬 기본과 마법공식 구현.ipynb)\n", 719 | "\n", 720 | "total_rank = {}\n", 721 | "\n", 722 | "for name in roa_rank.keys():\n", 723 | " if name in per_rank.keys():\n", 724 | " total_rank[name] = per_rank[name] + roa_rank[name]" 725 | ] 726 | }, 727 | { 728 | "cell_type": "code", 729 | "execution_count": 26, 730 | "metadata": { 731 | "collapsed": true 732 | }, 733 | "outputs": [ 734 | { 735 | "data": { 736 | "text/plain": [ 737 | "[('서한', 47),\n", 738 | " ('골프존', 59),\n", 739 | " ('동원개발', 68),\n", 740 | " ('오가닉티코스메틱', 70),\n", 741 | " ('모베이스', 97),\n", 742 | " ('테라세미콘', 111),\n", 743 | " ('제이스텍', 117),\n", 744 | " ('삼목에스폼', 122),\n", 745 | " ('영우디에스피', 124),\n", 746 | " ('HB테크놀러지', 132),\n", 747 | " ('로스웰', 141),\n", 748 | " ('한국자산신탁', 164),\n", 749 | " ('크리스탈신소재', 166),\n", 750 | " ('롯데케미칼', 169),\n", 751 | " ('한국토지신탁', 174),\n", 752 | " ('서호전기', 182),\n", 753 | " ('대원산업', 188),\n", 754 | " ('아이에스동서', 191),\n", 755 | " ('에스에이엠티', 198),\n", 756 | " ('대양금속', 207),\n", 757 | " ('차이나하오란', 216),\n", 758 | " ('완리', 218),\n", 759 | " ('DMS', 230),\n", 760 | " ('삼호', 234),\n", 761 | " ('슈피겐코리아', 245),\n", 762 | " ('삼양통상', 245),\n", 763 | " ('현대통신', 252),\n", 764 | " ('화성산업', 260),\n", 765 | " ('넥센', 264),\n", 766 | " ('한창제지', 264),\n", 767 | " ('조선선재', 269),\n", 768 | " ('서희건설', 272),\n", 769 | " ('로체시스템즈', 276),\n", 770 | " ('엠케이전자', 277),\n", 771 | " ('MH에탄올', 283),\n", 772 | " ('신화콘텍', 289),\n", 773 | " ('KB오토시스', 292),\n", 774 | " ('아이씨디', 293),\n", 775 | " ('나이스정보통신', 301),\n", 776 | " ('동양파일', 302),\n", 777 | " ('코메론', 302),\n", 778 | " ('현대EP', 302),\n", 779 | " ('인포바인', 308),\n", 780 | " ('리더스코스메틱', 312),\n", 781 | " ('세보엠이씨', 313),\n", 782 | " ('삼호개발', 319),\n", 783 | " ('넥스턴', 321),\n", 784 | " ('동아에스텍', 323),\n", 785 | " ('코텍', 335),\n", 786 | " ('애경유화', 351),\n", 787 | " ('대림씨엔에스', 357),\n", 788 | " ('영보화학', 359),\n", 789 | " ('디지털대성', 366),\n", 790 | " ('와이솔', 366),\n", 791 | " ('현대엘리베이', 366),\n", 792 | " ('삼진', 367),\n", 793 | " ('백산', 374),\n", 794 | " ('동아엘텍', 377),\n", 795 | " ('GST', 388),\n", 796 | " ('인베니아', 391),\n", 797 | " ('대한유화', 392),\n", 798 | " ('블루콤', 396),\n", 799 | " ('사조오양', 398),\n", 800 | " ('SK하이닉스', 400),\n", 801 | " ('풍산홀딩스', 403),\n", 802 | " ('바텍', 411),\n", 803 | " ('대륙제관', 416),\n", 804 | " ('에스티아이', 425),\n", 805 | " ('프럼파스트', 426),\n", 806 | " ('제우스', 427),\n", 807 | " ('미원상사', 435),\n", 808 | " ('현대시멘트', 436),\n", 809 | " ('아트라스BX', 438),\n", 810 | " ('신세계건설', 441),\n", 811 | " ('유아이엘', 445),\n", 812 | " ('프로텍', 446),\n", 813 | " ('국동', 453),\n", 814 | " ('고려신용정보', 460),\n", 815 | " ('에버다임', 461),\n", 816 | " ('한전산업', 469),\n", 817 | " ('유니테스트', 472),\n", 818 | " ('이녹스', 474),\n", 819 | " ('부산산업', 481),\n", 820 | " ('미원화학', 482),\n", 821 | " ('한국타이어', 482),\n", 822 | " ('에스텍', 482),\n", 823 | " ('이엔에프테크놀로지', 483),\n", 824 | " ('동원산업', 485),\n", 825 | " ('SH에너지화학', 493),\n", 826 | " ('엠에스씨', 495),\n", 827 | " ('한국전력', 495),\n", 828 | " ('금강공업', 498),\n", 829 | " ('조광피혁', 503),\n", 830 | " ('KT&G', 505),\n", 831 | " ('케이디켐', 505),\n", 832 | " ('포스코강판', 507),\n", 833 | " ('디씨엠', 507),\n", 834 | " ('극동유화', 507),\n", 835 | " ('사조대림', 509),\n", 836 | " ('금호에이치티', 515),\n", 837 | " ('GS', 517),\n", 838 | " ('에스엘', 518),\n", 839 | " ('싸이맥스', 526),\n", 840 | " ('한국타이어월드와이드', 526),\n", 841 | " ('현대산업', 535),\n", 842 | " ('테스', 536),\n", 843 | " ('넥센타이어', 539),\n", 844 | " ('예림당', 541),\n", 845 | " ('성도이엔지', 541),\n", 846 | " ('에스에프에이', 548),\n", 847 | " ('컴투스', 555),\n", 848 | " ('대아티아이', 555),\n", 849 | " ('티웨이홀딩스', 560),\n", 850 | " ('일진파워', 567),\n", 851 | " ('상신브레이크', 567),\n", 852 | " ('대한약품', 569),\n", 853 | " ('에스코넥', 572),\n", 854 | " ('탑엔지니어링', 572),\n", 855 | " ('휴켐스', 573),\n", 856 | " ('제주항공', 574),\n", 857 | " ('새론오토모티브', 579),\n", 858 | " ('효성오앤비', 585),\n", 859 | " ('삼지전자', 588),\n", 860 | " ('유니트론텍', 589),\n", 861 | " ('한익스프레스', 592),\n", 862 | " ('한솔로지스틱스', 597),\n", 863 | " ('세아특수강', 597),\n", 864 | " ('메디아나', 599),\n", 865 | " ('코프라', 607),\n", 866 | " ('한국경제TV', 613),\n", 867 | " ('알에프텍', 614),\n", 868 | " ('노루페인트', 614),\n", 869 | " ('한국공항', 615),\n", 870 | " ('동성화학', 619),\n", 871 | " ('선진', 620),\n", 872 | " ('빅솔론', 620),\n", 873 | " ('피에스케이', 631),\n", 874 | " ('한국단자', 634),\n", 875 | " ('AK홀딩스', 636),\n", 876 | " ('태양', 636),\n", 877 | " ('풍산', 637),\n", 878 | " ('톱텍', 638),\n", 879 | " ('STX', 639),\n", 880 | " ('하이록코리아', 640),\n", 881 | " ('네오오토', 640),\n", 882 | " ('한국석유', 640),\n", 883 | " ('토비스', 643),\n", 884 | " ('한국내화', 645),\n", 885 | " ('뷰웍스', 646),\n", 886 | " ('SJM', 646),\n", 887 | " ('에스앤씨엔진그룹', 649),\n", 888 | " ('무학', 651),\n", 889 | " ('동양이엔피', 652),\n", 890 | " ('아세아시멘트', 655),\n", 891 | " ('디에이치피코리아', 656),\n", 892 | " ('아세아텍', 657),\n", 893 | " ('케이아이엔엑스', 659),\n", 894 | " ('금화피에스시', 659),\n", 895 | " ('삼성전자', 660),\n", 896 | " ('LG', 665),\n", 897 | " ('코리아오토글라스', 666),\n", 898 | " ('아세아', 667),\n", 899 | " ('대창단조', 668),\n", 900 | " ('비아트론', 671),\n", 901 | " ('디엔에프', 674),\n", 902 | " ('마이크로프랜드', 683),\n", 903 | " ('한솔케미칼', 683),\n", 904 | " ('LG디스플레이', 683),\n", 905 | " ('바이오로그디바이스', 684),\n", 906 | " ('현대공업', 687),\n", 907 | " ('쌍용양회', 688),\n", 908 | " ('대호피앤씨', 692),\n", 909 | " ('엘엠에스', 692),\n", 910 | " ('현대글로비스', 696),\n", 911 | " ('삼진제약', 697),\n", 912 | " ('진로발효', 697),\n", 913 | " ('유니셈', 697),\n", 914 | " ('에프에스티', 698),\n", 915 | " ('후성', 699),\n", 916 | " ('에스티팜', 702),\n", 917 | " ('지엔씨에너지', 703),\n", 918 | " ('DSR', 705),\n", 919 | " ('한화케미칼', 706),\n", 920 | " ('우주일렉트로', 709),\n", 921 | " ('화승인더', 711),\n", 922 | " ('원익IPS', 715),\n", 923 | " ('광주신세계', 717),\n", 924 | " ('사조산업', 718),\n", 925 | " ('흥국', 718),\n", 926 | " ('대한제분', 718),\n", 927 | " ('리드코프', 718),\n", 928 | " ('하이비젼시스템', 724),\n", 929 | " ('인탑스', 728),\n", 930 | " ('파라텍', 740),\n", 931 | " ('SK머티리얼즈', 741),\n", 932 | " ('스카이라이프', 743),\n", 933 | " ('대한제강', 743),\n", 934 | " ('엔에스쇼핑', 744),\n", 935 | " ('제룡산업', 745),\n", 936 | " ('코맥스', 746),\n", 937 | " ('멀티캠퍼스', 747),\n", 938 | " ('현대에이치씨엔', 748),\n", 939 | " ('한국가구', 751),\n", 940 | " ('롯데하이마트', 752),\n", 941 | " ('오공', 753),\n", 942 | " ('남선알미늄', 754),\n", 943 | " ('신일제약', 755),\n", 944 | " ('강원랜드', 756),\n", 945 | " ('SJM홀딩스', 756),\n", 946 | " ('아이콘트롤스', 757),\n", 947 | " ('일지테크', 758),\n", 948 | " ('NI스틸', 759),\n", 949 | " ('아비코전자', 760),\n", 950 | " ('이크레더블', 765),\n", 951 | " ('부스타', 765),\n", 952 | " ('한국알콜', 767),\n", 953 | " ('황금에스티', 767),\n", 954 | " ('동아화성', 770),\n", 955 | " ('유진기업', 771),\n", 956 | " ('GKL', 774),\n", 957 | " ('AP시스템', 776),\n", 958 | " ('코웰패션', 777),\n", 959 | " ('영원무역', 777),\n", 960 | " ('삼정펄프', 783),\n", 961 | " ('주성엔지니어링', 785),\n", 962 | " ('진바이오텍', 787),\n", 963 | " ('한국쉘석유', 791),\n", 964 | " ('동국제약', 791),\n", 965 | " ('세방전지', 792),\n", 966 | " ('하림', 793),\n", 967 | " ('대정화금', 793),\n", 968 | " ('삼륭물산', 794),\n", 969 | " ('현대모비스', 796),\n", 970 | " ('아바텍', 796),\n", 971 | " ('영원무역홀딩스', 797),\n", 972 | " ('대봉엘에스', 800),\n", 973 | " ('대양전기공업', 802),\n", 974 | " ('대성미생물', 803),\n", 975 | " ('오디텍', 805),\n", 976 | " ('한신공영', 805),\n", 977 | " ('한국정보통신', 807),\n", 978 | " ('필룩스', 810),\n", 979 | " ('다나와', 814),\n", 980 | " ('코엔텍', 814),\n", 981 | " ('쎄니트', 814),\n", 982 | " ('효성', 814),\n", 983 | " ('미원에스씨', 816),\n", 984 | " ('평화정공', 817),\n", 985 | " ('KSS해운', 818),\n", 986 | " ('코웨이', 827),\n", 987 | " ('아프리카TV', 827),\n", 988 | " ('동화기업', 829),\n", 989 | " ('삼기오토모티브', 831),\n", 990 | " ('선데이토즈', 833),\n", 991 | " ('한라', 833),\n", 992 | " ('진도', 839),\n", 993 | " ('아시아경제', 841),\n", 994 | " ('티에이치엔', 843),\n", 995 | " ('사람인에이치알', 844),\n", 996 | " ('NICE평가정보', 846),\n", 997 | " ('NICE', 846),\n", 998 | " ('SK가스', 846),\n", 999 | " ('대림산업', 846),\n", 1000 | " ('한솔씨앤피', 852),\n", 1001 | " ('고려아연', 852),\n", 1002 | " ('국보디자인', 854),\n", 1003 | " ('강남제비스코', 858),\n", 1004 | " ('동국산업', 859),\n", 1005 | " ('한국기업평가', 862),\n", 1006 | " ('코콤', 862),\n", 1007 | " ('유니드', 864),\n", 1008 | " ('계룡건설', 868),\n", 1009 | " ('SK텔레콤', 869),\n", 1010 | " ('동원수산', 871),\n", 1011 | " ('조흥', 872),\n", 1012 | " ('에스씨디', 874),\n", 1013 | " ('에이텍', 875),\n", 1014 | " ('DRB동일', 880),\n", 1015 | " ('라이온켐텍', 881),\n", 1016 | " ('세이브존I&C', 881),\n", 1017 | " ('한국화장품', 883),\n", 1018 | " ('경동제약', 883),\n", 1019 | " ('쎌바이오텍', 890),\n", 1020 | " ('성우전자', 890),\n", 1021 | " ('서연이화', 893),\n", 1022 | " ('리노공업', 894),\n", 1023 | " ('인지디스플레', 894),\n", 1024 | " ('성우테크론', 894),\n", 1025 | " ('현대리바트', 895),\n", 1026 | " ('와이엠씨', 900),\n", 1027 | " ('삼화왕관', 902),\n", 1028 | " ('F&F', 902),\n", 1029 | " ('한전KPS', 907),\n", 1030 | " ('정상제이엘에스', 910),\n", 1031 | " ('신화실업', 910),\n", 1032 | " ('초록뱀', 914),\n", 1033 | " ('한일네트웍스', 915),\n", 1034 | " ('엔브이에이치코리아', 920),\n", 1035 | " ('서산', 922),\n", 1036 | " ('아진산업', 924),\n", 1037 | " ('피제이전자', 924),\n", 1038 | " ('조광ILI', 932),\n", 1039 | " ('KMH', 934),\n", 1040 | " ('콜마비앤에이치', 936),\n", 1041 | " ('인터로조', 937),\n", 1042 | " ('S&T모티브', 939),\n", 1043 | " ('티씨케이', 940),\n", 1044 | " ('LG하우시스', 941),\n", 1045 | " ('현대백화점', 944),\n", 1046 | " ('오텍', 948),\n", 1047 | " ('현대건설', 948),\n", 1048 | " ('케이티스', 949),\n", 1049 | " ('SKC 솔믹스', 950),\n", 1050 | " ('대덕전자', 951),\n", 1051 | " ('LG유플러스', 951),\n", 1052 | " ('가온미디어', 954),\n", 1053 | " ('미래테크놀로지', 957),\n", 1054 | " ('유니테크노', 958),\n", 1055 | " ('동신건설', 958),\n", 1056 | " ('예스티', 959),\n", 1057 | " ('오뚜기', 960),\n", 1058 | " ('유성티엔에스', 960),\n", 1059 | " ('KISCO홀딩스', 960),\n", 1060 | " ('엠에스오토텍', 964),\n", 1061 | " ('KCI', 966),\n", 1062 | " ('세아홀딩스', 968),\n", 1063 | " ('하림홀딩스', 969),\n", 1064 | " ('푸른저축은행', 969),\n", 1065 | " ('케이맥', 970),\n", 1066 | " ('S&K폴리텍', 971),\n", 1067 | " ('원익QnC', 972),\n", 1068 | " ('KPX케미칼', 974),\n", 1069 | " ('우진플라임', 979),\n", 1070 | " ('신라교역', 980),\n", 1071 | " ('노루홀딩스', 980),\n", 1072 | " ('LG화학', 985),\n", 1073 | " ('SK이노베이션', 987),\n", 1074 | " ('한양이엔지', 994),\n", 1075 | " ('동원F&B', 1000),\n", 1076 | " ('메가스터디교육', 1001),\n", 1077 | " ('제이에스코퍼레이션', 1002),\n", 1078 | " ('웅진씽크빅', 1004),\n", 1079 | " ('삼원강재', 1012),\n", 1080 | " ('GS리테일', 1013),\n", 1081 | " ('화승엔터프라이즈', 1015),\n", 1082 | " ('콤텍시스템', 1015),\n", 1083 | " ('한라홀딩스', 1016),\n", 1084 | " ('비츠로셀', 1017),\n", 1085 | " ('휠라코리아', 1017),\n", 1086 | " ('아이센스', 1019),\n", 1087 | " ('지스마트글로벌', 1021),\n", 1088 | " ('현대중공업', 1022),\n", 1089 | " ('가비아', 1024),\n", 1090 | " ('흥국에프엔비', 1026),\n", 1091 | " ('더블유게임즈', 1028),\n", 1092 | " ('우수AMS', 1028),\n", 1093 | " ('LG생활건강', 1030),\n", 1094 | " ('삼양식품', 1031),\n", 1095 | " ('원익홀딩스', 1031),\n", 1096 | " ('환인제약', 1032),\n", 1097 | " ('세운메디칼', 1033),\n", 1098 | " ('KPX생명과학', 1035),\n", 1099 | " ('원익머트리얼즈', 1036),\n", 1100 | " ('마니커', 1036),\n", 1101 | " ('바른손이앤에이', 1037),\n", 1102 | " ('서흥', 1037),\n", 1103 | " ('천일고속', 1040),\n", 1104 | " ('NPC', 1041),\n", 1105 | " ('삼화네트웍스', 1047),\n", 1106 | " ('빛샘전자', 1047),\n", 1107 | " ('하이스틸', 1049),\n", 1108 | " ('대원제약', 1050),\n", 1109 | " ('유나이티드제약', 1050),\n", 1110 | " ('GS홈쇼핑', 1050),\n", 1111 | " ('씨큐브', 1050),\n", 1112 | " ('태영건설', 1050),\n", 1113 | " ('중앙백신', 1051),\n", 1114 | " ('에스원', 1052),\n", 1115 | " ('모두투어', 1053),\n", 1116 | " ('윈스', 1053),\n", 1117 | " ('YW', 1053),\n", 1118 | " ('디오', 1054),\n", 1119 | " ('이테크건설', 1054),\n", 1120 | " ('신풍제지', 1055),\n", 1121 | " ('제일연마', 1057),\n", 1122 | " ('KT', 1057),\n", 1123 | " ('CJ', 1060),\n", 1124 | " ('한글과컴퓨터', 1061),\n", 1125 | " ('CJ제일제당', 1062),\n", 1126 | " ('디와이파워', 1064),\n", 1127 | " ('미래나노텍', 1066),\n", 1128 | " ('한솔제지', 1066),\n", 1129 | " ('대원강업', 1067),\n", 1130 | " ('피앤씨테크', 1067),\n", 1131 | " ('KCC건설', 1068),\n", 1132 | " ('동아지질', 1069),\n", 1133 | " ('종근당', 1071),\n", 1134 | " ('동원시스템즈', 1072),\n", 1135 | " ('한샘', 1074),\n", 1136 | " ('풍강', 1074),\n", 1137 | " ('한온시스템', 1075),\n", 1138 | " ('미창석유', 1077),\n", 1139 | " ('한일시멘트', 1080),\n", 1140 | " ('모다이노칩', 1081),\n", 1141 | " ('휴젤', 1087),\n", 1142 | " ('고영', 1090),\n", 1143 | " ('토탈소프트', 1091),\n", 1144 | " ('인바디', 1097),\n", 1145 | " ('하츠', 1097),\n", 1146 | " ('제이씨케미칼', 1099),\n", 1147 | " ('롯데푸드', 1100),\n", 1148 | " ('파버나인', 1100),\n", 1149 | " ('한창산업', 1100),\n", 1150 | " ('이니텍', 1101),\n", 1151 | " ('현대제철', 1101),\n", 1152 | " ('제이씨현시스템', 1102),\n", 1153 | " ('정다운', 1105),\n", 1154 | " ('아모텍', 1106),\n", 1155 | " ('동성코퍼레이션', 1106),\n", 1156 | " ('코오롱플라스틱', 1106),\n", 1157 | " ('알루코', 1106),\n", 1158 | " ('디지틀조선', 1107),\n", 1159 | " ('캐스텍코리아', 1108),\n", 1160 | " ('계양전기', 1111),\n", 1161 | " ('엔씨소프트', 1112),\n", 1162 | " ('유비쿼스', 1112),\n", 1163 | " ('풍국주정', 1112),\n", 1164 | " ('이마트', 1114),\n", 1165 | " ('한미반도체', 1116),\n", 1166 | " ('미코', 1116),\n", 1167 | " ('비상교육', 1118),\n", 1168 | " ('대림제지', 1119),\n", 1169 | " ('송원산업', 1120),\n", 1170 | " ('유진테크', 1122),\n", 1171 | " ('정산애강', 1125),\n", 1172 | " ('레이언스', 1128),\n", 1173 | " ('종근당홀딩스', 1131),\n", 1174 | " ('서연', 1131),\n", 1175 | " ('성우하이텍', 1133),\n", 1176 | " ('네오팜', 1134),\n", 1177 | " ('JW생명과학', 1135),\n", 1178 | " ('로보스타', 1136),\n", 1179 | " ('고려제약', 1137),\n", 1180 | " ('화승알앤에이', 1137),\n", 1181 | " ('DSC인베스트먼트', 1138),\n", 1182 | " ('원풍', 1138),\n", 1183 | " ('타이거일렉', 1138),\n", 1184 | " ('대교', 1138),\n", 1185 | " ('한신기계', 1139),\n", 1186 | " ('진양폴리', 1139),\n", 1187 | " ('NAVER', 1140),\n", 1188 | " ('로엔', 1142),\n", 1189 | " ('엘비세미콘', 1142),\n", 1190 | " ('빙그레', 1145),\n", 1191 | " ('세아제강', 1146),\n", 1192 | " ('이엠넷', 1151),\n", 1193 | " ('현대홈쇼핑', 1152),\n", 1194 | " ('심텍', 1153),\n", 1195 | " ('동부건설', 1154),\n", 1196 | " ('대상홀딩스', 1155),\n", 1197 | " ('포스코켐텍', 1157),\n", 1198 | " ('보광산업', 1157),\n", 1199 | " ('에스피지', 1157),\n", 1200 | " ('벽산', 1159),\n", 1201 | " ('딜리', 1159),\n", 1202 | " ('효성ITX', 1161),\n", 1203 | " ('CS홀딩스', 1161),\n", 1204 | " ('와이지-원', 1162),\n", 1205 | " ('코다코', 1162),\n", 1206 | " ('한미글로벌', 1162),\n", 1207 | " ('동일산업', 1162),\n", 1208 | " ('아이쓰리시스템', 1163),\n", 1209 | " ('디케이디앤아이', 1163),\n", 1210 | " ('SK디앤디', 1163),\n", 1211 | " ('TCC동양', 1163),\n", 1212 | " ('웹젠', 1164),\n", 1213 | " ('종근당바이오', 1166),\n", 1214 | " ('해성디에스', 1166),\n", 1215 | " ('이상네트웍스', 1170),\n", 1216 | " ('메디톡스', 1178),\n", 1217 | " ('한농화성', 1180),\n", 1218 | " ('한국콜마', 1182),\n", 1219 | " ('비에이치아이', 1182),\n", 1220 | " ('매일유업', 1183),\n", 1221 | " ('어보브반도체', 1185),\n", 1222 | " ('한국철강', 1186),\n", 1223 | " ('기아차', 1187),\n", 1224 | " ('LS전선아시아', 1188),\n", 1225 | " ('메리츠금융지주', 1193),\n", 1226 | " ('에이스침대', 1196),\n", 1227 | " ('오로라', 1197),\n", 1228 | " ('한국화장품제조', 1200),\n", 1229 | " ('팜스토리', 1200),\n", 1230 | " ('조선내화', 1200),\n", 1231 | " ('와이지엔터테인먼트', 1201),\n", 1232 | " ('이지바이오', 1202),\n", 1233 | " ('레드캡투어', 1206),\n", 1234 | " ('휴비츠', 1207),\n", 1235 | " ('메리츠화재', 1208),\n", 1236 | " ('텍셀네트컴', 1209),\n", 1237 | " ('이랜텍', 1210),\n", 1238 | " ('한국유리', 1211),\n", 1239 | " ('세중', 1213),\n", 1240 | " ('한섬', 1214),\n", 1241 | " ('디아이씨', 1214),\n", 1242 | " ('JYP Ent.', 1217),\n", 1243 | " ('파세코', 1222),\n", 1244 | " ('삼양사', 1223),\n", 1245 | " ('쇼박스', 1224),\n", 1246 | " ('유비케어', 1229),\n", 1247 | " ('영화금속', 1229),\n", 1248 | " ('뉴트리바이오텍', 1232),\n", 1249 | " ('동남합성', 1233),\n", 1250 | " ('한화', 1236),\n", 1251 | " ('더존비즈온', 1238),\n", 1252 | " ('테크윙', 1238),\n", 1253 | " ('솔브레인', 1239),\n", 1254 | " ('한솔홈데코', 1240),\n", 1255 | " ('세아베스틸', 1241),\n", 1256 | " ('KPX홀딩스', 1244),\n", 1257 | " ('POSCO', 1246),\n", 1258 | " ('신원종합개발', 1246),\n", 1259 | " ('대한해운', 1247),\n", 1260 | " ('코라오홀딩스', 1248),\n", 1261 | " ('아모레퍼시픽', 1252),\n", 1262 | " ('크라운제과', 1252),\n", 1263 | " ('현대차', 1254),\n", 1264 | " ('씨엠에스에듀', 1255),\n", 1265 | " ('크린앤사이언스', 1255),\n", 1266 | " ('디에이테크놀로지', 1255),\n", 1267 | " ('KG모빌리언스', 1255),\n", 1268 | " ('이오테크닉스', 1256),\n", 1269 | " ('아바코', 1256),\n", 1270 | " ('에스에이티', 1256),\n", 1271 | " ('코위버', 1257),\n", 1272 | " ('에이디칩스', 1260),\n", 1273 | " ('LIG넥스원', 1261),\n", 1274 | " ('ISC', 1262),\n", 1275 | " ('사조씨푸드', 1263),\n", 1276 | " ('조광페인트', 1265),\n", 1277 | " ('한국콜마홀딩스', 1266),\n", 1278 | " ('백광소재', 1267),\n", 1279 | " ('시노펙스', 1270),\n", 1280 | " ('금비', 1270),\n", 1281 | " ('SKC코오롱PI', 1272),\n", 1282 | " ('대상', 1274),\n", 1283 | " ('아이즈비전', 1276),\n", 1284 | " ('태양금속', 1278),\n", 1285 | " ('DSR제강', 1283),\n", 1286 | " ('새로닉스', 1285),\n", 1287 | " ('매커스', 1288),\n", 1288 | " ('한국제지', 1289),\n", 1289 | " ('삼화콘덴서', 1291),\n", 1290 | " ('광주은행', 1292),\n", 1291 | " ('바디텍메드', 1294),\n", 1292 | " ('디피씨', 1294),\n", 1293 | " ('대림B&Co', 1295),\n", 1294 | " ('아진엑스텍', 1296),\n", 1295 | " ('텔코웨어', 1299),\n", 1296 | " ('농심홀딩스', 1300),\n", 1297 | " ('대원전선', 1300),\n", 1298 | " ('동양에스텍', 1302),\n", 1299 | " ('한화손해보험', 1304),\n", 1300 | " ('샘표', 1305),\n", 1301 | " ('해태제과식품', 1308),\n", 1302 | " ('우리산업', 1309),\n", 1303 | " ('흥국화재', 1309),\n", 1304 | " ('비트컴퓨터', 1311),\n", 1305 | " ('신일산업', 1312),\n", 1306 | " ('대원화성', 1313),\n", 1307 | " ('티피씨글로벌', 1314),\n", 1308 | " ('신성델타테크', 1320),\n", 1309 | " ('원일특강', 1321),\n", 1310 | " ('삼익THK', 1322),\n", 1311 | " ('나스미디어', 1323),\n", 1312 | " ('팜스코', 1323),\n", 1313 | " ('서울반도체', 1324),\n", 1314 | " ('슈프리마에이치큐', 1325),\n", 1315 | " ('엑시콘', 1325),\n", 1316 | " ('원익', 1326),\n", 1317 | " ('케이피에프', 1327),\n", 1318 | " ('삼강엠앤티', 1327),\n", 1319 | " ('광동제약', 1328),\n", 1320 | " ('디와이', 1330),\n", 1321 | " ('삼현철강', 1330),\n", 1322 | " ('코리안리', 1333),\n", 1323 | " ('GH신소재', 1335),\n", 1324 | " ('라온시큐어', 1337),\n", 1325 | " ('진성티이씨', 1341),\n", 1326 | " ('제일기획', 1344),\n", 1327 | " ('아모레G', 1345),\n", 1328 | " ('티에스인베스트먼트', 1347),\n", 1329 | " ('S-Oil', 1347),\n", 1330 | " ('연우', 1349),\n", 1331 | " ('비씨월드제약', 1352),\n", 1332 | " ('한국전자금융', 1352),\n", 1333 | " ('위지트', 1352),\n", 1334 | " ('동일고무벨트', 1352),\n", 1335 | " ('동진쎄미켐', 1353),\n", 1336 | " ('삼영이엔씨', 1354),\n", 1337 | " ('현대해상', 1354),\n", 1338 | " ('휴온스글로벌', 1355),\n", 1339 | " ('JB금융지주', 1355),\n", 1340 | " ('현우산업', 1357),\n", 1341 | " ('BNK금융지주', 1358),\n", 1342 | " ('오스템임플란트', 1359),\n", 1343 | " ('나이스디앤비', 1359),\n", 1344 | " ('스타플렉스', 1363),\n", 1345 | " ('선광', 1363),\n", 1346 | " ('코리아에스이', 1363),\n", 1347 | " ('THE E&M', 1364),\n", 1348 | " ('삼성에스디에스', 1367),\n", 1349 | " ('NHN한국사이버결제', 1369),\n", 1350 | " ('뉴프렉스', 1369),\n", 1351 | " ('무림SP', 1369),\n", 1352 | " ('다우기술', 1374),\n", 1353 | " ('칩스앤미디어', 1375),\n", 1354 | " ('삼본정밀전자', 1377),\n", 1355 | " ('서원인텍', 1377),\n", 1356 | " ('문배철강', 1380),\n", 1357 | " ('에머슨퍼시픽', 1381),\n", 1358 | " ('한국정보인증', 1382),\n", 1359 | " ('락앤락', 1382),\n", 1360 | " ('옵트론텍', 1382),\n", 1361 | " ('국도화학', 1382),\n", 1362 | " ('한세실업', 1388),\n", 1363 | " ('LS산전', 1391),\n", 1364 | " ('유라테크', 1391),\n", 1365 | " ('제주은행', 1391),\n", 1366 | " ('SPC삼립', 1394),\n", 1367 | " ('경동나비엔', 1394),\n", 1368 | " ('디스플레이텍', 1394),\n", 1369 | " ('교보증권', 1394),\n", 1370 | " ('미래에셋생명', 1394),\n", 1371 | " ('포스코 ICT', 1395),\n", 1372 | " ('HRS', 1395),\n", 1373 | " ('삼천당제약', 1400),\n", 1374 | " ('안랩', 1400),\n", 1375 | " ('에이티세미콘', 1401),\n", 1376 | " ('태광산업', 1401),\n", 1377 | " ('방림', 1401),\n", 1378 | " ('기업은행', 1401),\n", 1379 | " ('아이텍반도체', 1402),\n", 1380 | " ('DGB금융지주', 1402),\n", 1381 | " ('신한지주', 1403),\n", 1382 | " ('현대비앤지스틸', 1405),\n", 1383 | " ('그랜드백화점', 1406),\n", 1384 | " ('LS', 1407),\n", 1385 | " ('동화약품', 1408),\n", 1386 | " ('남화토건', 1409),\n", 1387 | " ('현대그린푸드', 1412),\n", 1388 | " ('제이콘텐트리', 1413),\n", 1389 | " ('케이피티', 1415),\n", 1390 | " ('한세예스24홀딩스', 1417),\n", 1391 | " ('코오롱인더', 1417),\n", 1392 | " ('키움증권', 1417),\n", 1393 | " ('이노션', 1421),\n", 1394 | " ('녹십자', 1422),\n", 1395 | " ('희림', 1422),\n", 1396 | " ('모나리자', 1423),\n", 1397 | " ('KCTC', 1423),\n", 1398 | " ('자화전자', 1426),\n", 1399 | " ('케이엠', 1426),\n", 1400 | " ('피에스텍', 1427),\n", 1401 | " ('구영테크', 1429),\n", 1402 | " ('엘오티베큠', 1429),\n", 1403 | " ('실리콘웍스', 1430),\n", 1404 | " ('메리츠종금증권', 1434),\n", 1405 | " ('세방', 1436),\n", 1406 | " ('인피니트헬스케어', 1437),\n", 1407 | " ('PN풍년', 1438),\n", 1408 | " ('SK바이오랜드', 1444),\n", 1409 | " ('상아프론테크', 1444),\n", 1410 | " ('LG전자', 1445),\n", 1411 | " ('지엠비코리아', 1445),\n", 1412 | " ('엘앤에프', 1449),\n", 1413 | " ('부국증권', 1451),\n", 1414 | " ('유진투자증권', 1454),\n", 1415 | " ('대웅', 1456),\n", 1416 | " ('유한양행', 1456),\n", 1417 | " ('태경산업', 1459),\n", 1418 | " ('S&T홀딩스', 1461),\n", 1419 | " ('한국전자인증', 1462),\n", 1420 | " ('경방', 1465),\n", 1421 | " ('코스온', 1470),\n", 1422 | " ('참엔지니어링', 1470),\n", 1423 | " ('휴메딕스', 1471),\n", 1424 | " ('SG&G', 1475),\n", 1425 | " ('우리은행', 1477),\n", 1426 | " ('인화정공', 1485),\n", 1427 | " ('코닉글로리', 1486),\n", 1428 | " ('삼보판지', 1488),\n", 1429 | " ('디아이', 1492),\n", 1430 | " ('오리온', 1494),\n", 1431 | " ('심텍홀딩스', 1494),\n", 1432 | " ('영풍', 1494),\n", 1433 | " ('삼성카드', 1496),\n", 1434 | " ('SGA솔루션즈', 1497),\n", 1435 | " ('KB금융', 1500),\n", 1436 | " ('우리산업홀딩스', 1501),\n", 1437 | " ('휴스틸', 1501),\n", 1438 | " ('포스코엠텍', 1504),\n", 1439 | " ('나노신소재', 1507),\n", 1440 | " ('대유에이텍', 1509),\n", 1441 | " ('풀무원', 1510),\n", 1442 | " ('동국알앤에스', 1511),\n", 1443 | " ('KC코트렐', 1511),\n", 1444 | " ('CJ E&M', 1513),\n", 1445 | " ('성창기업지주', 1513),\n", 1446 | " ('인지컨트롤스', 1519),\n", 1447 | " ('인터지스', 1519),\n", 1448 | " ('동아쏘시오홀딩스', 1520),\n", 1449 | " ('대현', 1520),\n", 1450 | " ('코스맥스', 1521),\n", 1451 | " ('월덱스', 1521),\n", 1452 | " ('퍼시스', 1526),\n", 1453 | " ('파워로직스', 1526),\n", 1454 | " ('대신증권', 1528),\n", 1455 | " ('한국항공우주', 1530),\n", 1456 | " ('한스바이오메드', 1530),\n", 1457 | " ('피엔티', 1532),\n", 1458 | " ('현대상사', 1532),\n", 1459 | " ('이엠텍', 1534),\n", 1460 | " ('SK', 1534),\n", 1461 | " ('제이엠아이', 1535),\n", 1462 | " ('디티앤씨', 1535),\n", 1463 | " ('녹십자홀딩스', 1539),\n", 1464 | " ('S&TC', 1540),\n", 1465 | " ('삼성화재', 1540),\n", 1466 | " ('삼영무역', 1540),\n", 1467 | " ('서연탑메탈', 1543),\n", 1468 | " ('고려산업', 1544),\n", 1469 | " ('에스앤에스텍', 1545),\n", 1470 | " ('셀트리온', 1546),\n", 1471 | " ('일진머티리얼즈', 1546),\n", 1472 | " ('하나금융지주', 1548),\n", 1473 | " ('한국팩키지', 1549),\n", 1474 | " ('넥센테크', 1550),\n", 1475 | " ('아이마켓코리아', 1553),\n", 1476 | " ('브리지텍', 1554),\n", 1477 | " ('경보제약', 1554),\n", 1478 | " ('대동스틸', 1555),\n", 1479 | " ('한국금융지주', 1557),\n", 1480 | " ('신영와코루', 1558),\n", 1481 | " ('에스엠', 1559),\n", 1482 | " ('미래컴퍼니', 1563),\n", 1483 | " ('링네트', 1565),\n", 1484 | " ('진양산업', 1567),\n", 1485 | " ('피앤이솔루션', 1571),\n", 1486 | " ('화진', 1573),\n", 1487 | " ('한국맥널티', 1577),\n", 1488 | " ('영풍정밀', 1577),\n", 1489 | " ('삼성출판사', 1578),\n", 1490 | " ('스맥', 1579),\n", 1491 | " ('현대미포조선', 1579),\n", 1492 | " ('피제이메탈', 1581),\n", 1493 | " ('한화생명', 1582),\n", 1494 | " ('팅크웨어', 1583),\n", 1495 | " ('KTB투자증권', 1583),\n", 1496 | " ('KTcs', 1584),\n", 1497 | " ('삼성공조', 1586),\n", 1498 | " ('명문제약', 1590),\n", 1499 | " ('태경화학', 1590),\n", 1500 | " ('한화테크윈', 1592),\n", 1501 | " ('한네트', 1594),\n", 1502 | " ('삼아제약', 1595),\n", 1503 | " ('팍스넷', 1597),\n", 1504 | " ('율촌화학', 1609),\n", 1505 | " ('삼일', 1611),\n", 1506 | " ('KG ETS', 1614),\n", 1507 | " ('GS글로벌', 1616),\n", 1508 | " ('와토스코리아', 1618),\n", 1509 | " ('롯데손해보험', 1618),\n", 1510 | " ('덕성', 1619),\n", 1511 | " ('피씨디렉트', 1621),\n", 1512 | " ('용평리조트', 1623),\n", 1513 | " ('중앙에너비스', 1626),\n", 1514 | " ('이구산업', 1626),\n", 1515 | " ('아세아제지', 1627),\n", 1516 | " ('CJ씨푸드', 1627),\n", 1517 | " ('대덕GDS', 1630),\n", 1518 | " ('동국S&C', 1633),\n", 1519 | " ('삼진엘앤디', 1635),\n", 1520 | " ('티케이케미칼', 1637),\n", 1521 | " ('이연제약', 1639),\n", 1522 | " ('옴니시스템', 1641),\n", 1523 | " ('모헨즈', 1644),\n", 1524 | " ('대한제당', 1644),\n", 1525 | " ('유니퀘스트', 1644),\n", 1526 | " ('포메탈', 1644),\n", 1527 | " ('일신바이오', 1646),\n", 1528 | " ('케이씨티', 1647),\n", 1529 | " ('농심', 1648),\n", 1530 | " ('한일철강', 1649),\n", 1531 | " ('한일화학', 1649),\n", 1532 | " ('현대위아', 1659),\n", 1533 | " ('만도', 1660),\n", 1534 | " ('진양홀딩스', 1660),\n", 1535 | " ('디케이락', 1666),\n", 1536 | " ('고려제강', 1666),\n", 1537 | " ('우리들제약', 1668),\n", 1538 | " ('에이티넘인베스트', 1670),\n", 1539 | " ('대창', 1670),\n", 1540 | " ('제일테크노스', 1672),\n", 1541 | " ('지에스이', 1676),\n", 1542 | " ('신세계푸드', 1677),\n", 1543 | " ('지투알', 1677),\n", 1544 | " ('베셀', 1677),\n", 1545 | " ('나라엠앤디', 1683),\n", 1546 | " ('LF', 1684),\n", 1547 | " ('CJ오쇼핑', 1687),\n", 1548 | " ('티플랙스', 1687),\n", 1549 | " ('CNH', 1696),\n", 1550 | " ('오르비텍', 1697),\n", 1551 | " ('대명코퍼레이션', 1701),\n", 1552 | " ('한일단조', 1702),\n", 1553 | " ('서플러스글로벌', 1707),\n", 1554 | " ('동일제강', 1710),\n", 1555 | " ('한국큐빅', 1712),\n", 1556 | " ('일성건설', 1718),\n", 1557 | " ('KT서브마린', 1720),\n", 1558 | " ('하나투어', 1722),\n", 1559 | " ('유니켐', 1723),\n", 1560 | " ('코아시아홀딩스', 1727),\n", 1561 | " ('LG상사', 1727),\n", 1562 | " ('정원엔시스', 1728),\n", 1563 | " ('삼보모터스', 1728),\n", 1564 | " ('KCC', 1729),\n", 1565 | " ('알보젠코리아', 1732),\n", 1566 | " ('이베스트투자증권', 1732),\n", 1567 | " ('아즈텍WB', 1733),\n", 1568 | " ('까뮤이앤씨', 1733),\n", 1569 | " ('IHQ', 1734),\n", 1570 | " ('제이브이엠', 1735),\n", 1571 | " ('남해화학', 1736),\n", 1572 | " ('삼광글라스', 1738),\n", 1573 | " ('사조해표', 1740),\n", 1574 | " ('일신방직', 1740),\n", 1575 | " ('신세계 I&C', 1743),\n", 1576 | " ('오픈베이스', 1745),\n", 1577 | " ('SKC', 1745),\n", 1578 | " ('대한화섬', 1745),\n", 1579 | " ('하이텍팜', 1746),\n", 1580 | " ('남양유업', 1747),\n", 1581 | " ('전파기지국', 1747),\n", 1582 | " ('영인프런티어', 1748),\n", 1583 | " ('코오롱', 1749),\n", 1584 | " ('BYC', 1750),\n", 1585 | " ('부산가스', 1751),\n", 1586 | " ('대성파인텍', 1752),\n", 1587 | " ('LG이노텍', 1755),\n", 1588 | " ('한국카본', 1757),\n", 1589 | " ('광전자', 1758),\n", 1590 | " ('브레인콘텐츠', 1763),\n", 1591 | " ('한일진공', 1764),\n", 1592 | " ('KG케미칼', 1766),\n", 1593 | " ('위즈코프', 1767),\n", 1594 | " ('케이사인', 1770),\n", 1595 | " ('유성기업', 1770),\n", 1596 | " ('신세계', 1774),\n", 1597 | " ('아이디스홀딩스', 1775),\n", 1598 | " ('KMH하이텍', 1777),\n", 1599 | " ('휴니드', 1780),\n", 1600 | " ('옵티시스', 1782),\n", 1601 | " ('에스폴리텍', 1792),\n", 1602 | " ('AJ렌터카', 1794),\n", 1603 | " ('서연전자', 1795),\n", 1604 | " ('삼양홀딩스', 1797),\n", 1605 | " ('금강철강', 1797),\n", 1606 | " ('AJ네트웍스', 1799),\n", 1607 | " ('한국선재', 1799),\n", 1608 | " ('제노포커스', 1803),\n", 1609 | " ('로지시스', 1803),\n", 1610 | " ('국순당', 1809),\n", 1611 | " ('에프티이앤이', 1812),\n", 1612 | " ('다원시스', 1815),\n", 1613 | " ('바이오톡스텍', 1816),\n", 1614 | " ('KC그린홀딩스', 1816),\n", 1615 | " ('모나미', 1818),\n", 1616 | " ('국일신동', 1818),\n", 1617 | " ('비츠로테크', 1828),\n", 1618 | " ('화천기공', 1829),\n", 1619 | " ('이건산업', 1830),\n", 1620 | " ('플랜티넷', 1831),\n", 1621 | " ('아주캐피탈', 1831),\n", 1622 | " ('일진다이아', 1835),\n", 1623 | " ('쎄트렉아이', 1837),\n", 1624 | " ('롯데정밀화학', 1837),\n", 1625 | " ('NH투자증권', 1840),\n", 1626 | " ('영풍제지', 1842),\n", 1627 | " ('이라이콤', 1842),\n", 1628 | " ('STX중공업', 1843),\n", 1629 | " ('우리기술', 1844),\n", 1630 | " ('흥구석유', 1849),\n", 1631 | " ('KG이니시스', 1850),\n", 1632 | " ('부방', 1850),\n", 1633 | " ('갑을메탈', 1853),\n", 1634 | " ('동서', 1856),\n", 1635 | " ('서원', 1858),\n", 1636 | " ('인선이엔티', 1859),\n", 1637 | " ('엘티씨', 1859),\n", 1638 | " ('코오롱글로벌', 1860),\n", 1639 | " ('아이원스', 1863),\n", 1640 | " ('네패스', 1868),\n", 1641 | " ('삼영전자', 1873),\n", 1642 | " ('코스맥스비티아이', 1882),\n", 1643 | " ('에넥스', 1884),\n", 1644 | " ('대주산업', 1885),\n", 1645 | " ('경인전자', 1887),\n", 1646 | " ('홈센타홀딩스', 1889),\n", 1647 | " ('포스코대우', 1891),\n", 1648 | " ('원림', 1892),\n", 1649 | " ('만호제강', 1892),\n", 1650 | " ('화신정공', 1892),\n", 1651 | " ('예스코', 1892),\n", 1652 | " ('유신', 1894),\n", 1653 | " ('오리콤', 1896),\n", 1654 | " ('스페코', 1901),\n", 1655 | " ('SIMPAC', 1901),\n", 1656 | " ('삼성증권', 1903),\n", 1657 | " ('씨젠', 1906),\n", 1658 | " ('세진중공업', 1906),\n", 1659 | " ('인포뱅크', 1906),\n", 1660 | " ('사조동아원', 1907),\n", 1661 | " ('동양물산', 1911),\n", 1662 | " ('다우데이타', 1912),\n", 1663 | " ('두올산업', 1913),\n", 1664 | " ('우리종금', 1922),\n", 1665 | " ('금호석유', 1926),\n", 1666 | " ('한국캐피탈', 1927),\n", 1667 | " ('신진에스엠', 1931),\n", 1668 | " ('갤럭시아컴즈', 1935),\n", 1669 | " ('우노앤컴퍼니', 1935),\n", 1670 | " ('승일', 1940),\n", 1671 | " ('KNN', 1941),\n", 1672 | " ('삼영엠텍', 1942),\n", 1673 | " ('대성홀딩스', 1945),\n", 1674 | " ('한라IMS', 1948),\n", 1675 | " ('백광산업', 1949),\n", 1676 | " ('메타바이오메드', 1953),\n", 1677 | " ('CJ대한통운', 1953),\n", 1678 | " ('인터파크', 1961),\n", 1679 | " ('이-글 벳', 1962),\n", 1680 | " ('신성통상', 1962),\n", 1681 | " ('대원미디어', 1978),\n", 1682 | " ('국제약품', 1979),\n", 1683 | " ('지역난방공사', 1980),\n", 1684 | " ('아스트', 1981),\n", 1685 | " ('KPX그린케미칼', 1981),\n", 1686 | " ('코리아에프티', 1983),\n", 1687 | " ('모토닉', 1985),\n", 1688 | " ('유니크', 1988),\n", 1689 | " ('동일기연', 1988),\n", 1690 | " ('우원개발', 1989),\n", 1691 | " ('삼천리', 1990),\n", 1692 | " ('코데즈컴바인', 1993),\n", 1693 | " ('덕산네오룩스', 1995),\n", 1694 | " ('제이엠티', 1995),\n", 1695 | " ('수산중공업', 1997),\n", 1696 | " ('에이텍티앤', 1999),\n", 1697 | " ('케어젠', 2002),\n", 1698 | " ('인천도시가스', 2005),\n", 1699 | " ('대한과학', 2006),\n", 1700 | " ('동양', 2006),\n", 1701 | " ('신한', 2008),\n", 1702 | " ('아남전자', 2010),\n", 1703 | " ('팬오션', 2014),\n", 1704 | " ('신흥', 2014),\n", 1705 | " ('엘컴텍', 2019),\n", 1706 | " ('CJ CGV', 2020),\n", 1707 | " ('남성', 2022),\n", 1708 | " ('광명전기', 2022),\n", 1709 | " ('SFA반도체', 2034),\n", 1710 | " ('에스텍파마', 2036),\n", 1711 | " ('우신시스템', 2042),\n", 1712 | " ('하이트진로', 2043),\n", 1713 | " ('대우부품', 2044),\n", 1714 | " ('태원물산', 2044),\n", 1715 | " ('삼화전기', 2044),\n", 1716 | " ('알엔투테크놀로지', 2046),\n", 1717 | " ('시공테크', 2050),\n", 1718 | " ('에스티오', 2053),\n", 1719 | " ('안국약품', 2055),\n", 1720 | " ('대진디엠피', 2056),\n", 1721 | " ('녹십자랩셀', 2059),\n", 1722 | " ('세우글로벌', 2059),\n", 1723 | " ('유화증권', 2059),\n", 1724 | " ('선창산업', 2060),\n", 1725 | " ('우진', 2060),\n", 1726 | " ('일양약품', 2063),\n", 1727 | " ('푸드웰', 2063),\n", 1728 | " ('삼아알미늄', 2064),\n", 1729 | " ('호텔신라', 2065),\n", 1730 | " ('삼성생명', 2065),\n", 1731 | " ('인성정보', 2069),\n", 1732 | " ('케이씨에스', 2069),\n", 1733 | " ('엔피케이', 2071),\n", 1734 | " ('디이엔티', 2074),\n", 1735 | " ('웰크론한텍', 2078),\n", 1736 | " ('삼익악기', 2080),\n", 1737 | " ...]" 1738 | ] 1739 | }, 1740 | "execution_count": 26, 1741 | "metadata": {}, 1742 | "output_type": "execute_result" 1743 | } 1744 | ], 1745 | "source": [ 1746 | "#[코드 1.15] 종합랭크 정렬하기 (Ch1. 파이썬 기본과 마법공식 구현.ipynb)\n", 1747 | "\n", 1748 | "sorted(total_rank.items(), key=operator.itemgetter(1))" 1749 | ] 1750 | }, 1751 | { 1752 | "cell_type": "code", 1753 | "execution_count": 27, 1754 | "metadata": {}, 1755 | "outputs": [], 1756 | "source": [ 1757 | "#[코드 1.16] 마법공식 결과 정리 (Ch1. 파이썬 기본과 마법공식 구현.ipynb)\n", 1758 | "\n", 1759 | "sorted_total = sorted(total_rank.items(), key=operator.itemgetter(1))\n", 1760 | "\n", 1761 | "magic_rank = {}\n", 1762 | "\n", 1763 | "for num, firm in enumerate(sorted_total):\n", 1764 | " magic_rank[firm[0]] = num + 1" 1765 | ] 1766 | }, 1767 | { 1768 | "cell_type": "code", 1769 | "execution_count": 29, 1770 | "metadata": {}, 1771 | "outputs": [], 1772 | "source": [ 1773 | "#[코드 1.17] 마법공식 코드 정리 (Ch1. 파이썬 기본과 마법공식 구현.ipynb)\n", 1774 | "\n", 1775 | "import xlrd \n", 1776 | "import operator\n", 1777 | "\n", 1778 | "file_path = 'C:\\\\Users\\\\JK\\\\Desktop\\\\파이썬으로 하는 퀀트투자\\\\마법공식 데이터.xlsx'\n", 1779 | "wb = xlrd.open_workbook(file_path)\n", 1780 | "\n", 1781 | "per_sh = wb.sheet_by_name('PER')\n", 1782 | "\n", 1783 | "per_dict = { }\n", 1784 | "for i in range(1, per_sh.nrows): \n", 1785 | " data = per_sh.row_values(i)\n", 1786 | " name = data[0]\n", 1787 | " per = data[1]\n", 1788 | " if per > 0:\n", 1789 | " per_dict[name] = per\n", 1790 | " \n", 1791 | "sorted_per = sorted(per_dict.items(), key=operator.itemgetter(1))\n", 1792 | "\n", 1793 | "per_rank = {}\n", 1794 | "for num, firm in enumerate(sorted_per):\n", 1795 | " per_rank[firm[0]] = num + 1 \n", 1796 | " \n", 1797 | "roa_sh = wb.sheet_by_name('ROA')\n", 1798 | "\n", 1799 | "roa_dict = { }\n", 1800 | "for i in range(1, roa_sh.nrows): \n", 1801 | " data = roa_sh.row_values(i)\n", 1802 | " name = data[0]\n", 1803 | " roa = data[1]\n", 1804 | " if roa != '':\n", 1805 | " roa_dict[name] = roa\n", 1806 | " \n", 1807 | "sorted_roa = sorted(roa_dict.items(), key=operator.itemgetter(1), reverse=True)\n", 1808 | "\n", 1809 | "roa_rank = {}\n", 1810 | "for num, firm in enumerate(sorted_roa):\n", 1811 | " roa_rank[firm[0]] = num + 1\n", 1812 | " \n", 1813 | "total_rank = {}\n", 1814 | "for name in roa_rank.keys():\n", 1815 | " if name in per_rank.keys():\n", 1816 | " total_rank[name] = per_rank[name] + roa_rank[name]\n", 1817 | " \n", 1818 | "sorted_total = sorted(total_rank.items(), key=operator.itemgetter(1))\n", 1819 | "\n", 1820 | "magic_rank = {}\n", 1821 | "for num, firm in enumerate(sorted_total):\n", 1822 | " magic_rank[firm[0]] = num + 1" 1823 | ] 1824 | }, 1825 | { 1826 | "cell_type": "code", 1827 | "execution_count": 30, 1828 | "metadata": {}, 1829 | "outputs": [], 1830 | "source": [ 1831 | "# [코드 1.19] 피타고라스의 정리 구현 (Ch1. 파이썬 기본과 마법공식 구현.ipynb)\n", 1832 | "\n", 1833 | "base = 3\n", 1834 | "height = 4\n", 1835 | "\n", 1836 | "result = (base ** 2 + height ** 2) ** 0.5" 1837 | ] 1838 | }, 1839 | { 1840 | "cell_type": "code", 1841 | "execution_count": 34, 1842 | "metadata": {}, 1843 | "outputs": [], 1844 | "source": [ 1845 | "# [코드 1.20] 피타고라스 함수 정의 (Ch1. 파이썬 기본과 마법공식 구현.ipynb)\n", 1846 | "\n", 1847 | "def pita():\n", 1848 | " base = 3\n", 1849 | " height = 4\n", 1850 | "\n", 1851 | " pita_result = (base ** 2 + height ** 2) ** 0.5" 1852 | ] 1853 | }, 1854 | { 1855 | "cell_type": "code", 1856 | "execution_count": 35, 1857 | "metadata": {}, 1858 | "outputs": [], 1859 | "source": [ 1860 | "# [코드 1.21] 피타고라스 함수 사용 (Ch1. 파이썬 기본과 마법공식 구현.ipynb)\n", 1861 | "\n", 1862 | "pita()" 1863 | ] 1864 | }, 1865 | { 1866 | "cell_type": "code", 1867 | "execution_count": 39, 1868 | "metadata": {}, 1869 | "outputs": [], 1870 | "source": [ 1871 | "# [코드 1.22] 피타고라스 함수 재정의 (Ch1. 파이썬 기본과 마법공식 구현.ipynb)\n", 1872 | "\n", 1873 | "def pita():\n", 1874 | " base = 3\n", 1875 | " height = 4\n", 1876 | "\n", 1877 | " pita_result = (base ** 2 + height ** 2) ** 0.5\n", 1878 | " \n", 1879 | " return pita_result" 1880 | ] 1881 | }, 1882 | { 1883 | "cell_type": "code", 1884 | "execution_count": 41, 1885 | "metadata": {}, 1886 | "outputs": [], 1887 | "source": [ 1888 | "# [코드 1.23] 피타고라스 함수 재정의2 (Ch1. 파이썬 기본과 마법공식 구현.ipynb)\n", 1889 | "\n", 1890 | "def pita(base, height):\n", 1891 | " pita_result = (base ** 2 + height ** 2) ** 0.5\n", 1892 | " \n", 1893 | " return pita_result" 1894 | ] 1895 | }, 1896 | { 1897 | "cell_type": "code", 1898 | "execution_count": 43, 1899 | "metadata": {}, 1900 | "outputs": [], 1901 | "source": [ 1902 | "# [코드 1.24] 마법공식 함수화(Ch1. 파이썬 기본과 마법공식 구현.ipynb)\n", 1903 | "\n", 1904 | "def magic(file_path):\n", 1905 | " wb = xlrd.open_workbook(file_path)\n", 1906 | "\n", 1907 | " per_sh = wb.sheet_by_name('PER')\n", 1908 | "\n", 1909 | " per_dict = { }\n", 1910 | " for i in range(1, per_sh.nrows): \n", 1911 | " data = per_sh.row_values(i)\n", 1912 | " name = data[0]\n", 1913 | " per = data[1]\n", 1914 | " if per > 0:\n", 1915 | " per_dict[name] = per\n", 1916 | "\n", 1917 | " sorted_per = sorted(per_dict.items(), key=operator.itemgetter(1))\n", 1918 | "\n", 1919 | " per_rank = {}\n", 1920 | " for num, firm in enumerate(sorted_per):\n", 1921 | " per_rank[firm[0]] = num + 1 \n", 1922 | "\n", 1923 | " roa_sh = wb.sheet_by_name('ROA')\n", 1924 | "\n", 1925 | " roa_dict = { }\n", 1926 | " for i in range(1, roa_sh.nrows): \n", 1927 | " data = roa_sh.row_values(i)\n", 1928 | " name = data[0]\n", 1929 | " roa = data[1]\n", 1930 | " if roa != '':\n", 1931 | " roa_dict[name] = roa\n", 1932 | "\n", 1933 | " sorted_roa = sorted(roa_dict.items(), key=operator.itemgetter(1), reverse=True)\n", 1934 | "\n", 1935 | " roa_rank = {}\n", 1936 | " for num, firm in enumerate(sorted_roa):\n", 1937 | " roa_rank[firm[0]] = num + 1\n", 1938 | "\n", 1939 | " total_rank = {}\n", 1940 | " for name in roa_rank.keys():\n", 1941 | " if name in per_rank.keys():\n", 1942 | " total_rank[name] = per_rank[name] + roa_rank[name]\n", 1943 | "\n", 1944 | " sorted_total = sorted(total_rank.items(), key=operator.itemgetter(1))\n", 1945 | "\n", 1946 | " magic_rank = {}\n", 1947 | " for num, firm in enumerate(sorted_total):\n", 1948 | " magic_rank[firm[0]] = num + 1\n", 1949 | " \n", 1950 | " return magic_rank" 1951 | ] 1952 | }, 1953 | { 1954 | "cell_type": "code", 1955 | "execution_count": 44, 1956 | "metadata": { 1957 | "scrolled": false 1958 | }, 1959 | "outputs": [ 1960 | { 1961 | "data": { 1962 | "text/plain": [ 1963 | "{'서한': 1,\n", 1964 | " '골프존': 2,\n", 1965 | " '동원개발': 3,\n", 1966 | " '오가닉티코스메틱': 4,\n", 1967 | " '모베이스': 5,\n", 1968 | " '테라세미콘': 6,\n", 1969 | " '제이스텍': 7,\n", 1970 | " '삼목에스폼': 8,\n", 1971 | " '영우디에스피': 9,\n", 1972 | " 'HB테크놀러지': 10,\n", 1973 | " '로스웰': 11,\n", 1974 | " '한국자산신탁': 12,\n", 1975 | " '크리스탈신소재': 13,\n", 1976 | " '롯데케미칼': 14,\n", 1977 | " '한국토지신탁': 15,\n", 1978 | " '서호전기': 16,\n", 1979 | " '대원산업': 17,\n", 1980 | " '아이에스동서': 18,\n", 1981 | " '에스에이엠티': 19,\n", 1982 | " '대양금속': 20,\n", 1983 | " '차이나하오란': 21,\n", 1984 | " '완리': 22,\n", 1985 | " 'DMS': 23,\n", 1986 | " '삼호': 24,\n", 1987 | " '슈피겐코리아': 25,\n", 1988 | " '삼양통상': 26,\n", 1989 | " '현대통신': 27,\n", 1990 | " '화성산업': 28,\n", 1991 | " '넥센': 29,\n", 1992 | " '한창제지': 30,\n", 1993 | " '조선선재': 31,\n", 1994 | " '서희건설': 32,\n", 1995 | " '로체시스템즈': 33,\n", 1996 | " '엠케이전자': 34,\n", 1997 | " 'MH에탄올': 35,\n", 1998 | " '신화콘텍': 36,\n", 1999 | " 'KB오토시스': 37,\n", 2000 | " '아이씨디': 38,\n", 2001 | " '나이스정보통신': 39,\n", 2002 | " '동양파일': 40,\n", 2003 | " '코메론': 41,\n", 2004 | " '현대EP': 42,\n", 2005 | " '인포바인': 43,\n", 2006 | " '리더스코스메틱': 44,\n", 2007 | " '세보엠이씨': 45,\n", 2008 | " '삼호개발': 46,\n", 2009 | " '넥스턴': 47,\n", 2010 | " '동아에스텍': 48,\n", 2011 | " '코텍': 49,\n", 2012 | " '애경유화': 50,\n", 2013 | " '대림씨엔에스': 51,\n", 2014 | " '영보화학': 52,\n", 2015 | " '디지털대성': 53,\n", 2016 | " '와이솔': 54,\n", 2017 | " '현대엘리베이': 55,\n", 2018 | " '삼진': 56,\n", 2019 | " '백산': 57,\n", 2020 | " '동아엘텍': 58,\n", 2021 | " 'GST': 59,\n", 2022 | " '인베니아': 60,\n", 2023 | " '대한유화': 61,\n", 2024 | " '블루콤': 62,\n", 2025 | " '사조오양': 63,\n", 2026 | " 'SK하이닉스': 64,\n", 2027 | " '풍산홀딩스': 65,\n", 2028 | " '바텍': 66,\n", 2029 | " '대륙제관': 67,\n", 2030 | " '에스티아이': 68,\n", 2031 | " '프럼파스트': 69,\n", 2032 | " '제우스': 70,\n", 2033 | " '미원상사': 71,\n", 2034 | " '현대시멘트': 72,\n", 2035 | " '아트라스BX': 73,\n", 2036 | " '신세계건설': 74,\n", 2037 | " '유아이엘': 75,\n", 2038 | " '프로텍': 76,\n", 2039 | " '국동': 77,\n", 2040 | " '고려신용정보': 78,\n", 2041 | " '에버다임': 79,\n", 2042 | " '한전산업': 80,\n", 2043 | " '유니테스트': 81,\n", 2044 | " '이녹스': 82,\n", 2045 | " '부산산업': 83,\n", 2046 | " '미원화학': 84,\n", 2047 | " '한국타이어': 85,\n", 2048 | " '에스텍': 86,\n", 2049 | " '이엔에프테크놀로지': 87,\n", 2050 | " '동원산업': 88,\n", 2051 | " 'SH에너지화학': 89,\n", 2052 | " '엠에스씨': 90,\n", 2053 | " '한국전력': 91,\n", 2054 | " '금강공업': 92,\n", 2055 | " '조광피혁': 93,\n", 2056 | " 'KT&G': 94,\n", 2057 | " '케이디켐': 95,\n", 2058 | " '포스코강판': 96,\n", 2059 | " '디씨엠': 97,\n", 2060 | " '극동유화': 98,\n", 2061 | " '사조대림': 99,\n", 2062 | " '금호에이치티': 100,\n", 2063 | " 'GS': 101,\n", 2064 | " '에스엘': 102,\n", 2065 | " '싸이맥스': 103,\n", 2066 | " '한국타이어월드와이드': 104,\n", 2067 | " '현대산업': 105,\n", 2068 | " '테스': 106,\n", 2069 | " '넥센타이어': 107,\n", 2070 | " '예림당': 108,\n", 2071 | " '성도이엔지': 109,\n", 2072 | " '에스에프에이': 110,\n", 2073 | " '컴투스': 111,\n", 2074 | " '대아티아이': 112,\n", 2075 | " '티웨이홀딩스': 113,\n", 2076 | " '일진파워': 114,\n", 2077 | " '상신브레이크': 115,\n", 2078 | " '대한약품': 116,\n", 2079 | " '에스코넥': 117,\n", 2080 | " '탑엔지니어링': 118,\n", 2081 | " '휴켐스': 119,\n", 2082 | " '제주항공': 120,\n", 2083 | " '새론오토모티브': 121,\n", 2084 | " '효성오앤비': 122,\n", 2085 | " '삼지전자': 123,\n", 2086 | " '유니트론텍': 124,\n", 2087 | " '한익스프레스': 125,\n", 2088 | " '한솔로지스틱스': 126,\n", 2089 | " '세아특수강': 127,\n", 2090 | " '메디아나': 128,\n", 2091 | " '코프라': 129,\n", 2092 | " '한국경제TV': 130,\n", 2093 | " '알에프텍': 131,\n", 2094 | " '노루페인트': 132,\n", 2095 | " '한국공항': 133,\n", 2096 | " '동성화학': 134,\n", 2097 | " '선진': 135,\n", 2098 | " '빅솔론': 136,\n", 2099 | " '피에스케이': 137,\n", 2100 | " '한국단자': 138,\n", 2101 | " 'AK홀딩스': 139,\n", 2102 | " '태양': 140,\n", 2103 | " '풍산': 141,\n", 2104 | " '톱텍': 142,\n", 2105 | " 'STX': 143,\n", 2106 | " '하이록코리아': 144,\n", 2107 | " '네오오토': 145,\n", 2108 | " '한국석유': 146,\n", 2109 | " '토비스': 147,\n", 2110 | " '한국내화': 148,\n", 2111 | " '뷰웍스': 149,\n", 2112 | " 'SJM': 150,\n", 2113 | " '에스앤씨엔진그룹': 151,\n", 2114 | " '무학': 152,\n", 2115 | " '동양이엔피': 153,\n", 2116 | " '아세아시멘트': 154,\n", 2117 | " '디에이치피코리아': 155,\n", 2118 | " '아세아텍': 156,\n", 2119 | " '케이아이엔엑스': 157,\n", 2120 | " '금화피에스시': 158,\n", 2121 | " '삼성전자': 159,\n", 2122 | " 'LG': 160,\n", 2123 | " '코리아오토글라스': 161,\n", 2124 | " '아세아': 162,\n", 2125 | " '대창단조': 163,\n", 2126 | " '비아트론': 164,\n", 2127 | " '디엔에프': 165,\n", 2128 | " '마이크로프랜드': 166,\n", 2129 | " '한솔케미칼': 167,\n", 2130 | " 'LG디스플레이': 168,\n", 2131 | " '바이오로그디바이스': 169,\n", 2132 | " '현대공업': 170,\n", 2133 | " '쌍용양회': 171,\n", 2134 | " '대호피앤씨': 172,\n", 2135 | " '엘엠에스': 173,\n", 2136 | " '현대글로비스': 174,\n", 2137 | " '삼진제약': 175,\n", 2138 | " '진로발효': 176,\n", 2139 | " '유니셈': 177,\n", 2140 | " '에프에스티': 178,\n", 2141 | " '후성': 179,\n", 2142 | " '에스티팜': 180,\n", 2143 | " '지엔씨에너지': 181,\n", 2144 | " 'DSR': 182,\n", 2145 | " '한화케미칼': 183,\n", 2146 | " '우주일렉트로': 184,\n", 2147 | " '화승인더': 185,\n", 2148 | " '원익IPS': 186,\n", 2149 | " '광주신세계': 187,\n", 2150 | " '사조산업': 188,\n", 2151 | " '흥국': 189,\n", 2152 | " '대한제분': 190,\n", 2153 | " '리드코프': 191,\n", 2154 | " '하이비젼시스템': 192,\n", 2155 | " '인탑스': 193,\n", 2156 | " '파라텍': 194,\n", 2157 | " 'SK머티리얼즈': 195,\n", 2158 | " '스카이라이프': 196,\n", 2159 | " '대한제강': 197,\n", 2160 | " '엔에스쇼핑': 198,\n", 2161 | " '제룡산업': 199,\n", 2162 | " '코맥스': 200,\n", 2163 | " '멀티캠퍼스': 201,\n", 2164 | " '현대에이치씨엔': 202,\n", 2165 | " '한국가구': 203,\n", 2166 | " '롯데하이마트': 204,\n", 2167 | " '오공': 205,\n", 2168 | " '남선알미늄': 206,\n", 2169 | " '신일제약': 207,\n", 2170 | " '강원랜드': 208,\n", 2171 | " 'SJM홀딩스': 209,\n", 2172 | " '아이콘트롤스': 210,\n", 2173 | " '일지테크': 211,\n", 2174 | " 'NI스틸': 212,\n", 2175 | " '아비코전자': 213,\n", 2176 | " '이크레더블': 214,\n", 2177 | " '부스타': 215,\n", 2178 | " '한국알콜': 216,\n", 2179 | " '황금에스티': 217,\n", 2180 | " '동아화성': 218,\n", 2181 | " '유진기업': 219,\n", 2182 | " 'GKL': 220,\n", 2183 | " 'AP시스템': 221,\n", 2184 | " '코웰패션': 222,\n", 2185 | " '영원무역': 223,\n", 2186 | " '삼정펄프': 224,\n", 2187 | " '주성엔지니어링': 225,\n", 2188 | " '진바이오텍': 226,\n", 2189 | " '한국쉘석유': 227,\n", 2190 | " '동국제약': 228,\n", 2191 | " '세방전지': 229,\n", 2192 | " '하림': 230,\n", 2193 | " '대정화금': 231,\n", 2194 | " '삼륭물산': 232,\n", 2195 | " '현대모비스': 233,\n", 2196 | " '아바텍': 234,\n", 2197 | " '영원무역홀딩스': 235,\n", 2198 | " '대봉엘에스': 236,\n", 2199 | " '대양전기공업': 237,\n", 2200 | " '대성미생물': 238,\n", 2201 | " '오디텍': 239,\n", 2202 | " '한신공영': 240,\n", 2203 | " '한국정보통신': 241,\n", 2204 | " '필룩스': 242,\n", 2205 | " '다나와': 243,\n", 2206 | " '코엔텍': 244,\n", 2207 | " '쎄니트': 245,\n", 2208 | " '효성': 246,\n", 2209 | " '미원에스씨': 247,\n", 2210 | " '평화정공': 248,\n", 2211 | " 'KSS해운': 249,\n", 2212 | " '코웨이': 250,\n", 2213 | " '아프리카TV': 251,\n", 2214 | " '동화기업': 252,\n", 2215 | " '삼기오토모티브': 253,\n", 2216 | " '선데이토즈': 254,\n", 2217 | " '한라': 255,\n", 2218 | " '진도': 256,\n", 2219 | " '아시아경제': 257,\n", 2220 | " '티에이치엔': 258,\n", 2221 | " '사람인에이치알': 259,\n", 2222 | " 'NICE평가정보': 260,\n", 2223 | " 'NICE': 261,\n", 2224 | " 'SK가스': 262,\n", 2225 | " '대림산업': 263,\n", 2226 | " '한솔씨앤피': 264,\n", 2227 | " '고려아연': 265,\n", 2228 | " '국보디자인': 266,\n", 2229 | " '강남제비스코': 267,\n", 2230 | " '동국산업': 268,\n", 2231 | " '한국기업평가': 269,\n", 2232 | " '코콤': 270,\n", 2233 | " '유니드': 271,\n", 2234 | " '계룡건설': 272,\n", 2235 | " 'SK텔레콤': 273,\n", 2236 | " '동원수산': 274,\n", 2237 | " '조흥': 275,\n", 2238 | " '에스씨디': 276,\n", 2239 | " '에이텍': 277,\n", 2240 | " 'DRB동일': 278,\n", 2241 | " '라이온켐텍': 279,\n", 2242 | " '세이브존I&C': 280,\n", 2243 | " '한국화장품': 281,\n", 2244 | " '경동제약': 282,\n", 2245 | " '쎌바이오텍': 283,\n", 2246 | " '성우전자': 284,\n", 2247 | " '서연이화': 285,\n", 2248 | " '리노공업': 286,\n", 2249 | " '인지디스플레': 287,\n", 2250 | " '성우테크론': 288,\n", 2251 | " '현대리바트': 289,\n", 2252 | " '와이엠씨': 290,\n", 2253 | " '삼화왕관': 291,\n", 2254 | " 'F&F': 292,\n", 2255 | " '한전KPS': 293,\n", 2256 | " '정상제이엘에스': 294,\n", 2257 | " '신화실업': 295,\n", 2258 | " '초록뱀': 296,\n", 2259 | " '한일네트웍스': 297,\n", 2260 | " '엔브이에이치코리아': 298,\n", 2261 | " '서산': 299,\n", 2262 | " '아진산업': 300,\n", 2263 | " '피제이전자': 301,\n", 2264 | " '조광ILI': 302,\n", 2265 | " 'KMH': 303,\n", 2266 | " '콜마비앤에이치': 304,\n", 2267 | " '인터로조': 305,\n", 2268 | " 'S&T모티브': 306,\n", 2269 | " '티씨케이': 307,\n", 2270 | " 'LG하우시스': 308,\n", 2271 | " '현대백화점': 309,\n", 2272 | " '오텍': 310,\n", 2273 | " '현대건설': 311,\n", 2274 | " '케이티스': 312,\n", 2275 | " 'SKC 솔믹스': 313,\n", 2276 | " '대덕전자': 314,\n", 2277 | " 'LG유플러스': 315,\n", 2278 | " '가온미디어': 316,\n", 2279 | " '미래테크놀로지': 317,\n", 2280 | " '유니테크노': 318,\n", 2281 | " '동신건설': 319,\n", 2282 | " '예스티': 320,\n", 2283 | " '오뚜기': 321,\n", 2284 | " '유성티엔에스': 322,\n", 2285 | " 'KISCO홀딩스': 323,\n", 2286 | " '엠에스오토텍': 324,\n", 2287 | " 'KCI': 325,\n", 2288 | " '세아홀딩스': 326,\n", 2289 | " '하림홀딩스': 327,\n", 2290 | " '푸른저축은행': 328,\n", 2291 | " '케이맥': 329,\n", 2292 | " 'S&K폴리텍': 330,\n", 2293 | " '원익QnC': 331,\n", 2294 | " 'KPX케미칼': 332,\n", 2295 | " '우진플라임': 333,\n", 2296 | " '신라교역': 334,\n", 2297 | " '노루홀딩스': 335,\n", 2298 | " 'LG화학': 336,\n", 2299 | " 'SK이노베이션': 337,\n", 2300 | " '한양이엔지': 338,\n", 2301 | " '동원F&B': 339,\n", 2302 | " '메가스터디교육': 340,\n", 2303 | " '제이에스코퍼레이션': 341,\n", 2304 | " '웅진씽크빅': 342,\n", 2305 | " '삼원강재': 343,\n", 2306 | " 'GS리테일': 344,\n", 2307 | " '화승엔터프라이즈': 345,\n", 2308 | " '콤텍시스템': 346,\n", 2309 | " '한라홀딩스': 347,\n", 2310 | " '비츠로셀': 348,\n", 2311 | " '휠라코리아': 349,\n", 2312 | " '아이센스': 350,\n", 2313 | " '지스마트글로벌': 351,\n", 2314 | " '현대중공업': 352,\n", 2315 | " '가비아': 353,\n", 2316 | " '흥국에프엔비': 354,\n", 2317 | " '더블유게임즈': 355,\n", 2318 | " '우수AMS': 356,\n", 2319 | " 'LG생활건강': 357,\n", 2320 | " '삼양식품': 358,\n", 2321 | " '원익홀딩스': 359,\n", 2322 | " '환인제약': 360,\n", 2323 | " '세운메디칼': 361,\n", 2324 | " 'KPX생명과학': 362,\n", 2325 | " '원익머트리얼즈': 363,\n", 2326 | " '마니커': 364,\n", 2327 | " '바른손이앤에이': 365,\n", 2328 | " '서흥': 366,\n", 2329 | " '천일고속': 367,\n", 2330 | " 'NPC': 368,\n", 2331 | " '삼화네트웍스': 369,\n", 2332 | " '빛샘전자': 370,\n", 2333 | " '하이스틸': 371,\n", 2334 | " '대원제약': 372,\n", 2335 | " '유나이티드제약': 373,\n", 2336 | " 'GS홈쇼핑': 374,\n", 2337 | " '씨큐브': 375,\n", 2338 | " '태영건설': 376,\n", 2339 | " '중앙백신': 377,\n", 2340 | " '에스원': 378,\n", 2341 | " '모두투어': 379,\n", 2342 | " '윈스': 380,\n", 2343 | " 'YW': 381,\n", 2344 | " '디오': 382,\n", 2345 | " '이테크건설': 383,\n", 2346 | " '신풍제지': 384,\n", 2347 | " '제일연마': 385,\n", 2348 | " 'KT': 386,\n", 2349 | " 'CJ': 387,\n", 2350 | " '한글과컴퓨터': 388,\n", 2351 | " 'CJ제일제당': 389,\n", 2352 | " '디와이파워': 390,\n", 2353 | " '미래나노텍': 391,\n", 2354 | " '한솔제지': 392,\n", 2355 | " '대원강업': 393,\n", 2356 | " '피앤씨테크': 394,\n", 2357 | " 'KCC건설': 395,\n", 2358 | " '동아지질': 396,\n", 2359 | " '종근당': 397,\n", 2360 | " '동원시스템즈': 398,\n", 2361 | " '한샘': 399,\n", 2362 | " '풍강': 400,\n", 2363 | " '한온시스템': 401,\n", 2364 | " '미창석유': 402,\n", 2365 | " '한일시멘트': 403,\n", 2366 | " '모다이노칩': 404,\n", 2367 | " '휴젤': 405,\n", 2368 | " '고영': 406,\n", 2369 | " '토탈소프트': 407,\n", 2370 | " '인바디': 408,\n", 2371 | " '하츠': 409,\n", 2372 | " '제이씨케미칼': 410,\n", 2373 | " '롯데푸드': 411,\n", 2374 | " '파버나인': 412,\n", 2375 | " '한창산업': 413,\n", 2376 | " '이니텍': 414,\n", 2377 | " '현대제철': 415,\n", 2378 | " '제이씨현시스템': 416,\n", 2379 | " '정다운': 417,\n", 2380 | " '아모텍': 418,\n", 2381 | " '동성코퍼레이션': 419,\n", 2382 | " '코오롱플라스틱': 420,\n", 2383 | " '알루코': 421,\n", 2384 | " '디지틀조선': 422,\n", 2385 | " '캐스텍코리아': 423,\n", 2386 | " '계양전기': 424,\n", 2387 | " '엔씨소프트': 425,\n", 2388 | " '유비쿼스': 426,\n", 2389 | " '풍국주정': 427,\n", 2390 | " '이마트': 428,\n", 2391 | " '한미반도체': 429,\n", 2392 | " '미코': 430,\n", 2393 | " '비상교육': 431,\n", 2394 | " '대림제지': 432,\n", 2395 | " '송원산업': 433,\n", 2396 | " '유진테크': 434,\n", 2397 | " '정산애강': 435,\n", 2398 | " '레이언스': 436,\n", 2399 | " '종근당홀딩스': 437,\n", 2400 | " '서연': 438,\n", 2401 | " '성우하이텍': 439,\n", 2402 | " '네오팜': 440,\n", 2403 | " 'JW생명과학': 441,\n", 2404 | " '로보스타': 442,\n", 2405 | " '고려제약': 443,\n", 2406 | " '화승알앤에이': 444,\n", 2407 | " 'DSC인베스트먼트': 445,\n", 2408 | " '원풍': 446,\n", 2409 | " '타이거일렉': 447,\n", 2410 | " '대교': 448,\n", 2411 | " '한신기계': 449,\n", 2412 | " '진양폴리': 450,\n", 2413 | " 'NAVER': 451,\n", 2414 | " '로엔': 452,\n", 2415 | " '엘비세미콘': 453,\n", 2416 | " '빙그레': 454,\n", 2417 | " '세아제강': 455,\n", 2418 | " '이엠넷': 456,\n", 2419 | " '현대홈쇼핑': 457,\n", 2420 | " '심텍': 458,\n", 2421 | " '동부건설': 459,\n", 2422 | " '대상홀딩스': 460,\n", 2423 | " '포스코켐텍': 461,\n", 2424 | " '보광산업': 462,\n", 2425 | " '에스피지': 463,\n", 2426 | " '벽산': 464,\n", 2427 | " '딜리': 465,\n", 2428 | " '효성ITX': 466,\n", 2429 | " 'CS홀딩스': 467,\n", 2430 | " '와이지-원': 468,\n", 2431 | " '코다코': 469,\n", 2432 | " '한미글로벌': 470,\n", 2433 | " '동일산업': 471,\n", 2434 | " '아이쓰리시스템': 472,\n", 2435 | " '디케이디앤아이': 473,\n", 2436 | " 'SK디앤디': 474,\n", 2437 | " 'TCC동양': 475,\n", 2438 | " '웹젠': 476,\n", 2439 | " '종근당바이오': 477,\n", 2440 | " '해성디에스': 478,\n", 2441 | " '이상네트웍스': 479,\n", 2442 | " '메디톡스': 480,\n", 2443 | " '한농화성': 481,\n", 2444 | " '한국콜마': 482,\n", 2445 | " '비에이치아이': 483,\n", 2446 | " '매일유업': 484,\n", 2447 | " '어보브반도체': 485,\n", 2448 | " '한국철강': 486,\n", 2449 | " '기아차': 487,\n", 2450 | " 'LS전선아시아': 488,\n", 2451 | " '메리츠금융지주': 489,\n", 2452 | " '에이스침대': 490,\n", 2453 | " '오로라': 491,\n", 2454 | " '한국화장품제조': 492,\n", 2455 | " '팜스토리': 493,\n", 2456 | " '조선내화': 494,\n", 2457 | " '와이지엔터테인먼트': 495,\n", 2458 | " '이지바이오': 496,\n", 2459 | " '레드캡투어': 497,\n", 2460 | " '휴비츠': 498,\n", 2461 | " '메리츠화재': 499,\n", 2462 | " '텍셀네트컴': 500,\n", 2463 | " '이랜텍': 501,\n", 2464 | " '한국유리': 502,\n", 2465 | " '세중': 503,\n", 2466 | " '한섬': 504,\n", 2467 | " '디아이씨': 505,\n", 2468 | " 'JYP Ent.': 506,\n", 2469 | " '파세코': 507,\n", 2470 | " '삼양사': 508,\n", 2471 | " '쇼박스': 509,\n", 2472 | " '유비케어': 510,\n", 2473 | " '영화금속': 511,\n", 2474 | " '뉴트리바이오텍': 512,\n", 2475 | " '동남합성': 513,\n", 2476 | " '한화': 514,\n", 2477 | " '더존비즈온': 515,\n", 2478 | " '테크윙': 516,\n", 2479 | " '솔브레인': 517,\n", 2480 | " '한솔홈데코': 518,\n", 2481 | " '세아베스틸': 519,\n", 2482 | " 'KPX홀딩스': 520,\n", 2483 | " 'POSCO': 521,\n", 2484 | " '신원종합개발': 522,\n", 2485 | " '대한해운': 523,\n", 2486 | " '코라오홀딩스': 524,\n", 2487 | " '아모레퍼시픽': 525,\n", 2488 | " '크라운제과': 526,\n", 2489 | " '현대차': 527,\n", 2490 | " '씨엠에스에듀': 528,\n", 2491 | " '크린앤사이언스': 529,\n", 2492 | " '디에이테크놀로지': 530,\n", 2493 | " 'KG모빌리언스': 531,\n", 2494 | " '이오테크닉스': 532,\n", 2495 | " '아바코': 533,\n", 2496 | " '에스에이티': 534,\n", 2497 | " '코위버': 535,\n", 2498 | " '에이디칩스': 536,\n", 2499 | " 'LIG넥스원': 537,\n", 2500 | " 'ISC': 538,\n", 2501 | " '사조씨푸드': 539,\n", 2502 | " '조광페인트': 540,\n", 2503 | " '한국콜마홀딩스': 541,\n", 2504 | " '백광소재': 542,\n", 2505 | " '시노펙스': 543,\n", 2506 | " '금비': 544,\n", 2507 | " 'SKC코오롱PI': 545,\n", 2508 | " '대상': 546,\n", 2509 | " '아이즈비전': 547,\n", 2510 | " '태양금속': 548,\n", 2511 | " 'DSR제강': 549,\n", 2512 | " '새로닉스': 550,\n", 2513 | " '매커스': 551,\n", 2514 | " '한국제지': 552,\n", 2515 | " '삼화콘덴서': 553,\n", 2516 | " '광주은행': 554,\n", 2517 | " '바디텍메드': 555,\n", 2518 | " '디피씨': 556,\n", 2519 | " '대림B&Co': 557,\n", 2520 | " '아진엑스텍': 558,\n", 2521 | " '텔코웨어': 559,\n", 2522 | " '농심홀딩스': 560,\n", 2523 | " '대원전선': 561,\n", 2524 | " '동양에스텍': 562,\n", 2525 | " '한화손해보험': 563,\n", 2526 | " '샘표': 564,\n", 2527 | " '해태제과식품': 565,\n", 2528 | " '우리산업': 566,\n", 2529 | " '흥국화재': 567,\n", 2530 | " '비트컴퓨터': 568,\n", 2531 | " '신일산업': 569,\n", 2532 | " '대원화성': 570,\n", 2533 | " '티피씨글로벌': 571,\n", 2534 | " '신성델타테크': 572,\n", 2535 | " '원일특강': 573,\n", 2536 | " '삼익THK': 574,\n", 2537 | " '나스미디어': 575,\n", 2538 | " '팜스코': 576,\n", 2539 | " '서울반도체': 577,\n", 2540 | " '슈프리마에이치큐': 578,\n", 2541 | " '엑시콘': 579,\n", 2542 | " '원익': 580,\n", 2543 | " '케이피에프': 581,\n", 2544 | " '삼강엠앤티': 582,\n", 2545 | " '광동제약': 583,\n", 2546 | " '디와이': 584,\n", 2547 | " '삼현철강': 585,\n", 2548 | " '코리안리': 586,\n", 2549 | " 'GH신소재': 587,\n", 2550 | " '라온시큐어': 588,\n", 2551 | " '진성티이씨': 589,\n", 2552 | " '제일기획': 590,\n", 2553 | " '아모레G': 591,\n", 2554 | " '티에스인베스트먼트': 592,\n", 2555 | " 'S-Oil': 593,\n", 2556 | " '연우': 594,\n", 2557 | " '비씨월드제약': 595,\n", 2558 | " '한국전자금융': 596,\n", 2559 | " '위지트': 597,\n", 2560 | " '동일고무벨트': 598,\n", 2561 | " '동진쎄미켐': 599,\n", 2562 | " '삼영이엔씨': 600,\n", 2563 | " '현대해상': 601,\n", 2564 | " '휴온스글로벌': 602,\n", 2565 | " 'JB금융지주': 603,\n", 2566 | " '현우산업': 604,\n", 2567 | " 'BNK금융지주': 605,\n", 2568 | " '오스템임플란트': 606,\n", 2569 | " '나이스디앤비': 607,\n", 2570 | " '스타플렉스': 608,\n", 2571 | " '선광': 609,\n", 2572 | " '코리아에스이': 610,\n", 2573 | " 'THE E&M': 611,\n", 2574 | " '삼성에스디에스': 612,\n", 2575 | " 'NHN한국사이버결제': 613,\n", 2576 | " '뉴프렉스': 614,\n", 2577 | " '무림SP': 615,\n", 2578 | " '다우기술': 616,\n", 2579 | " '칩스앤미디어': 617,\n", 2580 | " '삼본정밀전자': 618,\n", 2581 | " '서원인텍': 619,\n", 2582 | " '문배철강': 620,\n", 2583 | " '에머슨퍼시픽': 621,\n", 2584 | " '한국정보인증': 622,\n", 2585 | " '락앤락': 623,\n", 2586 | " '옵트론텍': 624,\n", 2587 | " '국도화학': 625,\n", 2588 | " '한세실업': 626,\n", 2589 | " 'LS산전': 627,\n", 2590 | " '유라테크': 628,\n", 2591 | " '제주은행': 629,\n", 2592 | " 'SPC삼립': 630,\n", 2593 | " '경동나비엔': 631,\n", 2594 | " '디스플레이텍': 632,\n", 2595 | " '교보증권': 633,\n", 2596 | " '미래에셋생명': 634,\n", 2597 | " '포스코 ICT': 635,\n", 2598 | " 'HRS': 636,\n", 2599 | " '삼천당제약': 637,\n", 2600 | " '안랩': 638,\n", 2601 | " '에이티세미콘': 639,\n", 2602 | " '태광산업': 640,\n", 2603 | " '방림': 641,\n", 2604 | " '기업은행': 642,\n", 2605 | " '아이텍반도체': 643,\n", 2606 | " 'DGB금융지주': 644,\n", 2607 | " '신한지주': 645,\n", 2608 | " '현대비앤지스틸': 646,\n", 2609 | " '그랜드백화점': 647,\n", 2610 | " 'LS': 648,\n", 2611 | " '동화약품': 649,\n", 2612 | " '남화토건': 650,\n", 2613 | " '현대그린푸드': 651,\n", 2614 | " '제이콘텐트리': 652,\n", 2615 | " '케이피티': 653,\n", 2616 | " '한세예스24홀딩스': 654,\n", 2617 | " '코오롱인더': 655,\n", 2618 | " '키움증권': 656,\n", 2619 | " '이노션': 657,\n", 2620 | " '녹십자': 658,\n", 2621 | " '희림': 659,\n", 2622 | " '모나리자': 660,\n", 2623 | " 'KCTC': 661,\n", 2624 | " '자화전자': 662,\n", 2625 | " '케이엠': 663,\n", 2626 | " '피에스텍': 664,\n", 2627 | " '구영테크': 665,\n", 2628 | " '엘오티베큠': 666,\n", 2629 | " '실리콘웍스': 667,\n", 2630 | " '메리츠종금증권': 668,\n", 2631 | " '세방': 669,\n", 2632 | " '인피니트헬스케어': 670,\n", 2633 | " 'PN풍년': 671,\n", 2634 | " 'SK바이오랜드': 672,\n", 2635 | " '상아프론테크': 673,\n", 2636 | " 'LG전자': 674,\n", 2637 | " '지엠비코리아': 675,\n", 2638 | " '엘앤에프': 676,\n", 2639 | " '부국증권': 677,\n", 2640 | " '유진투자증권': 678,\n", 2641 | " '대웅': 679,\n", 2642 | " '유한양행': 680,\n", 2643 | " '태경산업': 681,\n", 2644 | " 'S&T홀딩스': 682,\n", 2645 | " '한국전자인증': 683,\n", 2646 | " '경방': 684,\n", 2647 | " '코스온': 685,\n", 2648 | " '참엔지니어링': 686,\n", 2649 | " '휴메딕스': 687,\n", 2650 | " 'SG&G': 688,\n", 2651 | " '우리은행': 689,\n", 2652 | " '인화정공': 690,\n", 2653 | " '코닉글로리': 691,\n", 2654 | " '삼보판지': 692,\n", 2655 | " '디아이': 693,\n", 2656 | " '오리온': 694,\n", 2657 | " '심텍홀딩스': 695,\n", 2658 | " '영풍': 696,\n", 2659 | " '삼성카드': 697,\n", 2660 | " 'SGA솔루션즈': 698,\n", 2661 | " 'KB금융': 699,\n", 2662 | " '우리산업홀딩스': 700,\n", 2663 | " '휴스틸': 701,\n", 2664 | " '포스코엠텍': 702,\n", 2665 | " '나노신소재': 703,\n", 2666 | " '대유에이텍': 704,\n", 2667 | " '풀무원': 705,\n", 2668 | " '동국알앤에스': 706,\n", 2669 | " 'KC코트렐': 707,\n", 2670 | " 'CJ E&M': 708,\n", 2671 | " '성창기업지주': 709,\n", 2672 | " '인지컨트롤스': 710,\n", 2673 | " '인터지스': 711,\n", 2674 | " '동아쏘시오홀딩스': 712,\n", 2675 | " '대현': 713,\n", 2676 | " '코스맥스': 714,\n", 2677 | " '월덱스': 715,\n", 2678 | " '퍼시스': 716,\n", 2679 | " '파워로직스': 717,\n", 2680 | " '대신증권': 718,\n", 2681 | " '한국항공우주': 719,\n", 2682 | " '한스바이오메드': 720,\n", 2683 | " '피엔티': 721,\n", 2684 | " '현대상사': 722,\n", 2685 | " '이엠텍': 723,\n", 2686 | " 'SK': 724,\n", 2687 | " '제이엠아이': 725,\n", 2688 | " '디티앤씨': 726,\n", 2689 | " '녹십자홀딩스': 727,\n", 2690 | " 'S&TC': 728,\n", 2691 | " '삼성화재': 729,\n", 2692 | " '삼영무역': 730,\n", 2693 | " '서연탑메탈': 731,\n", 2694 | " '고려산업': 732,\n", 2695 | " '에스앤에스텍': 733,\n", 2696 | " '셀트리온': 734,\n", 2697 | " '일진머티리얼즈': 735,\n", 2698 | " '하나금융지주': 736,\n", 2699 | " '한국팩키지': 737,\n", 2700 | " '넥센테크': 738,\n", 2701 | " '아이마켓코리아': 739,\n", 2702 | " '브리지텍': 740,\n", 2703 | " '경보제약': 741,\n", 2704 | " '대동스틸': 742,\n", 2705 | " '한국금융지주': 743,\n", 2706 | " '신영와코루': 744,\n", 2707 | " '에스엠': 745,\n", 2708 | " '미래컴퍼니': 746,\n", 2709 | " '링네트': 747,\n", 2710 | " '진양산업': 748,\n", 2711 | " '피앤이솔루션': 749,\n", 2712 | " '화진': 750,\n", 2713 | " '한국맥널티': 751,\n", 2714 | " '영풍정밀': 752,\n", 2715 | " '삼성출판사': 753,\n", 2716 | " '스맥': 754,\n", 2717 | " '현대미포조선': 755,\n", 2718 | " '피제이메탈': 756,\n", 2719 | " '한화생명': 757,\n", 2720 | " '팅크웨어': 758,\n", 2721 | " 'KTB투자증권': 759,\n", 2722 | " 'KTcs': 760,\n", 2723 | " '삼성공조': 761,\n", 2724 | " '명문제약': 762,\n", 2725 | " '태경화학': 763,\n", 2726 | " '한화테크윈': 764,\n", 2727 | " '한네트': 765,\n", 2728 | " '삼아제약': 766,\n", 2729 | " '팍스넷': 767,\n", 2730 | " '율촌화학': 768,\n", 2731 | " '삼일': 769,\n", 2732 | " 'KG ETS': 770,\n", 2733 | " 'GS글로벌': 771,\n", 2734 | " '와토스코리아': 772,\n", 2735 | " '롯데손해보험': 773,\n", 2736 | " '덕성': 774,\n", 2737 | " '피씨디렉트': 775,\n", 2738 | " '용평리조트': 776,\n", 2739 | " '중앙에너비스': 777,\n", 2740 | " '이구산업': 778,\n", 2741 | " '아세아제지': 779,\n", 2742 | " 'CJ씨푸드': 780,\n", 2743 | " '대덕GDS': 781,\n", 2744 | " '동국S&C': 782,\n", 2745 | " '삼진엘앤디': 783,\n", 2746 | " '티케이케미칼': 784,\n", 2747 | " '이연제약': 785,\n", 2748 | " '옴니시스템': 786,\n", 2749 | " '모헨즈': 787,\n", 2750 | " '대한제당': 788,\n", 2751 | " '유니퀘스트': 789,\n", 2752 | " '포메탈': 790,\n", 2753 | " '일신바이오': 791,\n", 2754 | " '케이씨티': 792,\n", 2755 | " '농심': 793,\n", 2756 | " '한일철강': 794,\n", 2757 | " '한일화학': 795,\n", 2758 | " '현대위아': 796,\n", 2759 | " '만도': 797,\n", 2760 | " '진양홀딩스': 798,\n", 2761 | " '디케이락': 799,\n", 2762 | " '고려제강': 800,\n", 2763 | " '우리들제약': 801,\n", 2764 | " '에이티넘인베스트': 802,\n", 2765 | " '대창': 803,\n", 2766 | " '제일테크노스': 804,\n", 2767 | " '지에스이': 805,\n", 2768 | " '신세계푸드': 806,\n", 2769 | " '지투알': 807,\n", 2770 | " '베셀': 808,\n", 2771 | " '나라엠앤디': 809,\n", 2772 | " 'LF': 810,\n", 2773 | " 'CJ오쇼핑': 811,\n", 2774 | " '티플랙스': 812,\n", 2775 | " 'CNH': 813,\n", 2776 | " '오르비텍': 814,\n", 2777 | " '대명코퍼레이션': 815,\n", 2778 | " '한일단조': 816,\n", 2779 | " '서플러스글로벌': 817,\n", 2780 | " '동일제강': 818,\n", 2781 | " '한국큐빅': 819,\n", 2782 | " '일성건설': 820,\n", 2783 | " 'KT서브마린': 821,\n", 2784 | " '하나투어': 822,\n", 2785 | " '유니켐': 823,\n", 2786 | " '코아시아홀딩스': 824,\n", 2787 | " 'LG상사': 825,\n", 2788 | " '정원엔시스': 826,\n", 2789 | " '삼보모터스': 827,\n", 2790 | " 'KCC': 828,\n", 2791 | " '알보젠코리아': 829,\n", 2792 | " '이베스트투자증권': 830,\n", 2793 | " '아즈텍WB': 831,\n", 2794 | " '까뮤이앤씨': 832,\n", 2795 | " 'IHQ': 833,\n", 2796 | " '제이브이엠': 834,\n", 2797 | " '남해화학': 835,\n", 2798 | " '삼광글라스': 836,\n", 2799 | " '사조해표': 837,\n", 2800 | " '일신방직': 838,\n", 2801 | " '신세계 I&C': 839,\n", 2802 | " '오픈베이스': 840,\n", 2803 | " 'SKC': 841,\n", 2804 | " '대한화섬': 842,\n", 2805 | " '하이텍팜': 843,\n", 2806 | " '남양유업': 844,\n", 2807 | " '전파기지국': 845,\n", 2808 | " '영인프런티어': 846,\n", 2809 | " '코오롱': 847,\n", 2810 | " 'BYC': 848,\n", 2811 | " '부산가스': 849,\n", 2812 | " '대성파인텍': 850,\n", 2813 | " 'LG이노텍': 851,\n", 2814 | " '한국카본': 852,\n", 2815 | " '광전자': 853,\n", 2816 | " '브레인콘텐츠': 854,\n", 2817 | " '한일진공': 855,\n", 2818 | " 'KG케미칼': 856,\n", 2819 | " '위즈코프': 857,\n", 2820 | " '케이사인': 858,\n", 2821 | " '유성기업': 859,\n", 2822 | " '신세계': 860,\n", 2823 | " '아이디스홀딩스': 861,\n", 2824 | " 'KMH하이텍': 862,\n", 2825 | " '휴니드': 863,\n", 2826 | " '옵티시스': 864,\n", 2827 | " '에스폴리텍': 865,\n", 2828 | " 'AJ렌터카': 866,\n", 2829 | " '서연전자': 867,\n", 2830 | " '삼양홀딩스': 868,\n", 2831 | " '금강철강': 869,\n", 2832 | " 'AJ네트웍스': 870,\n", 2833 | " '한국선재': 871,\n", 2834 | " '제노포커스': 872,\n", 2835 | " '로지시스': 873,\n", 2836 | " '국순당': 874,\n", 2837 | " '에프티이앤이': 875,\n", 2838 | " '다원시스': 876,\n", 2839 | " '바이오톡스텍': 877,\n", 2840 | " 'KC그린홀딩스': 878,\n", 2841 | " '모나미': 879,\n", 2842 | " '국일신동': 880,\n", 2843 | " '비츠로테크': 881,\n", 2844 | " '화천기공': 882,\n", 2845 | " '이건산업': 883,\n", 2846 | " '플랜티넷': 884,\n", 2847 | " '아주캐피탈': 885,\n", 2848 | " '일진다이아': 886,\n", 2849 | " '쎄트렉아이': 887,\n", 2850 | " '롯데정밀화학': 888,\n", 2851 | " 'NH투자증권': 889,\n", 2852 | " '영풍제지': 890,\n", 2853 | " '이라이콤': 891,\n", 2854 | " 'STX중공업': 892,\n", 2855 | " '우리기술': 893,\n", 2856 | " '흥구석유': 894,\n", 2857 | " 'KG이니시스': 895,\n", 2858 | " '부방': 896,\n", 2859 | " '갑을메탈': 897,\n", 2860 | " '동서': 898,\n", 2861 | " '서원': 899,\n", 2862 | " '인선이엔티': 900,\n", 2863 | " '엘티씨': 901,\n", 2864 | " '코오롱글로벌': 902,\n", 2865 | " '아이원스': 903,\n", 2866 | " '네패스': 904,\n", 2867 | " '삼영전자': 905,\n", 2868 | " '코스맥스비티아이': 906,\n", 2869 | " '에넥스': 907,\n", 2870 | " '대주산업': 908,\n", 2871 | " '경인전자': 909,\n", 2872 | " '홈센타홀딩스': 910,\n", 2873 | " '포스코대우': 911,\n", 2874 | " '원림': 912,\n", 2875 | " '만호제강': 913,\n", 2876 | " '화신정공': 914,\n", 2877 | " '예스코': 915,\n", 2878 | " '유신': 916,\n", 2879 | " '오리콤': 917,\n", 2880 | " '스페코': 918,\n", 2881 | " 'SIMPAC': 919,\n", 2882 | " '삼성증권': 920,\n", 2883 | " '씨젠': 921,\n", 2884 | " '세진중공업': 922,\n", 2885 | " '인포뱅크': 923,\n", 2886 | " '사조동아원': 924,\n", 2887 | " '동양물산': 925,\n", 2888 | " '다우데이타': 926,\n", 2889 | " '두올산업': 927,\n", 2890 | " '우리종금': 928,\n", 2891 | " '금호석유': 929,\n", 2892 | " '한국캐피탈': 930,\n", 2893 | " '신진에스엠': 931,\n", 2894 | " '갤럭시아컴즈': 932,\n", 2895 | " '우노앤컴퍼니': 933,\n", 2896 | " '승일': 934,\n", 2897 | " 'KNN': 935,\n", 2898 | " '삼영엠텍': 936,\n", 2899 | " '대성홀딩스': 937,\n", 2900 | " '한라IMS': 938,\n", 2901 | " '백광산업': 939,\n", 2902 | " '메타바이오메드': 940,\n", 2903 | " 'CJ대한통운': 941,\n", 2904 | " '인터파크': 942,\n", 2905 | " '이-글 벳': 943,\n", 2906 | " '신성통상': 944,\n", 2907 | " '대원미디어': 945,\n", 2908 | " '국제약품': 946,\n", 2909 | " '지역난방공사': 947,\n", 2910 | " '아스트': 948,\n", 2911 | " 'KPX그린케미칼': 949,\n", 2912 | " '코리아에프티': 950,\n", 2913 | " '모토닉': 951,\n", 2914 | " '유니크': 952,\n", 2915 | " '동일기연': 953,\n", 2916 | " '우원개발': 954,\n", 2917 | " '삼천리': 955,\n", 2918 | " '코데즈컴바인': 956,\n", 2919 | " '덕산네오룩스': 957,\n", 2920 | " '제이엠티': 958,\n", 2921 | " '수산중공업': 959,\n", 2922 | " '에이텍티앤': 960,\n", 2923 | " '케어젠': 961,\n", 2924 | " '인천도시가스': 962,\n", 2925 | " '대한과학': 963,\n", 2926 | " '동양': 964,\n", 2927 | " '신한': 965,\n", 2928 | " '아남전자': 966,\n", 2929 | " '팬오션': 967,\n", 2930 | " '신흥': 968,\n", 2931 | " '엘컴텍': 969,\n", 2932 | " 'CJ CGV': 970,\n", 2933 | " '남성': 971,\n", 2934 | " '광명전기': 972,\n", 2935 | " 'SFA반도체': 973,\n", 2936 | " '에스텍파마': 974,\n", 2937 | " '우신시스템': 975,\n", 2938 | " '하이트진로': 976,\n", 2939 | " '대우부품': 977,\n", 2940 | " '태원물산': 978,\n", 2941 | " '삼화전기': 979,\n", 2942 | " '알엔투테크놀로지': 980,\n", 2943 | " '시공테크': 981,\n", 2944 | " '에스티오': 982,\n", 2945 | " '안국약품': 983,\n", 2946 | " '대진디엠피': 984,\n", 2947 | " '녹십자랩셀': 985,\n", 2948 | " '세우글로벌': 986,\n", 2949 | " '유화증권': 987,\n", 2950 | " '선창산업': 988,\n", 2951 | " '우진': 989,\n", 2952 | " '일양약품': 990,\n", 2953 | " '푸드웰': 991,\n", 2954 | " '삼아알미늄': 992,\n", 2955 | " '호텔신라': 993,\n", 2956 | " '삼성생명': 994,\n", 2957 | " '인성정보': 995,\n", 2958 | " '케이씨에스': 996,\n", 2959 | " '엔피케이': 997,\n", 2960 | " '디이엔티': 998,\n", 2961 | " '웰크론한텍': 999,\n", 2962 | " '삼익악기': 1000,\n", 2963 | " ...}" 2964 | ] 2965 | }, 2966 | "execution_count": 44, 2967 | "metadata": {}, 2968 | "output_type": "execute_result" 2969 | } 2970 | ], 2971 | "source": [ 2972 | "test = 'C:\\\\Users\\\\JK\\\\Desktop\\\\파이썬으로 하는 퀀트투자\\\\마법공식 데이터.xlsx'\n", 2973 | "magic(test)" 2974 | ] 2975 | }, 2976 | { 2977 | "cell_type": "code", 2978 | "execution_count": null, 2979 | "metadata": {}, 2980 | "outputs": [], 2981 | "source": [] 2982 | } 2983 | ], 2984 | "metadata": { 2985 | "kernelspec": { 2986 | "display_name": "Python 3", 2987 | "language": "python", 2988 | "name": "python3" 2989 | }, 2990 | "language_info": { 2991 | "codemirror_mode": { 2992 | "name": "ipython", 2993 | "version": 3 2994 | }, 2995 | "file_extension": ".py", 2996 | "mimetype": "text/x-python", 2997 | "name": "python", 2998 | "nbconvert_exporter": "python", 2999 | "pygments_lexer": "ipython3", 3000 | "version": "3.6.4" 3001 | } 3002 | }, 3003 | "nbformat": 4, 3004 | "nbformat_minor": 2 3005 | } 3006 | -------------------------------------------------------------------------------- /Ch2. Pandas를 이용한 데이터 분석.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 1, 6 | "metadata": {}, 7 | "outputs": [ 8 | { 9 | "data": { 10 | "text/plain": [ 11 | "0 100\n", 12 | "1 500\n", 13 | "2 150\n", 14 | "dtype: int64" 15 | ] 16 | }, 17 | "execution_count": 1, 18 | "metadata": {}, 19 | "output_type": "execute_result" 20 | } 21 | ], 22 | "source": [ 23 | "# [코드 2.1] 예시 시리즈 만들기 (Ch2. Pandas를 이용한 데이터 분석.ipynb)\n", 24 | "\n", 25 | "import pandas as pd\n", 26 | "\n", 27 | "pd.Series([100, 500, 150])" 28 | ] 29 | }, 30 | { 31 | "cell_type": "code", 32 | "execution_count": 2, 33 | "metadata": {}, 34 | "outputs": [ 35 | { 36 | "data": { 37 | "text/plain": [ 38 | "카카오 100\n", 39 | "삼성전자 500\n", 40 | "현대차 150\n", 41 | "dtype: int64" 42 | ] 43 | }, 44 | "execution_count": 2, 45 | "metadata": {}, 46 | "output_type": "execute_result" 47 | } 48 | ], 49 | "source": [ 50 | "#[코드 2.2] 인덱스를 지정하여 시리즈 만들기 (Ch2. Pandas를 이용한 데이터 분석.ipynb)\n", 51 | "\n", 52 | "pd.Series([100, 500, 150], index=['카카오', '삼성전자', '현대차'])" 53 | ] 54 | }, 55 | { 56 | "cell_type": "code", 57 | "execution_count": 3, 58 | "metadata": {}, 59 | "outputs": [ 60 | { 61 | "name": "stdout", 62 | "output_type": "stream", 63 | "text": [ 64 | "100\n", 65 | "150\n" 66 | ] 67 | } 68 | ], 69 | "source": [ 70 | "#[코드 2.3] 시리즈를 변수에 저장하고 데이터 불러오기 (Ch2. Pandas를 이용한 데이터 분석.ipynb)\n", 71 | "\n", 72 | "series_ex1 = pd.Series([100, 500, 150], index=['카카오', '삼성전자', '현대차'])\n", 73 | "print(series_ex1['카카오'])\n", 74 | "print(series_ex1['현대차'])" 75 | ] 76 | }, 77 | { 78 | "cell_type": "code", 79 | "execution_count": 4, 80 | "metadata": {}, 81 | "outputs": [ 82 | { 83 | "name": "stdout", 84 | "output_type": "stream", 85 | "text": [ 86 | "500\n" 87 | ] 88 | } 89 | ], 90 | "source": [ 91 | "# [코드 2.4] 시리즈에서 순서를 이용하여 값 가져오기 (Ch2. Pandas를 이용한 데이터 분석.ipynb)\n", 92 | "\n", 93 | "print(series_ex1[1])" 94 | ] 95 | }, 96 | { 97 | "cell_type": "code", 98 | "execution_count": 5, 99 | "metadata": {}, 100 | "outputs": [ 101 | { 102 | "data": { 103 | "text/html": [ 104 | "
\n", 105 | "\n", 118 | "\n", 119 | " \n", 120 | " \n", 121 | " \n", 122 | " \n", 123 | " \n", 124 | " \n", 125 | " \n", 126 | " \n", 127 | " \n", 128 | " \n", 129 | " \n", 130 | " \n", 131 | " \n", 132 | " \n", 133 | " \n", 134 | " \n", 135 | " \n", 136 | " \n", 137 | " \n", 138 | " \n", 139 | " \n", 140 | " \n", 141 | " \n", 142 | " \n", 143 | " \n", 144 | " \n", 145 | " \n", 146 | " \n", 147 | "
PERROA가격
카카오0.51.01100
삼성전자1.23.10500
현대차0.20.97150
\n", 148 | "
" 149 | ], 150 | "text/plain": [ 151 | " PER ROA 가격\n", 152 | "카카오 0.5 1.01 100\n", 153 | "삼성전자 1.2 3.10 500\n", 154 | "현대차 0.2 0.97 150" 155 | ] 156 | }, 157 | "execution_count": 5, 158 | "metadata": {}, 159 | "output_type": "execute_result" 160 | } 161 | ], 162 | "source": [ 163 | "# [코드 2.5] 예시 데이터프레임 만들기 (Ch2. Pandas를 이용한 데이터 분석.ipynb)\n", 164 | "\n", 165 | "pd.DataFrame({'가격':[100, 500, 150], 'PER':[0.5, 1.2, 0.2], 'ROA':[1.01, 3.1, 0.97]},\n", 166 | " index=['카카오', '삼성전자', '현대차'])" 167 | ] 168 | }, 169 | { 170 | "cell_type": "code", 171 | "execution_count": 6, 172 | "metadata": {}, 173 | "outputs": [ 174 | { 175 | "data": { 176 | "text/plain": [ 177 | "카카오 100\n", 178 | "삼성전자 500\n", 179 | "현대차 150\n", 180 | "Name: 가격, dtype: int64" 181 | ] 182 | }, 183 | "execution_count": 6, 184 | "metadata": {}, 185 | "output_type": "execute_result" 186 | } 187 | ], 188 | "source": [ 189 | "# [코드 2.6] 예시 데이터프레임 저장하여 사용해 보기 (Ch2. Pandas를 이용한 데이터 분석.ipynb)\n", 190 | "\n", 191 | "df_ex1 = pd.DataFrame({'가격':[100, 500, 150], 'PER':[0.5, 1.2, 0.2], 'ROA':[1.01, 3.1, 0.97]},\n", 192 | " index=['카카오', '삼성전자', '현대차'])\n", 193 | "\n", 194 | "df_ex1['가격']" 195 | ] 196 | }, 197 | { 198 | "cell_type": "code", 199 | "execution_count": 7, 200 | "metadata": {}, 201 | "outputs": [ 202 | { 203 | "data": { 204 | "text/plain": [ 205 | "500" 206 | ] 207 | }, 208 | "execution_count": 7, 209 | "metadata": {}, 210 | "output_type": "execute_result" 211 | } 212 | ], 213 | "source": [ 214 | "# [코드 2.7] 데이터프레임에서 특정 데이터 가져오기 (Ch2. Pandas를 이용한 데이터 분석.ipynb)\n", 215 | "\n", 216 | "df_ex1['가격']['삼성전자']" 217 | ] 218 | }, 219 | { 220 | "cell_type": "code", 221 | "execution_count": 8, 222 | "metadata": {}, 223 | "outputs": [ 224 | { 225 | "data": { 226 | "text/plain": [ 227 | "PER 0.50\n", 228 | "ROA 1.01\n", 229 | "가격 100.00\n", 230 | "Name: 카카오, dtype: float64" 231 | ] 232 | }, 233 | "execution_count": 8, 234 | "metadata": {}, 235 | "output_type": "execute_result" 236 | } 237 | ], 238 | "source": [ 239 | "# [코드 2.8] 데이터프레임에서 행을 기준으로 선택하기 (Ch2. Pandas를 이용한 데이터 분석.ipynb)\n", 240 | "\n", 241 | "df_ex1.loc['카카오']" 242 | ] 243 | }, 244 | { 245 | "cell_type": "code", 246 | "execution_count": 9, 247 | "metadata": {}, 248 | "outputs": [], 249 | "source": [ 250 | "# [코드 2.9] 예제용 데이터프레임 생성 (Ch2. Pandas를 이용한 데이터 분석.ipynb)\n", 251 | "\n", 252 | "df_ex2 = pd.DataFrame({'가격':[100, 140, 155, 70, 90], \n", 253 | " 'PER':[1.1, 0.8, 0.7, 2.3, 3.9],\n", 254 | " '거래량':[1000, 800, 890, 700, 2000]},\n", 255 | " index=['a', 'b', 'c','d', 'e'])" 256 | ] 257 | }, 258 | { 259 | "cell_type": "code", 260 | "execution_count": 10, 261 | "metadata": {}, 262 | "outputs": [ 263 | { 264 | "data": { 265 | "text/html": [ 266 | "
\n", 267 | "\n", 280 | "\n", 281 | " \n", 282 | " \n", 283 | " \n", 284 | " \n", 285 | " \n", 286 | " \n", 287 | " \n", 288 | " \n", 289 | " \n", 290 | " \n", 291 | " \n", 292 | " \n", 293 | " \n", 294 | " \n", 295 | " \n", 296 | " \n", 297 | " \n", 298 | " \n", 299 | " \n", 300 | " \n", 301 | " \n", 302 | " \n", 303 | " \n", 304 | " \n", 305 | " \n", 306 | " \n", 307 | " \n", 308 | " \n", 309 | "
PER가격거래량
a1.11001000
b0.8140800
c0.7155890
\n", 310 | "
" 311 | ], 312 | "text/plain": [ 313 | " PER 가격 거래량\n", 314 | "a 1.1 100 1000\n", 315 | "b 0.8 140 800\n", 316 | "c 0.7 155 890" 317 | ] 318 | }, 319 | "execution_count": 10, 320 | "metadata": {}, 321 | "output_type": "execute_result" 322 | } 323 | ], 324 | "source": [ 325 | "# [코드 2.10] 가격이 100 이상인 데이터만 선택 (Ch2. Pandas를 이용한 데이터 분석.ipynb)\n", 326 | "\n", 327 | "df_ex2[df_ex2['가격'] >= 100]" 328 | ] 329 | }, 330 | { 331 | "cell_type": "code", 332 | "execution_count": 11, 333 | "metadata": {}, 334 | "outputs": [ 335 | { 336 | "data": { 337 | "text/html": [ 338 | "
\n", 339 | "\n", 352 | "\n", 353 | " \n", 354 | " \n", 355 | " \n", 356 | " \n", 357 | " \n", 358 | " \n", 359 | " \n", 360 | " \n", 361 | " \n", 362 | " \n", 363 | " \n", 364 | " \n", 365 | " \n", 366 | " \n", 367 | " \n", 368 | " \n", 369 | " \n", 370 | " \n", 371 | " \n", 372 | " \n", 373 | " \n", 374 | " \n", 375 | " \n", 376 | " \n", 377 | " \n", 378 | " \n", 379 | " \n", 380 | " \n", 381 | "
PER가격거래량
b0.8140800
c0.7155890
d2.370700
\n", 382 | "
" 383 | ], 384 | "text/plain": [ 385 | " PER 가격 거래량\n", 386 | "b 0.8 140 800\n", 387 | "c 0.7 155 890\n", 388 | "d 2.3 70 700" 389 | ] 390 | }, 391 | "execution_count": 11, 392 | "metadata": {}, 393 | "output_type": "execute_result" 394 | } 395 | ], 396 | "source": [ 397 | "# [코드 2.11] 거래량이 1000보다 작은 데이터만 선택 (Ch2. Pandas를 이용한 데이터 분석.ipynb)\n", 398 | "\n", 399 | "df_ex2[df_ex2['거래량'] < 1000]" 400 | ] 401 | }, 402 | { 403 | "cell_type": "code", 404 | "execution_count": 12, 405 | "metadata": {}, 406 | "outputs": [ 407 | { 408 | "data": { 409 | "text/plain": [ 410 | "c 0.7\n", 411 | "b 0.8\n", 412 | "a 1.1\n", 413 | "d 2.3\n", 414 | "e 3.9\n", 415 | "Name: PER, dtype: float64" 416 | ] 417 | }, 418 | "execution_count": 12, 419 | "metadata": {}, 420 | "output_type": "execute_result" 421 | } 422 | ], 423 | "source": [ 424 | "# [코드 2.12] PER 컬럼을 선택하여 정렬하기 (Ch2. Pandas를 이용한 데이터 분석.ipynb)\n", 425 | "\n", 426 | "df_ex2['PER'].sort_values()" 427 | ] 428 | }, 429 | { 430 | "cell_type": "code", 431 | "execution_count": 13, 432 | "metadata": {}, 433 | "outputs": [ 434 | { 435 | "data": { 436 | "text/plain": [ 437 | "e 3.9\n", 438 | "d 2.3\n", 439 | "a 1.1\n", 440 | "b 0.8\n", 441 | "c 0.7\n", 442 | "Name: PER, dtype: float64" 443 | ] 444 | }, 445 | "execution_count": 13, 446 | "metadata": {}, 447 | "output_type": "execute_result" 448 | } 449 | ], 450 | "source": [ 451 | "# [코드 2.13] PER 컬럼을 선택하여 내림차순 정렬하기 (Ch2. Pandas를 이용한 데이터 분석.ipynb)\n", 452 | "\n", 453 | "df_ex2['PER'].sort_values(ascending=False)" 454 | ] 455 | }, 456 | { 457 | "cell_type": "code", 458 | "execution_count": 14, 459 | "metadata": {}, 460 | "outputs": [ 461 | { 462 | "data": { 463 | "text/html": [ 464 | "
\n", 465 | "\n", 478 | "\n", 479 | " \n", 480 | " \n", 481 | " \n", 482 | " \n", 483 | " \n", 484 | " \n", 485 | " \n", 486 | " \n", 487 | " \n", 488 | " \n", 489 | " \n", 490 | " \n", 491 | " \n", 492 | " \n", 493 | " \n", 494 | " \n", 495 | " \n", 496 | " \n", 497 | " \n", 498 | " \n", 499 | " \n", 500 | " \n", 501 | " \n", 502 | " \n", 503 | " \n", 504 | " \n", 505 | " \n", 506 | " \n", 507 | " \n", 508 | " \n", 509 | " \n", 510 | " \n", 511 | " \n", 512 | " \n", 513 | " \n", 514 | " \n", 515 | " \n", 516 | " \n", 517 | " \n", 518 | " \n", 519 | "
PER가격거래량
c0.7155890
b0.8140800
a1.11001000
d2.370700
e3.9902000
\n", 520 | "
" 521 | ], 522 | "text/plain": [ 523 | " PER 가격 거래량\n", 524 | "c 0.7 155 890\n", 525 | "b 0.8 140 800\n", 526 | "a 1.1 100 1000\n", 527 | "d 2.3 70 700\n", 528 | "e 3.9 90 2000" 529 | ] 530 | }, 531 | "execution_count": 14, 532 | "metadata": {}, 533 | "output_type": "execute_result" 534 | } 535 | ], 536 | "source": [ 537 | "# [코드 2.14] PER 컬럼을 기준으로 전체 데이터프레임 정렬 (Ch2. Pandas를 이용한 데이터 분석.ipynb)\n", 538 | "\n", 539 | "df_ex2.sort_values(by='PER')" 540 | ] 541 | }, 542 | { 543 | "cell_type": "code", 544 | "execution_count": 15, 545 | "metadata": { 546 | "collapsed": true 547 | }, 548 | "outputs": [ 549 | { 550 | "data": { 551 | "text/html": [ 552 | "
\n", 553 | "\n", 566 | "\n", 567 | " \n", 568 | " \n", 569 | " \n", 570 | " \n", 571 | " \n", 572 | " \n", 573 | " \n", 574 | " \n", 575 | " \n", 576 | " \n", 577 | " \n", 578 | " \n", 579 | " \n", 580 | " \n", 581 | " \n", 582 | " \n", 583 | " \n", 584 | " \n", 585 | " \n", 586 | " \n", 587 | " \n", 588 | " \n", 589 | " \n", 590 | " \n", 591 | " \n", 592 | " \n", 593 | " \n", 594 | " \n", 595 | " \n", 596 | " \n", 597 | " \n", 598 | " \n", 599 | " \n", 600 | " \n", 601 | " \n", 602 | " \n", 603 | " \n", 604 | " \n", 605 | " \n", 606 | " \n", 607 | "
PER가격거래량
e3.9902000
d2.370700
a1.11001000
b0.8140800
c0.7155890
\n", 608 | "
" 609 | ], 610 | "text/plain": [ 611 | " PER 가격 거래량\n", 612 | "e 3.9 90 2000\n", 613 | "d 2.3 70 700\n", 614 | "a 1.1 100 1000\n", 615 | "b 0.8 140 800\n", 616 | "c 0.7 155 890" 617 | ] 618 | }, 619 | "execution_count": 15, 620 | "metadata": {}, 621 | "output_type": "execute_result" 622 | } 623 | ], 624 | "source": [ 625 | "# [코드 2.15] PER 컬럼을 기준으로 전체 데이터프레임 내림차순 정렬 (Ch2. Pandas를 이용한 데이터 분석.ipynb)\n", 626 | "\n", 627 | "df_ex2.sort_values(by='PER', ascending=False)" 628 | ] 629 | }, 630 | { 631 | "cell_type": "code", 632 | "execution_count": 16, 633 | "metadata": { 634 | "collapsed": true 635 | }, 636 | "outputs": [ 637 | { 638 | "data": { 639 | "text/plain": [ 640 | "a 4.0\n", 641 | "b 2.0\n", 642 | "c 3.0\n", 643 | "d 1.0\n", 644 | "e 5.0\n", 645 | "Name: 거래량, dtype: float64" 646 | ] 647 | }, 648 | "execution_count": 16, 649 | "metadata": {}, 650 | "output_type": "execute_result" 651 | } 652 | ], 653 | "source": [ 654 | "# [코드 2.16] 거래량을 기준으로 순위 만들기 (Ch2. Pandas를 이용한 데이터 분석.ipynb)\n", 655 | "\n", 656 | "df_ex2['거래량'].rank()" 657 | ] 658 | }, 659 | { 660 | "cell_type": "code", 661 | "execution_count": 17, 662 | "metadata": { 663 | "collapsed": true 664 | }, 665 | "outputs": [ 666 | { 667 | "data": { 668 | "text/plain": [ 669 | "a 2.0\n", 670 | "b 4.0\n", 671 | "c 3.0\n", 672 | "d 5.0\n", 673 | "e 1.0\n", 674 | "Name: 거래량, dtype: float64" 675 | ] 676 | }, 677 | "execution_count": 17, 678 | "metadata": {}, 679 | "output_type": "execute_result" 680 | } 681 | ], 682 | "source": [ 683 | "# [코드 2.17] 거래량을 내림차순 기준으로 순위 만들기 (Ch2. Pandas를 이용한 데이터 분석.ipynb)\n", 684 | "\n", 685 | "df_ex2['거래량'].rank(ascending=False)" 686 | ] 687 | }, 688 | { 689 | "cell_type": "code", 690 | "execution_count": 18, 691 | "metadata": { 692 | "collapsed": true 693 | }, 694 | "outputs": [ 695 | { 696 | "data": { 697 | "text/html": [ 698 | "
\n", 699 | "\n", 712 | "\n", 713 | " \n", 714 | " \n", 715 | " \n", 716 | " \n", 717 | " \n", 718 | " \n", 719 | " \n", 720 | " \n", 721 | " \n", 722 | " \n", 723 | " \n", 724 | " \n", 725 | " \n", 726 | " \n", 727 | " \n", 728 | " \n", 729 | " \n", 730 | " \n", 731 | " \n", 732 | " \n", 733 | " \n", 734 | " \n", 735 | " \n", 736 | " \n", 737 | " \n", 738 | " \n", 739 | " \n", 740 | " \n", 741 | " \n", 742 | " \n", 743 | " \n", 744 | " \n", 745 | " \n", 746 | " \n", 747 | " \n", 748 | " \n", 749 | " \n", 750 | " \n", 751 | " \n", 752 | " \n", 753 | " \n", 754 | " \n", 755 | " \n", 756 | " \n", 757 | " \n", 758 | " \n", 759 | " \n", 760 | " \n", 761 | " \n", 762 | " \n", 763 | " \n", 764 | " \n", 765 | " \n", 766 | " \n", 767 | " \n", 768 | " \n", 769 | " \n", 770 | " \n", 771 | " \n", 772 | " \n", 773 | " \n", 774 | " \n", 775 | " \n", 776 | " \n", 777 | " \n", 778 | " \n", 779 | " \n", 780 | " \n", 781 | " \n", 782 | " \n", 783 | " \n", 784 | " \n", 785 | " \n", 786 | " \n", 787 | " \n", 788 | " \n", 789 | " \n", 790 | " \n", 791 | " \n", 792 | " \n", 793 | " \n", 794 | " \n", 795 | " \n", 796 | " \n", 797 | " \n", 798 | " \n", 799 | " \n", 800 | " \n", 801 | " \n", 802 | " \n", 803 | " \n", 804 | " \n", 805 | " \n", 806 | " \n", 807 | " \n", 808 | " \n", 809 | " \n", 810 | " \n", 811 | " \n", 812 | " \n", 813 | " \n", 814 | " \n", 815 | " \n", 816 | " \n", 817 | " \n", 818 | " \n", 819 | " \n", 820 | " \n", 821 | " \n", 822 | " \n", 823 | " \n", 824 | " \n", 825 | " \n", 826 | " \n", 827 | " \n", 828 | " \n", 829 | " \n", 830 | " \n", 831 | " \n", 832 | " \n", 833 | " \n", 834 | " \n", 835 | " \n", 836 | " \n", 837 | " \n", 838 | " \n", 839 | " \n", 840 | " \n", 841 | " \n", 842 | " \n", 843 | " \n", 844 | " \n", 845 | " \n", 846 | " \n", 847 | " \n", 848 | " \n", 849 | " \n", 850 | " \n", 851 | " \n", 852 | " \n", 853 | " \n", 854 | " \n", 855 | " \n", 856 | " \n", 857 | " \n", 858 | " \n", 859 | " \n", 860 | " \n", 861 | " \n", 862 | " \n", 863 | " \n", 864 | " \n", 865 | " \n", 866 | " \n", 867 | " \n", 868 | " \n", 869 | " \n", 870 | " \n", 871 | " \n", 872 | " \n", 873 | " \n", 874 | " \n", 875 | " \n", 876 | " \n", 877 | " \n", 878 | " \n", 879 | " \n", 880 | " \n", 881 | " \n", 882 | " \n", 883 | " \n", 884 | " \n", 885 | " \n", 886 | " \n", 887 | " \n", 888 | " \n", 889 | " \n", 890 | " \n", 891 | " \n", 892 | " \n", 893 | " \n", 894 | " \n", 895 | " \n", 896 | " \n", 897 | " \n", 898 | " \n", 899 | " \n", 900 | " \n", 901 | " \n", 902 | " \n", 903 | " \n", 904 | " \n", 905 | " \n", 906 | " \n", 907 | " \n", 908 | " \n", 909 | " \n", 910 | " \n", 911 | " \n", 912 | " \n", 913 | " \n", 914 | " \n", 915 | " \n", 916 | " \n", 917 | " \n", 918 | " \n", 919 | " \n", 920 | " \n", 921 | " \n", 922 | " \n", 923 | " \n", 924 | " \n", 925 | " \n", 926 | " \n", 927 | " \n", 928 | " \n", 929 | " \n", 930 | " \n", 931 | " \n", 932 | " \n", 933 | " \n", 934 | " \n", 935 | " \n", 936 | " \n", 937 | " \n", 938 | " \n", 939 | " \n", 940 | " \n", 941 | " \n", 942 | " \n", 943 | " \n", 944 | " \n", 945 | " \n", 946 | " \n", 947 | " \n", 948 | " \n", 949 | " \n", 950 | " \n", 951 | " \n", 952 | " \n", 953 | " \n", 954 | " \n", 955 | " \n", 956 | " \n", 957 | " \n", 958 | " \n", 959 | " \n", 960 | " \n", 961 | " \n", 962 | " \n", 963 | " \n", 964 | " \n", 965 | " \n", 966 | " \n", 967 | " \n", 968 | " \n", 969 | " \n", 970 | " \n", 971 | " \n", 972 | " \n", 973 | " \n", 974 | " \n", 975 | " \n", 976 | " \n", 977 | " \n", 978 | " \n", 979 | " \n", 980 | " \n", 981 | " \n", 982 | " \n", 983 | " \n", 984 | " \n", 985 | " \n", 986 | " \n", 987 | " \n", 988 | " \n", 989 | " \n", 990 | " \n", 991 | " \n", 992 | " \n", 993 | " \n", 994 | " \n", 995 | " \n", 996 | " \n", 997 | " \n", 998 | " \n", 999 | " \n", 1000 | " \n", 1001 | " \n", 1002 | " \n", 1003 | " \n", 1004 | " \n", 1005 | " \n", 1006 | " \n", 1007 | " \n", 1008 | " \n", 1009 | " \n", 1010 | " \n", 1011 | " \n", 1012 | " \n", 1013 | " \n", 1014 | " \n", 1015 | " \n", 1016 | " \n", 1017 | " \n", 1018 | " \n", 1019 | " \n", 1020 | " \n", 1021 | " \n", 1022 | " \n", 1023 | " \n", 1024 | " \n", 1025 | " \n", 1026 | " \n", 1027 | "
회사명PER
03S-11.87
1AJ네트웍스25.15
2AJ렌터카24.85
3AK홀딩스11.49
4APS홀딩스0.23
5AP시스템14.63
6AP위성21.65
7BGF2.18
8BNK금융지주6.48
9BYC13.72
10C&S자산관리-0.65
11CJ12.23
12CJ CGV2304.04
13CJ E&M7.77
14CJ대한통운69.15
15CJ씨푸드24.83
16CJ오쇼핑55.15
17CJ제일제당13.44
18CJ프레시웨이-36.40
19CJ헬로-77.13
20CMG제약278.60
21CNH27.07
22CS18.66
23CSA 코스믹-11.72
24CS홀딩스13.65
25DB-66.41
26DB금융투자11.47
27DB라이텍71.57
28DB손해보험7.81
29DB하이텍8.16
.........
1975화진18.64
1976화천기계53.01
1977화천기공10.94
1978환인제약20.59
1979황금에스티7.21
1980효성9.98
1981효성ITX21.93
1982효성오앤비13.66
1983후성14.98
1984휘닉스소재-19.10
1985휠라코리아2.60
1986휴니드12.70
1987휴마시스-29.98
1988휴맥스-80.19
1989휴맥스홀딩스-8.67
1990휴메딕스38.05
1991휴비스28.53
1992휴비츠18.32
1993휴스틸6.44
1994휴온스24.17
1995휴온스글로벌34.31
1996휴젤36.80
1997휴켐스9.78
1998흥구석유22.15
1999흥국8.61
2000흥국에프엔비23.20
2001흥국화재5.93
2002흥아해운-4.87
2003희림20.66
2004힘스6.63
\n", 1028 | "

2005 rows × 2 columns

\n", 1029 | "
" 1030 | ], 1031 | "text/plain": [ 1032 | " 회사명 PER\n", 1033 | "0 3S -11.87\n", 1034 | "1 AJ네트웍스 25.15\n", 1035 | "2 AJ렌터카 24.85\n", 1036 | "3 AK홀딩스 11.49\n", 1037 | "4 APS홀딩스 0.23\n", 1038 | "5 AP시스템 14.63\n", 1039 | "6 AP위성 21.65\n", 1040 | "7 BGF 2.18\n", 1041 | "8 BNK금융지주 6.48\n", 1042 | "9 BYC 13.72\n", 1043 | "10 C&S자산관리 -0.65\n", 1044 | "11 CJ 12.23\n", 1045 | "12 CJ CGV 2304.04\n", 1046 | "13 CJ E&M 7.77\n", 1047 | "14 CJ대한통운 69.15\n", 1048 | "15 CJ씨푸드 24.83\n", 1049 | "16 CJ오쇼핑 55.15\n", 1050 | "17 CJ제일제당 13.44\n", 1051 | "18 CJ프레시웨이 -36.40\n", 1052 | "19 CJ헬로 -77.13\n", 1053 | "20 CMG제약 278.60\n", 1054 | "21 CNH 27.07\n", 1055 | "22 CS 18.66\n", 1056 | "23 CSA 코스믹 -11.72\n", 1057 | "24 CS홀딩스 13.65\n", 1058 | "25 DB -66.41\n", 1059 | "26 DB금융투자 11.47\n", 1060 | "27 DB라이텍 71.57\n", 1061 | "28 DB손해보험 7.81\n", 1062 | "29 DB하이텍 8.16\n", 1063 | "... ... ...\n", 1064 | "1975 화진 18.64\n", 1065 | "1976 화천기계 53.01\n", 1066 | "1977 화천기공 10.94\n", 1067 | "1978 환인제약 20.59\n", 1068 | "1979 황금에스티 7.21\n", 1069 | "1980 효성 9.98\n", 1070 | "1981 효성ITX 21.93\n", 1071 | "1982 효성오앤비 13.66\n", 1072 | "1983 후성 14.98\n", 1073 | "1984 휘닉스소재 -19.10\n", 1074 | "1985 휠라코리아 2.60\n", 1075 | "1986 휴니드 12.70\n", 1076 | "1987 휴마시스 -29.98\n", 1077 | "1988 휴맥스 -80.19\n", 1078 | "1989 휴맥스홀딩스 -8.67\n", 1079 | "1990 휴메딕스 38.05\n", 1080 | "1991 휴비스 28.53\n", 1081 | "1992 휴비츠 18.32\n", 1082 | "1993 휴스틸 6.44\n", 1083 | "1994 휴온스 24.17\n", 1084 | "1995 휴온스글로벌 34.31\n", 1085 | "1996 휴젤 36.80\n", 1086 | "1997 휴켐스 9.78\n", 1087 | "1998 흥구석유 22.15\n", 1088 | "1999 흥국 8.61\n", 1089 | "2000 흥국에프엔비 23.20\n", 1090 | "2001 흥국화재 5.93\n", 1091 | "2002 흥아해운 -4.87\n", 1092 | "2003 희림 20.66\n", 1093 | "2004 힘스 6.63\n", 1094 | "\n", 1095 | "[2005 rows x 2 columns]" 1096 | ] 1097 | }, 1098 | "execution_count": 18, 1099 | "metadata": {}, 1100 | "output_type": "execute_result" 1101 | } 1102 | ], 1103 | "source": [ 1104 | "# [코드 2.18] 마법공식 데이터 읽어 오기 (Ch2. Pandas를 이용한 데이터 분석.ipynb)\n", 1105 | "\n", 1106 | "file_path = 'C:\\\\Users\\\\JK\\\\Desktop\\\\파이썬으로 하는 퀀트투자\\\\마법공식 데이터.xlsx'\n", 1107 | "pd.read_excel(file_path, sheet_name='PER')" 1108 | ] 1109 | }, 1110 | { 1111 | "cell_type": "code", 1112 | "execution_count": 19, 1113 | "metadata": {}, 1114 | "outputs": [], 1115 | "source": [ 1116 | "# [코드 2.19] 마법공식 데이터 인덱스 설정하여 읽어 오기 (Ch2. Pandas를 이용한 데이터 분석.ipynb)\n", 1117 | "\n", 1118 | "per_data = pd.read_excel(file_path, sheet_name='PER', index_col=0)" 1119 | ] 1120 | }, 1121 | { 1122 | "cell_type": "code", 1123 | "execution_count": 20, 1124 | "metadata": {}, 1125 | "outputs": [], 1126 | "source": [ 1127 | "# [코드 2.20] per 값이 0 보다 작은 데이터 필터링 (Ch2. Pandas를 이용한 데이터 분석.ipynb)\n", 1128 | "\n", 1129 | "filtered_per = per_data[per_data['PER'] > 0]" 1130 | ] 1131 | }, 1132 | { 1133 | "cell_type": "code", 1134 | "execution_count": 21, 1135 | "metadata": { 1136 | "scrolled": false 1137 | }, 1138 | "outputs": [], 1139 | "source": [ 1140 | "# [코드 2.21] per 데이터프레임 정렬 (Ch2. Pandas를 이용한 데이터 분석.ipynb)\n", 1141 | "\n", 1142 | "sorted_per = filtered_per.sort_values(by='PER')" 1143 | ] 1144 | }, 1145 | { 1146 | "cell_type": "code", 1147 | "execution_count": 22, 1148 | "metadata": { 1149 | "collapsed": true 1150 | }, 1151 | "outputs": [ 1152 | { 1153 | "data": { 1154 | "text/plain": [ 1155 | "회사명\n", 1156 | "APS홀딩스 1.0\n", 1157 | "STX중공업 2.0\n", 1158 | "제일파마홀딩스 3.0\n", 1159 | "이녹스 4.0\n", 1160 | "유비쿼스홀딩스 5.0\n", 1161 | "삼강엠앤티 6.5\n", 1162 | "오리온홀딩스 6.5\n", 1163 | "크라운해태홀딩스 8.0\n", 1164 | "STX 9.0\n", 1165 | "현대시멘트 10.0\n", 1166 | "동부건설 11.0\n", 1167 | "BGF 12.0\n", 1168 | "평화정공 13.0\n", 1169 | "차이나하오란 14.0\n", 1170 | "서연이화 15.0\n", 1171 | "서연 16.0\n", 1172 | "휠라코리아 17.0\n", 1173 | "현대중공업 18.5\n", 1174 | "삼호 18.5\n", 1175 | "경동인베스트 20.0\n", 1176 | "영보화학 21.0\n", 1177 | "서한 22.0\n", 1178 | "한창제지 23.0\n", 1179 | "미래에셋생명 24.0\n", 1180 | "그랜드백화점 25.0\n", 1181 | "인화정공 26.0\n", 1182 | "성도이엔지 27.5\n", 1183 | "한라 27.5\n", 1184 | "티에이치엔 29.0\n", 1185 | "대원산업 30.0\n", 1186 | " ... \n", 1187 | "SDN 1364.0\n", 1188 | "동운아나텍 1365.0\n", 1189 | "한미약품 1366.0\n", 1190 | "지와이커머스 1367.0\n", 1191 | "영진약품 1368.0\n", 1192 | "교보비엔케이스팩 1369.0\n", 1193 | "롯데지주 1370.0\n", 1194 | "진양화학 1371.0\n", 1195 | "삼영엠텍 1372.0\n", 1196 | "세기상사 1373.0\n", 1197 | "한올바이오파마 1374.0\n", 1198 | "이엑스티 1375.0\n", 1199 | "아미코젠 1376.0\n", 1200 | "에프티이앤이 1377.0\n", 1201 | "제일약품 1378.0\n", 1202 | "레드로버 1379.0\n", 1203 | "나노메딕스 1380.0\n", 1204 | "한화에이스스팩3호 1381.0\n", 1205 | "엔에이치스팩10호 1382.0\n", 1206 | "CJ CGV 1383.0\n", 1207 | "국일제지 1384.0\n", 1208 | "로보로보 1385.0\n", 1209 | "웨이브일렉트로 1386.0\n", 1210 | "안트로젠 1387.0\n", 1211 | "미래에셋대우스팩1호 1388.0\n", 1212 | "신영스팩3호 1389.0\n", 1213 | "SCI평가정보 1390.0\n", 1214 | "제이에스티나 1391.0\n", 1215 | "셀트리온제약 1392.0\n", 1216 | "코미팜 1393.0\n", 1217 | "Name: PER, Length: 1393, dtype: float64" 1218 | ] 1219 | }, 1220 | "execution_count": 22, 1221 | "metadata": {}, 1222 | "output_type": "execute_result" 1223 | } 1224 | ], 1225 | "source": [ 1226 | "# [코드 2.22] per값으로 순위 만들기 (Ch2. Pandas를 이용한 데이터 분석.ipynb)\n", 1227 | "\n", 1228 | "sorted_per['PER'].rank()" 1229 | ] 1230 | }, 1231 | { 1232 | "cell_type": "code", 1233 | "execution_count": 23, 1234 | "metadata": {}, 1235 | "outputs": [], 1236 | "source": [ 1237 | "# [코드 2.23] per값으로 순위 기존 데이터프레임에 합치기 (Ch2. Pandas를 이용한 데이터 분석.ipynb)\n", 1238 | "\n", 1239 | "sorted_per['PER랭킹'] = sorted_per['PER'].rank()" 1240 | ] 1241 | }, 1242 | { 1243 | "cell_type": "code", 1244 | "execution_count": 24, 1245 | "metadata": { 1246 | "collapsed": true 1247 | }, 1248 | "outputs": [ 1249 | { 1250 | "data": { 1251 | "text/html": [ 1252 | "
\n", 1253 | "\n", 1266 | "\n", 1267 | " \n", 1268 | " \n", 1269 | " \n", 1270 | " \n", 1271 | " \n", 1272 | " \n", 1273 | " \n", 1274 | " \n", 1275 | " \n", 1276 | " \n", 1277 | " \n", 1278 | " \n", 1279 | " \n", 1280 | " \n", 1281 | " \n", 1282 | " \n", 1283 | " \n", 1284 | " \n", 1285 | " \n", 1286 | " \n", 1287 | " \n", 1288 | " \n", 1289 | " \n", 1290 | " \n", 1291 | " \n", 1292 | " \n", 1293 | " \n", 1294 | " \n", 1295 | " \n", 1296 | " \n", 1297 | " \n", 1298 | " \n", 1299 | " \n", 1300 | " \n", 1301 | " \n", 1302 | " \n", 1303 | " \n", 1304 | " \n", 1305 | " \n", 1306 | " \n", 1307 | " \n", 1308 | " \n", 1309 | " \n", 1310 | " \n", 1311 | " \n", 1312 | " \n", 1313 | " \n", 1314 | " \n", 1315 | " \n", 1316 | " \n", 1317 | " \n", 1318 | " \n", 1319 | " \n", 1320 | " \n", 1321 | " \n", 1322 | " \n", 1323 | " \n", 1324 | " \n", 1325 | " \n", 1326 | " \n", 1327 | " \n", 1328 | " \n", 1329 | " \n", 1330 | " \n", 1331 | " \n", 1332 | " \n", 1333 | " \n", 1334 | " \n", 1335 | " \n", 1336 | " \n", 1337 | " \n", 1338 | " \n", 1339 | " \n", 1340 | " \n", 1341 | " \n", 1342 | " \n", 1343 | " \n", 1344 | " \n", 1345 | " \n", 1346 | " \n", 1347 | " \n", 1348 | " \n", 1349 | " \n", 1350 | " \n", 1351 | " \n", 1352 | " \n", 1353 | " \n", 1354 | " \n", 1355 | " \n", 1356 | " \n", 1357 | " \n", 1358 | " \n", 1359 | " \n", 1360 | " \n", 1361 | " \n", 1362 | " \n", 1363 | " \n", 1364 | " \n", 1365 | " \n", 1366 | " \n", 1367 | " \n", 1368 | " \n", 1369 | " \n", 1370 | " \n", 1371 | " \n", 1372 | " \n", 1373 | " \n", 1374 | " \n", 1375 | " \n", 1376 | " \n", 1377 | " \n", 1378 | " \n", 1379 | " \n", 1380 | " \n", 1381 | " \n", 1382 | " \n", 1383 | " \n", 1384 | " \n", 1385 | " \n", 1386 | " \n", 1387 | " \n", 1388 | " \n", 1389 | " \n", 1390 | " \n", 1391 | " \n", 1392 | " \n", 1393 | " \n", 1394 | " \n", 1395 | " \n", 1396 | " \n", 1397 | " \n", 1398 | " \n", 1399 | " \n", 1400 | " \n", 1401 | " \n", 1402 | " \n", 1403 | " \n", 1404 | " \n", 1405 | " \n", 1406 | " \n", 1407 | " \n", 1408 | " \n", 1409 | " \n", 1410 | " \n", 1411 | " \n", 1412 | " \n", 1413 | " \n", 1414 | " \n", 1415 | " \n", 1416 | " \n", 1417 | " \n", 1418 | " \n", 1419 | " \n", 1420 | " \n", 1421 | " \n", 1422 | " \n", 1423 | " \n", 1424 | " \n", 1425 | " \n", 1426 | " \n", 1427 | " \n", 1428 | " \n", 1429 | " \n", 1430 | " \n", 1431 | " \n", 1432 | " \n", 1433 | " \n", 1434 | " \n", 1435 | " \n", 1436 | " \n", 1437 | " \n", 1438 | " \n", 1439 | " \n", 1440 | " \n", 1441 | " \n", 1442 | " \n", 1443 | " \n", 1444 | " \n", 1445 | " \n", 1446 | " \n", 1447 | " \n", 1448 | " \n", 1449 | " \n", 1450 | " \n", 1451 | " \n", 1452 | " \n", 1453 | " \n", 1454 | " \n", 1455 | " \n", 1456 | " \n", 1457 | " \n", 1458 | " \n", 1459 | " \n", 1460 | " \n", 1461 | " \n", 1462 | " \n", 1463 | " \n", 1464 | " \n", 1465 | " \n", 1466 | " \n", 1467 | " \n", 1468 | " \n", 1469 | " \n", 1470 | " \n", 1471 | " \n", 1472 | " \n", 1473 | " \n", 1474 | " \n", 1475 | " \n", 1476 | " \n", 1477 | " \n", 1478 | " \n", 1479 | " \n", 1480 | " \n", 1481 | " \n", 1482 | " \n", 1483 | " \n", 1484 | " \n", 1485 | " \n", 1486 | " \n", 1487 | " \n", 1488 | " \n", 1489 | " \n", 1490 | " \n", 1491 | " \n", 1492 | " \n", 1493 | " \n", 1494 | " \n", 1495 | " \n", 1496 | " \n", 1497 | " \n", 1498 | " \n", 1499 | " \n", 1500 | " \n", 1501 | " \n", 1502 | " \n", 1503 | " \n", 1504 | " \n", 1505 | " \n", 1506 | " \n", 1507 | " \n", 1508 | " \n", 1509 | " \n", 1510 | " \n", 1511 | " \n", 1512 | " \n", 1513 | " \n", 1514 | " \n", 1515 | " \n", 1516 | " \n", 1517 | " \n", 1518 | " \n", 1519 | " \n", 1520 | " \n", 1521 | " \n", 1522 | " \n", 1523 | " \n", 1524 | " \n", 1525 | " \n", 1526 | " \n", 1527 | " \n", 1528 | " \n", 1529 | " \n", 1530 | " \n", 1531 | " \n", 1532 | " \n", 1533 | " \n", 1534 | " \n", 1535 | " \n", 1536 | " \n", 1537 | " \n", 1538 | " \n", 1539 | " \n", 1540 | " \n", 1541 | " \n", 1542 | " \n", 1543 | " \n", 1544 | " \n", 1545 | " \n", 1546 | " \n", 1547 | " \n", 1548 | " \n", 1549 | " \n", 1550 | " \n", 1551 | " \n", 1552 | " \n", 1553 | " \n", 1554 | " \n", 1555 | " \n", 1556 | " \n", 1557 | " \n", 1558 | " \n", 1559 | " \n", 1560 | " \n", 1561 | " \n", 1562 | " \n", 1563 | " \n", 1564 | " \n", 1565 | " \n", 1566 | " \n", 1567 | " \n", 1568 | " \n", 1569 | " \n", 1570 | " \n", 1571 | " \n", 1572 | " \n", 1573 | " \n", 1574 | " \n", 1575 | " \n", 1576 | " \n", 1577 | " \n", 1578 | " \n", 1579 | " \n", 1580 | " \n", 1581 | " \n", 1582 | " \n", 1583 | " \n", 1584 | " \n", 1585 | " \n", 1586 | "
PERPER랭킹
회사명
APS홀딩스0.231.0
STX중공업0.372.0
제일파마홀딩스0.393.0
이녹스0.754.0
유비쿼스홀딩스1.045.0
삼강엠앤티1.106.5
오리온홀딩스1.106.5
크라운해태홀딩스1.308.0
STX1.619.0
현대시멘트1.8410.0
동부건설2.0711.0
BGF2.1812.0
평화정공2.4513.0
차이나하오란2.4914.0
서연이화2.5215.0
서연2.5516.0
휠라코리아2.6017.0
현대중공업2.9318.5
삼호2.9318.5
경동인베스트2.9820.0
영보화학3.1721.0
서한3.2222.0
한창제지3.2423.0
미래에셋생명3.2724.0
그랜드백화점3.5625.0
인화정공3.6226.0
성도이엔지3.7027.5
한라3.7027.5
티에이치엔3.8229.0
대원산업3.8430.0
.........
SDN518.601364.0
동운아나텍542.671365.0
한미약품545.631366.0
지와이커머스594.741367.0
영진약품636.871368.0
교보비엔케이스팩639.911369.0
롯데지주651.701370.0
진양화학780.001371.0
삼영엠텍785.571372.0
세기상사841.381373.0
한올바이오파마878.001374.0
이엑스티906.281375.0
아미코젠1051.391376.0
에프티이앤이1080.101377.0
제일약품1111.281378.0
레드로버1126.581379.0
나노메딕스1294.341380.0
한화에이스스팩3호1582.251381.0
엔에이치스팩10호1980.001382.0
CJ CGV2304.041383.0
국일제지2470.351384.0
로보로보2603.131385.0
웨이브일렉트로2767.971386.0
안트로젠3259.531387.0
미래에셋대우스팩1호3283.001388.0
신영스팩3호3369.001389.0
SCI평가정보3662.701390.0
제이에스티나5455.441391.0
셀트리온제약10318.451392.0
코미팜23333.051393.0
\n", 1587 | "

1393 rows × 2 columns

\n", 1588 | "
" 1589 | ], 1590 | "text/plain": [ 1591 | " PER PER랭킹\n", 1592 | "회사명 \n", 1593 | "APS홀딩스 0.23 1.0\n", 1594 | "STX중공업 0.37 2.0\n", 1595 | "제일파마홀딩스 0.39 3.0\n", 1596 | "이녹스 0.75 4.0\n", 1597 | "유비쿼스홀딩스 1.04 5.0\n", 1598 | "삼강엠앤티 1.10 6.5\n", 1599 | "오리온홀딩스 1.10 6.5\n", 1600 | "크라운해태홀딩스 1.30 8.0\n", 1601 | "STX 1.61 9.0\n", 1602 | "현대시멘트 1.84 10.0\n", 1603 | "동부건설 2.07 11.0\n", 1604 | "BGF 2.18 12.0\n", 1605 | "평화정공 2.45 13.0\n", 1606 | "차이나하오란 2.49 14.0\n", 1607 | "서연이화 2.52 15.0\n", 1608 | "서연 2.55 16.0\n", 1609 | "휠라코리아 2.60 17.0\n", 1610 | "현대중공업 2.93 18.5\n", 1611 | "삼호 2.93 18.5\n", 1612 | "경동인베스트 2.98 20.0\n", 1613 | "영보화학 3.17 21.0\n", 1614 | "서한 3.22 22.0\n", 1615 | "한창제지 3.24 23.0\n", 1616 | "미래에셋생명 3.27 24.0\n", 1617 | "그랜드백화점 3.56 25.0\n", 1618 | "인화정공 3.62 26.0\n", 1619 | "성도이엔지 3.70 27.5\n", 1620 | "한라 3.70 27.5\n", 1621 | "티에이치엔 3.82 29.0\n", 1622 | "대원산업 3.84 30.0\n", 1623 | "... ... ...\n", 1624 | "SDN 518.60 1364.0\n", 1625 | "동운아나텍 542.67 1365.0\n", 1626 | "한미약품 545.63 1366.0\n", 1627 | "지와이커머스 594.74 1367.0\n", 1628 | "영진약품 636.87 1368.0\n", 1629 | "교보비엔케이스팩 639.91 1369.0\n", 1630 | "롯데지주 651.70 1370.0\n", 1631 | "진양화학 780.00 1371.0\n", 1632 | "삼영엠텍 785.57 1372.0\n", 1633 | "세기상사 841.38 1373.0\n", 1634 | "한올바이오파마 878.00 1374.0\n", 1635 | "이엑스티 906.28 1375.0\n", 1636 | "아미코젠 1051.39 1376.0\n", 1637 | "에프티이앤이 1080.10 1377.0\n", 1638 | "제일약품 1111.28 1378.0\n", 1639 | "레드로버 1126.58 1379.0\n", 1640 | "나노메딕스 1294.34 1380.0\n", 1641 | "한화에이스스팩3호 1582.25 1381.0\n", 1642 | "엔에이치스팩10호 1980.00 1382.0\n", 1643 | "CJ CGV 2304.04 1383.0\n", 1644 | "국일제지 2470.35 1384.0\n", 1645 | "로보로보 2603.13 1385.0\n", 1646 | "웨이브일렉트로 2767.97 1386.0\n", 1647 | "안트로젠 3259.53 1387.0\n", 1648 | "미래에셋대우스팩1호 3283.00 1388.0\n", 1649 | "신영스팩3호 3369.00 1389.0\n", 1650 | "SCI평가정보 3662.70 1390.0\n", 1651 | "제이에스티나 5455.44 1391.0\n", 1652 | "셀트리온제약 10318.45 1392.0\n", 1653 | "코미팜 23333.05 1393.0\n", 1654 | "\n", 1655 | "[1393 rows x 2 columns]" 1656 | ] 1657 | }, 1658 | "execution_count": 24, 1659 | "metadata": {}, 1660 | "output_type": "execute_result" 1661 | } 1662 | ], 1663 | "source": [ 1664 | "sorted_per" 1665 | ] 1666 | }, 1667 | { 1668 | "cell_type": "code", 1669 | "execution_count": 25, 1670 | "metadata": {}, 1671 | "outputs": [], 1672 | "source": [ 1673 | "# [코드 2.24] ROA데이터 읽어 오기 (Ch2. Pandas를 이용한 데이터 분석.ipynb)\n", 1674 | "\n", 1675 | "roa_data = pd.read_excel(file_path, sheet_name='ROA', index_col=0)" 1676 | ] 1677 | }, 1678 | { 1679 | "cell_type": "code", 1680 | "execution_count": 26, 1681 | "metadata": {}, 1682 | "outputs": [], 1683 | "source": [ 1684 | "# [코드 2.25] NaN값 제거 (Ch2. Pandas를 이용한 데이터 분석.ipynb)\n", 1685 | "\n", 1686 | "filtered_roa = roa_data.dropna()" 1687 | ] 1688 | }, 1689 | { 1690 | "cell_type": "code", 1691 | "execution_count": 27, 1692 | "metadata": {}, 1693 | "outputs": [], 1694 | "source": [ 1695 | "# [코드 2.26] 컬럼명 변경 (Ch2. Pandas를 이용한 데이터 분석.ipynb)\n", 1696 | "\n", 1697 | "filtered_roa.columns = ['ROA']" 1698 | ] 1699 | }, 1700 | { 1701 | "cell_type": "code", 1702 | "execution_count": 28, 1703 | "metadata": {}, 1704 | "outputs": [], 1705 | "source": [ 1706 | "# [코드 2.27] roa데이터프레임 정렬하고 순위 메기기 (Ch2. Pandas를 이용한 데이터 분석.ipynb)\n", 1707 | "\n", 1708 | "sorted_roa = filtered_roa.sort_values(by='ROA', ascending=False)\n", 1709 | "sorted_roa['ROA랭킹'] = sorted_roa.rank(ascending=False)" 1710 | ] 1711 | }, 1712 | { 1713 | "cell_type": "code", 1714 | "execution_count": 29, 1715 | "metadata": {}, 1716 | "outputs": [], 1717 | "source": [ 1718 | "# [코드 2.28] 두 데이터프레임 합치기 (Ch2. Pandas를 이용한 데이터 분석.ipynb)\n", 1719 | "\n", 1720 | "total_df = pd.merge(sorted_per, sorted_roa, how='inner', left_index=True, right_index=True)" 1721 | ] 1722 | }, 1723 | { 1724 | "cell_type": "code", 1725 | "execution_count": 34, 1726 | "metadata": { 1727 | "collapsed": true 1728 | }, 1729 | "outputs": [ 1730 | { 1731 | "data": { 1732 | "text/html": [ 1733 | "
\n", 1734 | "\n", 1747 | "\n", 1748 | " \n", 1749 | " \n", 1750 | " \n", 1751 | " \n", 1752 | " \n", 1753 | " \n", 1754 | " \n", 1755 | " \n", 1756 | " \n", 1757 | " \n", 1758 | " \n", 1759 | " \n", 1760 | " \n", 1761 | " \n", 1762 | " \n", 1763 | " \n", 1764 | " \n", 1765 | " \n", 1766 | " \n", 1767 | " \n", 1768 | " \n", 1769 | " \n", 1770 | " \n", 1771 | " \n", 1772 | " \n", 1773 | " \n", 1774 | " \n", 1775 | " \n", 1776 | " \n", 1777 | " \n", 1778 | " \n", 1779 | " \n", 1780 | " \n", 1781 | " \n", 1782 | " \n", 1783 | " \n", 1784 | " \n", 1785 | " \n", 1786 | " \n", 1787 | " \n", 1788 | " \n", 1789 | " \n", 1790 | " \n", 1791 | " \n", 1792 | " \n", 1793 | " \n", 1794 | " \n", 1795 | " \n", 1796 | " \n", 1797 | " \n", 1798 | " \n", 1799 | " \n", 1800 | " \n", 1801 | " \n", 1802 | " \n", 1803 | " \n", 1804 | " \n", 1805 | " \n", 1806 | " \n", 1807 | " \n", 1808 | " \n", 1809 | " \n", 1810 | " \n", 1811 | " \n", 1812 | " \n", 1813 | " \n", 1814 | " \n", 1815 | " \n", 1816 | " \n", 1817 | " \n", 1818 | " \n", 1819 | " \n", 1820 | " \n", 1821 | " \n", 1822 | " \n", 1823 | " \n", 1824 | " \n", 1825 | " \n", 1826 | " \n", 1827 | " \n", 1828 | " \n", 1829 | " \n", 1830 | " \n", 1831 | " \n", 1832 | " \n", 1833 | " \n", 1834 | " \n", 1835 | " \n", 1836 | " \n", 1837 | " \n", 1838 | " \n", 1839 | " \n", 1840 | " \n", 1841 | " \n", 1842 | " \n", 1843 | " \n", 1844 | " \n", 1845 | " \n", 1846 | " \n", 1847 | " \n", 1848 | " \n", 1849 | " \n", 1850 | " \n", 1851 | " \n", 1852 | " \n", 1853 | " \n", 1854 | " \n", 1855 | " \n", 1856 | " \n", 1857 | " \n", 1858 | " \n", 1859 | " \n", 1860 | " \n", 1861 | " \n", 1862 | " \n", 1863 | " \n", 1864 | " \n", 1865 | " \n", 1866 | " \n", 1867 | " \n", 1868 | " \n", 1869 | " \n", 1870 | " \n", 1871 | " \n", 1872 | " \n", 1873 | " \n", 1874 | " \n", 1875 | " \n", 1876 | " \n", 1877 | " \n", 1878 | " \n", 1879 | " \n", 1880 | " \n", 1881 | " \n", 1882 | " \n", 1883 | " \n", 1884 | " \n", 1885 | " \n", 1886 | " \n", 1887 | " \n", 1888 | " \n", 1889 | " \n", 1890 | " \n", 1891 | " \n", 1892 | " \n", 1893 | " \n", 1894 | " \n", 1895 | " \n", 1896 | " \n", 1897 | " \n", 1898 | " \n", 1899 | " \n", 1900 | " \n", 1901 | " \n", 1902 | " \n", 1903 | " \n", 1904 | " \n", 1905 | " \n", 1906 | " \n", 1907 | " \n", 1908 | " \n", 1909 | " \n", 1910 | " \n", 1911 | " \n", 1912 | " \n", 1913 | " \n", 1914 | " \n", 1915 | " \n", 1916 | " \n", 1917 | " \n", 1918 | " \n", 1919 | " \n", 1920 | " \n", 1921 | " \n", 1922 | " \n", 1923 | " \n", 1924 | " \n", 1925 | " \n", 1926 | " \n", 1927 | " \n", 1928 | " \n", 1929 | " \n", 1930 | " \n", 1931 | " \n", 1932 | " \n", 1933 | " \n", 1934 | " \n", 1935 | " \n", 1936 | " \n", 1937 | " \n", 1938 | " \n", 1939 | " \n", 1940 | " \n", 1941 | " \n", 1942 | " \n", 1943 | " \n", 1944 | " \n", 1945 | " \n", 1946 | " \n", 1947 | " \n", 1948 | " \n", 1949 | " \n", 1950 | " \n", 1951 | " \n", 1952 | " \n", 1953 | " \n", 1954 | " \n", 1955 | " \n", 1956 | " \n", 1957 | " \n", 1958 | " \n", 1959 | " \n", 1960 | " \n", 1961 | " \n", 1962 | " \n", 1963 | " \n", 1964 | " \n", 1965 | " \n", 1966 | " \n", 1967 | " \n", 1968 | " \n", 1969 | " \n", 1970 | " \n", 1971 | " \n", 1972 | " \n", 1973 | " \n", 1974 | " \n", 1975 | " \n", 1976 | " \n", 1977 | " \n", 1978 | " \n", 1979 | " \n", 1980 | " \n", 1981 | " \n", 1982 | " \n", 1983 | " \n", 1984 | " \n", 1985 | " \n", 1986 | " \n", 1987 | " \n", 1988 | " \n", 1989 | " \n", 1990 | " \n", 1991 | " \n", 1992 | " \n", 1993 | " \n", 1994 | " \n", 1995 | " \n", 1996 | " \n", 1997 | " \n", 1998 | " \n", 1999 | " \n", 2000 | " \n", 2001 | " \n", 2002 | " \n", 2003 | " \n", 2004 | " \n", 2005 | " \n", 2006 | " \n", 2007 | " \n", 2008 | " \n", 2009 | " \n", 2010 | " \n", 2011 | " \n", 2012 | " \n", 2013 | " \n", 2014 | " \n", 2015 | " \n", 2016 | " \n", 2017 | " \n", 2018 | " \n", 2019 | " \n", 2020 | " \n", 2021 | " \n", 2022 | " \n", 2023 | " \n", 2024 | " \n", 2025 | " \n", 2026 | " \n", 2027 | " \n", 2028 | " \n", 2029 | " \n", 2030 | " \n", 2031 | " \n", 2032 | " \n", 2033 | " \n", 2034 | " \n", 2035 | " \n", 2036 | " \n", 2037 | " \n", 2038 | " \n", 2039 | " \n", 2040 | " \n", 2041 | " \n", 2042 | " \n", 2043 | " \n", 2044 | " \n", 2045 | " \n", 2046 | " \n", 2047 | " \n", 2048 | " \n", 2049 | " \n", 2050 | " \n", 2051 | " \n", 2052 | " \n", 2053 | " \n", 2054 | " \n", 2055 | " \n", 2056 | " \n", 2057 | " \n", 2058 | " \n", 2059 | " \n", 2060 | " \n", 2061 | " \n", 2062 | " \n", 2063 | " \n", 2064 | " \n", 2065 | " \n", 2066 | " \n", 2067 | " \n", 2068 | " \n", 2069 | " \n", 2070 | " \n", 2071 | " \n", 2072 | " \n", 2073 | " \n", 2074 | " \n", 2075 | " \n", 2076 | " \n", 2077 | " \n", 2078 | " \n", 2079 | " \n", 2080 | " \n", 2081 | " \n", 2082 | " \n", 2083 | " \n", 2084 | " \n", 2085 | " \n", 2086 | " \n", 2087 | " \n", 2088 | " \n", 2089 | " \n", 2090 | " \n", 2091 | " \n", 2092 | " \n", 2093 | " \n", 2094 | " \n", 2095 | " \n", 2096 | " \n", 2097 | " \n", 2098 | " \n", 2099 | " \n", 2100 | " \n", 2101 | " \n", 2102 | " \n", 2103 | " \n", 2104 | " \n", 2105 | " \n", 2106 | " \n", 2107 | " \n", 2108 | " \n", 2109 | " \n", 2110 | " \n", 2111 | " \n", 2112 | " \n", 2113 | " \n", 2114 | " \n", 2115 | " \n", 2116 | " \n", 2117 | " \n", 2118 | " \n", 2119 | " \n", 2120 | " \n", 2121 | " \n", 2122 | " \n", 2123 | " \n", 2124 | " \n", 2125 | " \n", 2126 | " \n", 2127 | " \n", 2128 | " \n", 2129 | " \n", 2130 | " \n", 2131 | " \n", 2132 | " \n", 2133 | " \n", 2134 | " \n", 2135 | " \n", 2136 | " \n", 2137 | " \n", 2138 | " \n", 2139 | " \n", 2140 | " \n", 2141 | " \n", 2142 | " \n", 2143 | " \n", 2144 | " \n", 2145 | " \n", 2146 | " \n", 2147 | " \n", 2148 | " \n", 2149 | " \n", 2150 | " \n", 2151 | " \n", 2152 | " \n", 2153 | " \n", 2154 | " \n", 2155 | " \n", 2156 | " \n", 2157 | " \n", 2158 | " \n", 2159 | " \n", 2160 | " \n", 2161 | " \n", 2162 | " \n", 2163 | " \n", 2164 | " \n", 2165 | " \n", 2166 | " \n", 2167 | " \n", 2168 | " \n", 2169 | " \n", 2170 | " \n", 2171 | " \n", 2172 | " \n", 2173 | " \n", 2174 | " \n", 2175 | " \n", 2176 | " \n", 2177 | " \n", 2178 | " \n", 2179 | " \n", 2180 | " \n", 2181 | " \n", 2182 | " \n", 2183 | " \n", 2184 | " \n", 2185 | " \n", 2186 | " \n", 2187 | " \n", 2188 | " \n", 2189 | " \n", 2190 | " \n", 2191 | " \n", 2192 | " \n", 2193 | " \n", 2194 | " \n", 2195 | " \n", 2196 | " \n", 2197 | " \n", 2198 | " \n", 2199 | " \n", 2200 | " \n", 2201 | " \n", 2202 | " \n", 2203 | " \n", 2204 | " \n", 2205 | " \n", 2206 | " \n", 2207 | " \n", 2208 | " \n", 2209 | " \n", 2210 | " \n", 2211 | " \n", 2212 | " \n", 2213 | " \n", 2214 | " \n", 2215 | " \n", 2216 | " \n", 2217 | " \n", 2218 | " \n", 2219 | " \n", 2220 | " \n", 2221 | " \n", 2222 | " \n", 2223 | " \n", 2224 | " \n", 2225 | " \n", 2226 | " \n", 2227 | " \n", 2228 | " \n", 2229 | " \n", 2230 | " \n", 2231 | " \n", 2232 | " \n", 2233 | " \n", 2234 | " \n", 2235 | " \n", 2236 | " \n", 2237 | " \n", 2238 | " \n", 2239 | " \n", 2240 | " \n", 2241 | " \n", 2242 | " \n", 2243 | " \n", 2244 | " \n", 2245 | " \n", 2246 | " \n", 2247 | " \n", 2248 | " \n", 2249 | " \n", 2250 | " \n", 2251 | " \n", 2252 | " \n", 2253 | " \n", 2254 | " \n", 2255 | " \n", 2256 | "
PERPER랭킹ROAROA랭킹종합랭크
회사명
서한3.2222.023.6525.01.0
골프존4.1938.024.7721.02.0
동원개발4.4142.023.6226.03.0
오가닉티코스메틱5.1166.544.063.04.0
모베이스4.4945.020.0352.05.0
테라세미콘6.07104.031.987.06.0
제이스텍3.8832.017.0585.57.0
삼목에스폼4.9858.018.9864.08.0
영우디에스피6.22114.028.3810.09.0
HB테크놀러지6.45123.530.609.010.0
로스웰6.10108.021.9933.011.0
한국자산신탁6.58133.022.0931.012.0
크리스탈신소재5.6788.017.6077.513.0
롯데케미칼5.9399.518.1970.014.0
한국토지신탁5.2473.015.81101.015.0
서호전기6.26116.018.5966.016.0
대원산업3.8430.013.46158.017.0
아이에스동서5.0763.014.65128.018.0
에스에이엠티4.5548.013.84150.019.0
대양금속4.4844.013.31163.020.0
차이나하오란2.4914.011.75202.021.0
완리4.8653.013.26165.022.0
DMS5.8295.514.34135.023.0
삼호2.9318.511.46215.524.0
삼양통상5.0161.012.34184.025.5
슈피겐코리아7.07165.017.4980.025.5
현대통신7.14169.517.2982.027.0
화성산업4.3539.011.43220.028.0
한창제지3.2423.010.94241.029.0
넥센4.6149.011.46215.530.0
..................
백금T&A69.681209.0-4.871685.01222.0
코센172.551318.0-2.651577.51223.0
국일제지2470.351384.0-1.411514.01224.0
이지웰페어275.881340.0-2.301562.01225.0
대우조선해양111.061272.0-3.481630.51226.0
대한광통신61.801198.0-5.761707.01227.0
동성제약221.141332.0-2.701580.51228.0
일신석재80.891231.0-4.941688.01229.0
세기상사841.381373.0-2.211559.01230.0
엑셈72.651213.0-6.141719.51231.0
녹십자엠에스216.781331.0-3.131608.01232.0
필링크58.451189.0-7.921757.01233.0
인콘113.251275.0-4.791678.51234.0
넥스트아이186.491325.0-3.551635.51235.0
젬백스98.181255.0-6.551729.01236.0
태평양물산43.501117.0-19.111883.01237.0
한올바이오파마878.001374.0-3.481630.51238.0
제룡전기76.241220.0-11.151815.01239.0
파크시스템스53.181167.0-16.191875.01240.0
아미코젠1051.391376.0-4.591667.01241.0
동운아나텍542.671365.0-5.331695.01242.0
TBH글로벌150.761307.0-7.641754.01243.0
유수홀딩스146.571301.0-8.321770.01244.0
아이크래프트145.101300.0-9.051780.01245.0
에이치엘비생명과학131.341292.0-9.741793.01246.0
SCI평가정보3662.701390.0-6.801734.01247.0
덕양산업424.931358.0-8.461773.01248.0
디비케이119.681281.0-14.231863.01249.0
이루온197.501328.0-13.281847.01250.0
감마누395.361355.0-22.411893.01251.0
\n", 2257 | "

1251 rows × 5 columns

\n", 2258 | "
" 2259 | ], 2260 | "text/plain": [ 2261 | " PER PER랭킹 ROA ROA랭킹 종합랭크\n", 2262 | "회사명 \n", 2263 | "서한 3.22 22.0 23.65 25.0 1.0\n", 2264 | "골프존 4.19 38.0 24.77 21.0 2.0\n", 2265 | "동원개발 4.41 42.0 23.62 26.0 3.0\n", 2266 | "오가닉티코스메틱 5.11 66.5 44.06 3.0 4.0\n", 2267 | "모베이스 4.49 45.0 20.03 52.0 5.0\n", 2268 | "테라세미콘 6.07 104.0 31.98 7.0 6.0\n", 2269 | "제이스텍 3.88 32.0 17.05 85.5 7.0\n", 2270 | "삼목에스폼 4.98 58.0 18.98 64.0 8.0\n", 2271 | "영우디에스피 6.22 114.0 28.38 10.0 9.0\n", 2272 | "HB테크놀러지 6.45 123.5 30.60 9.0 10.0\n", 2273 | "로스웰 6.10 108.0 21.99 33.0 11.0\n", 2274 | "한국자산신탁 6.58 133.0 22.09 31.0 12.0\n", 2275 | "크리스탈신소재 5.67 88.0 17.60 77.5 13.0\n", 2276 | "롯데케미칼 5.93 99.5 18.19 70.0 14.0\n", 2277 | "한국토지신탁 5.24 73.0 15.81 101.0 15.0\n", 2278 | "서호전기 6.26 116.0 18.59 66.0 16.0\n", 2279 | "대원산업 3.84 30.0 13.46 158.0 17.0\n", 2280 | "아이에스동서 5.07 63.0 14.65 128.0 18.0\n", 2281 | "에스에이엠티 4.55 48.0 13.84 150.0 19.0\n", 2282 | "대양금속 4.48 44.0 13.31 163.0 20.0\n", 2283 | "차이나하오란 2.49 14.0 11.75 202.0 21.0\n", 2284 | "완리 4.86 53.0 13.26 165.0 22.0\n", 2285 | "DMS 5.82 95.5 14.34 135.0 23.0\n", 2286 | "삼호 2.93 18.5 11.46 215.5 24.0\n", 2287 | "삼양통상 5.01 61.0 12.34 184.0 25.5\n", 2288 | "슈피겐코리아 7.07 165.0 17.49 80.0 25.5\n", 2289 | "현대통신 7.14 169.5 17.29 82.0 27.0\n", 2290 | "화성산업 4.35 39.0 11.43 220.0 28.0\n", 2291 | "한창제지 3.24 23.0 10.94 241.0 29.0\n", 2292 | "넥센 4.61 49.0 11.46 215.5 30.0\n", 2293 | "... ... ... ... ... ...\n", 2294 | "백금T&A 69.68 1209.0 -4.87 1685.0 1222.0\n", 2295 | "코센 172.55 1318.0 -2.65 1577.5 1223.0\n", 2296 | "국일제지 2470.35 1384.0 -1.41 1514.0 1224.0\n", 2297 | "이지웰페어 275.88 1340.0 -2.30 1562.0 1225.0\n", 2298 | "대우조선해양 111.06 1272.0 -3.48 1630.5 1226.0\n", 2299 | "대한광통신 61.80 1198.0 -5.76 1707.0 1227.0\n", 2300 | "동성제약 221.14 1332.0 -2.70 1580.5 1228.0\n", 2301 | "일신석재 80.89 1231.0 -4.94 1688.0 1229.0\n", 2302 | "세기상사 841.38 1373.0 -2.21 1559.0 1230.0\n", 2303 | "엑셈 72.65 1213.0 -6.14 1719.5 1231.0\n", 2304 | "녹십자엠에스 216.78 1331.0 -3.13 1608.0 1232.0\n", 2305 | "필링크 58.45 1189.0 -7.92 1757.0 1233.0\n", 2306 | "인콘 113.25 1275.0 -4.79 1678.5 1234.0\n", 2307 | "넥스트아이 186.49 1325.0 -3.55 1635.5 1235.0\n", 2308 | "젬백스 98.18 1255.0 -6.55 1729.0 1236.0\n", 2309 | "태평양물산 43.50 1117.0 -19.11 1883.0 1237.0\n", 2310 | "한올바이오파마 878.00 1374.0 -3.48 1630.5 1238.0\n", 2311 | "제룡전기 76.24 1220.0 -11.15 1815.0 1239.0\n", 2312 | "파크시스템스 53.18 1167.0 -16.19 1875.0 1240.0\n", 2313 | "아미코젠 1051.39 1376.0 -4.59 1667.0 1241.0\n", 2314 | "동운아나텍 542.67 1365.0 -5.33 1695.0 1242.0\n", 2315 | "TBH글로벌 150.76 1307.0 -7.64 1754.0 1243.0\n", 2316 | "유수홀딩스 146.57 1301.0 -8.32 1770.0 1244.0\n", 2317 | "아이크래프트 145.10 1300.0 -9.05 1780.0 1245.0\n", 2318 | "에이치엘비생명과학 131.34 1292.0 -9.74 1793.0 1246.0\n", 2319 | "SCI평가정보 3662.70 1390.0 -6.80 1734.0 1247.0\n", 2320 | "덕양산업 424.93 1358.0 -8.46 1773.0 1248.0\n", 2321 | "디비케이 119.68 1281.0 -14.23 1863.0 1249.0\n", 2322 | "이루온 197.50 1328.0 -13.28 1847.0 1250.0\n", 2323 | "감마누 395.36 1355.0 -22.41 1893.0 1251.0\n", 2324 | "\n", 2325 | "[1251 rows x 5 columns]" 2326 | ] 2327 | }, 2328 | "execution_count": 34, 2329 | "metadata": {}, 2330 | "output_type": "execute_result" 2331 | } 2332 | ], 2333 | "source": [ 2334 | "# [코드 2.29] 두 랭킹의 합 계산하고 정렬 (Ch2. Pandas를 이용한 데이터 분석.ipynb)\n", 2335 | "\n", 2336 | "total_df['종합랭크'] = (total_df['PER랭킹'] + total_df['ROA랭킹']).rank()\n", 2337 | "total_df.sort_values(by='종합랭크')" 2338 | ] 2339 | }, 2340 | { 2341 | "cell_type": "code", 2342 | "execution_count": 1, 2343 | "metadata": {}, 2344 | "outputs": [], 2345 | "source": [ 2346 | "# [코드 2.30] 팬다스로 구현한 마법공식 함수 (Ch2. Pandas를 이용한 데이터 분석.ipynb)\n", 2347 | "\n", 2348 | "def magic_by_pd(path):\n", 2349 | " per_data = pd.read_excel(path, sheet_name='PER', index_col=0)\n", 2350 | " filtered_per = per_data[per_data['PER'] > 0]\n", 2351 | " sorted_per = filtered_per.sort_values(by='PER')\n", 2352 | " sorted_per['PER랭킹'] = sorted_per['PER'].rank()\n", 2353 | "\n", 2354 | " roa_data = pd.read_excel(path, sheet_name='ROA', index_col=0)\n", 2355 | " filtered_roa = roa_data.dropna()\n", 2356 | " filtered_roa.columns = ['ROA']\n", 2357 | " sorted_roa = filtered_roa.sort_values(by='ROA', ascending=False)\n", 2358 | " sorted_roa['ROA랭킹'] = sorted_roa.rank(ascending=False)\n", 2359 | "\n", 2360 | " total_df = pd.merge(sorted_per, sorted_roa, how='inner', left_index=True, right_index=True)\n", 2361 | "\n", 2362 | " total_df['종합랭크'] = (total_df['PER랭킹'] + total_df['ROA랭킹']).rank()\n", 2363 | " return total_df.sort_values(by='종합랭크')" 2364 | ] 2365 | }, 2366 | { 2367 | "cell_type": "code", 2368 | "execution_count": null, 2369 | "metadata": {}, 2370 | "outputs": [], 2371 | "source": [] 2372 | } 2373 | ], 2374 | "metadata": { 2375 | "kernelspec": { 2376 | "display_name": "Python 3", 2377 | "language": "python", 2378 | "name": "python3" 2379 | }, 2380 | "language_info": { 2381 | "codemirror_mode": { 2382 | "name": "ipython", 2383 | "version": 3 2384 | }, 2385 | "file_extension": ".py", 2386 | "mimetype": "text/x-python", 2387 | "name": "python", 2388 | "nbconvert_exporter": "python", 2389 | "pygments_lexer": "ipython3", 2390 | "version": "3.6.4" 2391 | } 2392 | }, 2393 | "nbformat": 4, 2394 | "nbformat_minor": 2 2395 | } 2396 | -------------------------------------------------------------------------------- /python_quant.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | import pandas as pd 3 | import numpy as np 4 | 5 | 6 | 7 | # 재무 관련 데이터 전처리하는 함수 8 | def get_finance_data(path): 9 | data_path = path 10 | raw_data = pd.read_excel(data_path) 11 | big_col = list(raw_data.columns) 12 | small_col = list(raw_data.iloc[0]) 13 | 14 | new_big_col = [] 15 | for num, col in enumerate(big_col): 16 | if 'Unnamed' in col: 17 | new_big_col.append(new_big_col[num-1]) 18 | else: 19 | new_big_col.append(big_col[num]) 20 | 21 | raw_data.columns = [new_big_col, small_col] 22 | clean_df = raw_data.loc[ raw_data.index.dropna() ] 23 | 24 | return clean_df 25 | 26 | # N/A(IFRS)'를 NaN으로 바꾸기 27 | def check_IFRS(x): 28 | if x == 'N/A(IFRS)': 29 | return np.NaN 30 | else: 31 | return x 32 | 33 | # PER기준으로 오름차순으로 정렬하여 주는 함수 34 | def low_per(invest_df, index_date, num): 35 | invest_df[(index_date, 'PER')] = pd.to_numeric(invest_df[(index_date, 'PER')]) 36 | per_sorted = invest_df.sort_values(by=(index_date, 'PER')) 37 | return per_sorted[index_date][:num] 38 | 39 | 40 | # ROA기준으로 내림차순으로 정렬하여 주는 함수 41 | def high_roa(fr_df, index_date, num): 42 | fr_df[(index_date, 'ROA')] = fr_df[(index_date, 'ROA')].apply(check_IFRS) 43 | fr_df[(index_date, 'ROA')] = pd.to_numeric(fr_df[(index_date, 'ROA')] ) 44 | sorted_roa = fr_df.sort_values(by=(index_date, 'ROA'), ascending=False) 45 | return sorted_roa[index_date][:num] 46 | 47 | # 마법공식 48 | def magic_formula(fr_df, invest_df, index_date, num): 49 | per = low_per(invest_df, index_date, None) 50 | roa = high_roa(fr_df, index_date, None) 51 | per['per순위'] = per['PER'].rank() 52 | roa['roa순위'] = roa['ROA'].rank(ascending=False) 53 | magic = pd.merge(per, roa, how='outer', left_index=True, right_index=True) 54 | magic['마법공식 순위'] = (magic['per순위'] + magic['roa순위']).rank().sort_values() 55 | magic = magic.sort_values(by='마법공식 순위') 56 | return magic[:num] 57 | 58 | # 저평가 지수를 기준으로 정렬하여 순위 만들어 주는 함수 59 | def get_value_rank(invest_df, value_type, index_date, num): 60 | invest_df[(index_date, value_type)] = pd.to_numeric(invest_df[(index_date, value_type)]) 61 | value_sorted = invest_df.sort_values(by=(index_date, value_type))[index_date] 62 | value_sorted[ value_type + '순위'] = value_sorted[value_type].rank() 63 | return value_sorted[[value_type, value_type + '순위']][:num] 64 | 65 | # 저평가 지표 조합 함수 66 | def make_value_combo(value_list, invest_df, index_date, num): 67 | 68 | for i, value in enumerate(value_list): 69 | temp_df = get_value_rank(invest_df, value, index_date, None) 70 | if i == 0: 71 | value_combo_df = temp_df 72 | rank_combo = temp_df[value + '순위'] 73 | else: 74 | value_combo_df = pd.merge(value_combo_df, temp_df, how='outer', left_index=True, right_index=True) 75 | rank_combo = rank_combo + temp_df[value + '순위'] 76 | 77 | value_combo_df['종합순위'] = rank_combo.rank() 78 | value_combo_df = value_combo_df.sort_values(by='종합순위') 79 | 80 | return value_combo_df[:num] 81 | 82 | # F-score 83 | def get_fscore(fs_df, index_date, num): 84 | fscore_df = fs_df[index_date] 85 | fscore_df['당기순이익점수'] = fscore_df['당기순이익'] > 0 86 | fscore_df['영업활동점수'] = fscore_df['영업활동으로인한현금흐름'] > 0 87 | fscore_df['더큰영업활동점수'] = fscore_df['영업활동으로인한현금흐름'] > fscore_df['당기순이익'] 88 | fscore_df['종합점수'] = fscore_df[['당기순이익점수', '영업활동점수', '더큰영업활동점수']].sum(axis=1) 89 | fscore_df = fscore_df[fscore_df['종합점수'] == 3] 90 | return fscore_df[:num] 91 | 92 | # 모멘텀 함수 93 | def get_momentum_rank(price_df, index_date, date_range, num): 94 | momentum_df = pd.DataFrame(price_df.pct_change(date_range).loc[index_date]) 95 | momentum_df.columns = ['모멘텀'] 96 | momentum_df['모멘텀순위'] = momentum_df['모멘텀'].rank(ascending=False) 97 | momentum_df = momentum_df.sort_values(by='모멘텀순위') 98 | return momentum_df[:num] 99 | 100 | # 저평가 + F-score 101 | def get_value_quality(invest_df, fs_df, index_date, num): 102 | value = make_value_combo(['PER', 'PBR', 'PSR', 'PCR'], invest_df, index_date, None) 103 | quality = get_fscore(fs_df, index_date, None) 104 | value_quality = pd.merge(value, quality, how='outer', left_index=True, right_index=True) 105 | value_quality_filtered = value_quality[value_quality['종합점수'] == 3] 106 | vq_df = value_quality_filtered.sort_values(by='종합순위') 107 | return vq_df[:num] -------------------------------------------------------------------------------- /엑셀 데이터.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bjpublic/quantpython/075636ae7a78b751259a0f825397b9c666e271cd/엑셀 데이터.zip --------------------------------------------------------------------------------