{"nbformat":4,"nbformat_minor":0,"metadata":{"colab":{"name":"FinanceDataReader Tutorial - 섹터 평균 수익률과 개별 종목의 수익률.ipynb","provenance":[],"collapsed_sections":[],"authorship_tag":"ABX9TyNiwJZpMASL2OWKs/WkY+6o"},"kernelspec":{"name":"python3","display_name":"Python 3"}},"cells":[{"cell_type":"markdown","metadata":{"id":"frdXxoM3W4X6","colab_type":"text"},"source":["# FinanceDataReader Tutorial\n","## 섹터 평균 수익률과 개별 종목의 수익률 구하기\n","\n","
\n","https://github.com/FinanceData/FinanceDataReader\n","\n","\n","#### 2018-2020 [FinanceData.KR](http://financedata.kr) | [facebook.com/financedata](http://facebook.com/financedata)\n"]},{"cell_type":"markdown","metadata":{"id":"JMGbcof3_7lO","colab_type":"text"},"source":["## 요약\n","* KRX 전체종목과 섹터정보를 가져옵니다\n","* groupby()를 활용하여 섹터별로 묶어 냅니다\n","* groupby()에 간단한 통계함수를 적용하여 count, sum, mean 등을 구할 수 있습니다\n","* 섹터 개별 종목들의 데이터를 수집하고 종가(Close)를 취합 합니다\n","* 섹터종목의 들의 개별 수익률과 섹터 전체의 평균 수익률을 계산합니다\n","* 기간을 지정하여(timedelta 활용) 다양한 기간의 수익률을 계산합니다\n","* 데이터프레임 스타일을 적용하여 주요 셀을 강조합니다\n","* 스타일을 적용한 데이터프레임을 엑셀로 저장합니다\n"]},{"cell_type":"markdown","metadata":{"id":"LQFeRRbg1CQF","colab_type":"text"},"source":["## FinanceDataReader 설치"]},{"cell_type":"code","metadata":{"id":"-twIB1K80-sT","colab_type":"code","colab":{}},"source":["!pip -q install finance-datareader"],"execution_count":0,"outputs":[]},{"cell_type":"markdown","metadata":{"id":"yFaaeYc_EJ_t","colab_type":"text"},"source":["## 한국거래소(KRX)의 전체 종목 가져오기"]},{"cell_type":"code","metadata":{"id":"xXfaq9APEJ50","colab_type":"code","colab":{"base_uri":"https://localhost:8080/","height":419},"outputId":"cef55747-c0fe-45cc-a252-128dc19b19f4","executionInfo":{"status":"ok","timestamp":1582472674248,"user_tz":-540,"elapsed":8425,"user":{"displayName":"Sean-June Lee","photoUrl":"https://lh3.googleusercontent.com/a-/AAuE7mA0z_4qCQ4H5MJ8ixUx69EmwIvNuV7BfS9FRIdfmCM=s64","userId":"12576390002043678893"}}},"source":["import FinanceDataReader as fdr\n","\n","krx = fdr.StockListing('KRX')\n","krx"],"execution_count":25,"outputs":[{"output_type":"execute_result","data":{"text/html":["
\n","\n","
\n"," \n"," \n"," | \n"," Symbol | \n"," Name | \n"," Sector | \n"," Industry | \n","
\n"," \n"," \n"," \n"," 0 | \n"," 155660 | \n"," DSR | \n"," 1차 비철금속 제조업 | \n"," 합섬섬유로프 | \n","
\n"," \n"," 1 | \n"," 001250 | \n"," GS글로벌 | \n"," 상품 종합 도매업 | \n"," 수출입업(시멘트,철강금속,전기전자,섬유,기계화학),상품중개,광업,채석업/하수처리 서... | \n","
\n"," \n"," 2 | \n"," 082740 | \n"," HSD엔진 | \n"," 일반 목적용 기계 제조업 | \n"," 대형선박용엔진,내연발전엔진 | \n","
\n"," \n"," 3 | \n"," 011070 | \n"," LG이노텍 | \n"," 전자부품 제조업 | \n"," 기타 전자부품 제조업 | \n","
\n"," \n"," 4 | \n"," 010120 | \n"," LS산전 | \n"," 전동기, 발전기 및 전기 변환 · 공급 · 제어 장치 제조업 | \n"," 고압기기,저압기기,변압기,배전반,PLC,인버터,빌딩설비,공조기,건축배관,자동화기기 ... | \n","
\n"," \n"," ... | \n"," ... | \n"," ... | \n"," ... | \n"," ... | \n","
\n"," \n"," 2350 | \n"," 234070 | \n"," 에이원알폼 | \n"," 산업용 기계 및 장비 임대업 | \n"," 건설현장용 알루미늄 거푸집 임대 | \n","
\n"," \n"," 2351 | \n"," 278380 | \n"," 원바이오젠 | \n"," 의료용품 및 기타 의약 관련제품 제조업 | \n"," 의료기기(창상피복재) | \n","
\n"," \n"," 2352 | \n"," 299480 | \n"," 지앤이헬스케어 | \n"," 기타 섬유제품 제조업 | \n"," 면생리대 | \n","
\n"," \n"," 2353 | \n"," 189350 | \n"," 코셋 | \n"," 통신 및 방송 장비 제조업 | \n"," 광통신용 증폭기 | \n","
\n"," \n"," 2354 | \n"," 331660 | \n"," 한국미라클피플사 | \n"," 기타 화학제품 제조업 | \n"," 은나노스텝, 닥터오렌지 등 | \n","
\n"," \n","
\n","
2355 rows × 4 columns
\n","
"],"text/plain":[" Symbol ... Industry\n","0 155660 ... 합섬섬유로프\n","1 001250 ... 수출입업(시멘트,철강금속,전기전자,섬유,기계화학),상품중개,광업,채석업/하수처리 서...\n","2 082740 ... 대형선박용엔진,내연발전엔진\n","3 011070 ... 기타 전자부품 제조업\n","4 010120 ... 고압기기,저압기기,변압기,배전반,PLC,인버터,빌딩설비,공조기,건축배관,자동화기기 ...\n","... ... ... ...\n","2350 234070 ... 건설현장용 알루미늄 거푸집 임대\n","2351 278380 ... 의료기기(창상피복재)\n","2352 299480 ... 면생리대\n","2353 189350 ... 광통신용 증폭기\n","2354 331660 ... 은나노스텝, 닥터오렌지 등\n","\n","[2355 rows x 4 columns]"]},"metadata":{"tags":[]},"execution_count":25}]},{"cell_type":"markdown","metadata":{"id":"2FQiJBqVGJ_D","colab_type":"text"},"source":["`groupby('컬럼명')`을 사용하여 컬럼명을 기준으로 묶어 줄 수 있습니다."]},{"cell_type":"code","metadata":{"id":"ioH3b54dFtHC","colab_type":"code","colab":{"base_uri":"https://localhost:8080/","height":35},"outputId":"572ea52e-b34c-4de5-c9dd-15200c2dcd93","executionInfo":{"status":"ok","timestamp":1582472674248,"user_tz":-540,"elapsed":8420,"user":{"displayName":"Sean-June Lee","photoUrl":"https://lh3.googleusercontent.com/a-/AAuE7mA0z_4qCQ4H5MJ8ixUx69EmwIvNuV7BfS9FRIdfmCM=s64","userId":"12576390002043678893"}}},"source":["krx.groupby('Sector')"],"execution_count":26,"outputs":[{"output_type":"execute_result","data":{"text/plain":[""]},"metadata":{"tags":[]},"execution_count":26}]},{"cell_type":"markdown","metadata":{"id":"k9jT9hfBGfeh","colab_type":"text"},"source":["groupby 결과에 통계함수(count, mean, sum 등)을 적용해주면 묶은 그룹별 통계량을 산출할 수 있습니다."]},{"cell_type":"code","metadata":{"id":"7T1gfrrZGMwQ","colab_type":"code","colab":{"base_uri":"https://localhost:8080/","height":450},"outputId":"558e7ee2-0793-43d1-988a-18358d8862c6","executionInfo":{"status":"ok","timestamp":1582472674249,"user_tz":-540,"elapsed":8416,"user":{"displayName":"Sean-June Lee","photoUrl":"https://lh3.googleusercontent.com/a-/AAuE7mA0z_4qCQ4H5MJ8ixUx69EmwIvNuV7BfS9FRIdfmCM=s64","userId":"12576390002043678893"}}},"source":["krx.groupby('Sector').count()"],"execution_count":27,"outputs":[{"output_type":"execute_result","data":{"text/html":["\n","\n","
\n"," \n"," \n"," | \n"," Symbol | \n"," Name | \n"," Industry | \n","
\n"," \n"," Sector | \n"," | \n"," | \n"," | \n","
\n"," \n"," \n"," \n"," 1차 비철금속 제조업 | \n"," 19 | \n"," 19 | \n"," 18 | \n","
\n"," \n"," 1차 철강 제조업 | \n"," 57 | \n"," 57 | \n"," 57 | \n","
\n"," \n"," 가구 제조업 | \n"," 8 | \n"," 8 | \n"," 8 | \n","
\n"," \n"," 가전제품 및 정보통신장비 소매업 | \n"," 1 | \n"," 1 | \n"," 1 | \n","
\n"," \n"," 가정용 기기 제조업 | \n"," 9 | \n"," 9 | \n"," 9 | \n","
\n"," \n"," ... | \n"," ... | \n"," ... | \n"," ... | \n","
\n"," \n"," 해상 운송업 | \n"," 5 | \n"," 5 | \n"," 5 | \n","
\n"," \n"," 해체, 선별 및 원료 재생업 | \n"," 1 | \n"," 1 | \n"," 1 | \n","
\n"," \n"," 화학섬유 제조업 | \n"," 9 | \n"," 9 | \n"," 9 | \n","
\n"," \n"," 환경 정화 및 복원업 | \n"," 1 | \n"," 1 | \n"," 1 | \n","
\n"," \n"," 회사 본부 및 경영 컨설팅 서비스업 | \n"," 12 | \n"," 12 | \n"," 11 | \n","
\n"," \n","
\n","
156 rows × 3 columns
\n","
"],"text/plain":[" Symbol Name Industry\n","Sector \n","1차 비철금속 제조업 19 19 18\n","1차 철강 제조업 57 57 57\n","가구 제조업 8 8 8\n","가전제품 및 정보통신장비 소매업 1 1 1\n","가정용 기기 제조업 9 9 9\n","... ... ... ...\n","해상 운송업 5 5 5\n","해체, 선별 및 원료 재생업 1 1 1\n","화학섬유 제조업 9 9 9\n","환경 정화 및 복원업 1 1 1\n","회사 본부 및 경영 컨설팅 서비스업 12 12 11\n","\n","[156 rows x 3 columns]"]},"metadata":{"tags":[]},"execution_count":27}]},{"cell_type":"markdown","metadata":{"id":"mz7tBS4MGsXn","colab_type":"text"},"source":["섹터(Sector)의 개수는 모두 156개 인것을 확인할 수 있습니다.\n","\n","섹터(Sector)별로 개수(종목수)를 구하고, 가장 종목수가 많은 섹터 30개를 뽑아 봅니다."]},{"cell_type":"code","metadata":{"id":"y17KnexXFxh1","colab_type":"code","colab":{"base_uri":"https://localhost:8080/","height":1000},"outputId":"f83e0543-30a8-46a3-8c17-c6a406cafdec","executionInfo":{"status":"ok","timestamp":1582472674249,"user_tz":-540,"elapsed":8412,"user":{"displayName":"Sean-June Lee","photoUrl":"https://lh3.googleusercontent.com/a-/AAuE7mA0z_4qCQ4H5MJ8ixUx69EmwIvNuV7BfS9FRIdfmCM=s64","userId":"12576390002043678893"}}},"source":["krx.groupby('Sector').count().sort_values('Symbol', ascending=False)[:30]"],"execution_count":28,"outputs":[{"output_type":"execute_result","data":{"text/html":["\n","\n","
\n"," \n"," \n"," | \n"," Symbol | \n"," Name | \n"," Industry | \n","
\n"," \n"," Sector | \n"," | \n"," | \n"," | \n","
\n"," \n"," \n"," \n"," 특수 목적용 기계 제조업 | \n"," 136 | \n"," 136 | \n"," 136 | \n","
\n"," \n"," 소프트웨어 개발 및 공급업 | \n"," 129 | \n"," 129 | \n"," 128 | \n","
\n"," \n"," 전자부품 제조업 | \n"," 119 | \n"," 119 | \n"," 118 | \n","
\n"," \n"," 자동차 신품 부품 제조업 | \n"," 96 | \n"," 96 | \n"," 96 | \n","
\n"," \n"," 기타 금융업 | \n"," 88 | \n"," 88 | \n"," 86 | \n","
\n"," \n"," 의약품 제조업 | \n"," 88 | \n"," 88 | \n"," 88 | \n","
\n"," \n"," 기타 화학제품 제조업 | \n"," 83 | \n"," 83 | \n"," 83 | \n","
\n"," \n"," 금융 지원 서비스업 | \n"," 79 | \n"," 79 | \n"," 78 | \n","
\n"," \n"," 통신 및 방송 장비 제조업 | \n"," 76 | \n"," 76 | \n"," 76 | \n","
\n"," \n"," 반도체 제조업 | \n"," 58 | \n"," 58 | \n"," 58 | \n","
\n"," \n"," 1차 철강 제조업 | \n"," 57 | \n"," 57 | \n"," 57 | \n","
\n"," \n"," 자연과학 및 공학 연구개발업 | \n"," 49 | \n"," 49 | \n"," 49 | \n","
\n"," \n"," 의료용 기기 제조업 | \n"," 44 | \n"," 44 | \n"," 43 | \n","
\n"," \n"," 플라스틱제품 제조업 | \n"," 44 | \n"," 44 | \n"," 44 | \n","
\n"," \n"," 일반 목적용 기계 제조업 | \n"," 44 | \n"," 44 | \n"," 44 | \n","
\n"," \n"," 기초 화학물질 제조업 | \n"," 43 | \n"," 43 | \n"," 43 | \n","
\n"," \n"," 기타 전문 도매업 | \n"," 38 | \n"," 38 | \n"," 38 | \n","
\n"," \n"," 컴퓨터 프로그래밍, 시스템 통합 및 관리업 | \n"," 36 | \n"," 36 | \n"," 36 | \n","
\n"," \n"," 기초 의약물질 및 생물학적 제제 제조업 | \n"," 36 | \n"," 36 | \n"," 36 | \n","
\n"," \n"," 기타 식품 제조업 | \n"," 34 | \n"," 34 | \n"," 34 | \n","
\n"," \n"," 전동기, 발전기 및 전기 변환 · 공급 · 제어 장치 제조업 | \n"," 33 | \n"," 33 | \n"," 33 | \n","
\n"," \n"," 영화, 비디오물, 방송프로그램 제작 및 배급업 | \n"," 31 | \n"," 31 | \n"," 31 | \n","
\n"," \n"," 봉제의복 제조업 | \n"," 28 | \n"," 28 | \n"," 27 | \n","
\n"," \n"," 측정, 시험, 항해, 제어 및 기타 정밀기기 제조업; 광학기기 제외 | \n"," 25 | \n"," 25 | \n"," 25 | \n","
\n"," \n"," 건물 건설업 | \n"," 25 | \n"," 25 | \n"," 25 | \n","
\n"," \n"," 기타 금속 가공제품 제조업 | \n"," 23 | \n"," 23 | \n"," 23 | \n","
\n"," \n"," 기계장비 및 관련 물품 도매업 | \n"," 23 | \n"," 23 | \n"," 23 | \n","
\n"," \n"," 의료용품 및 기타 의약 관련제품 제조업 | \n"," 23 | \n"," 23 | \n"," 23 | \n","
\n"," \n"," 구조용 금속제품, 탱크 및 증기발생기 제조업 | \n"," 20 | \n"," 20 | \n"," 20 | \n","
\n"," \n"," 생활용품 도매업 | \n"," 19 | \n"," 19 | \n"," 19 | \n","
\n"," \n","
\n","
"],"text/plain":[" Symbol Name Industry\n","Sector \n","특수 목적용 기계 제조업 136 136 136\n","소프트웨어 개발 및 공급업 129 129 128\n","전자부품 제조업 119 119 118\n","자동차 신품 부품 제조업 96 96 96\n","기타 금융업 88 88 86\n","의약품 제조업 88 88 88\n","기타 화학제품 제조업 83 83 83\n","금융 지원 서비스업 79 79 78\n","통신 및 방송 장비 제조업 76 76 76\n","반도체 제조업 58 58 58\n","1차 철강 제조업 57 57 57\n","자연과학 및 공학 연구개발업 49 49 49\n","의료용 기기 제조업 44 44 43\n","플라스틱제품 제조업 44 44 44\n","일반 목적용 기계 제조업 44 44 44\n","기초 화학물질 제조업 43 43 43\n","기타 전문 도매업 38 38 38\n","컴퓨터 프로그래밍, 시스템 통합 및 관리업 36 36 36\n","기초 의약물질 및 생물학적 제제 제조업 36 36 36\n","기타 식품 제조업 34 34 34\n","전동기, 발전기 및 전기 변환 · 공급 · 제어 장치 제조업 33 33 33\n","영화, 비디오물, 방송프로그램 제작 및 배급업 31 31 31\n","봉제의복 제조업 28 28 27\n","측정, 시험, 항해, 제어 및 기타 정밀기기 제조업; 광학기기 제외 25 25 25\n","건물 건설업 25 25 25\n","기타 금속 가공제품 제조업 23 23 23\n","기계장비 및 관련 물품 도매업 23 23 23\n","의료용품 및 기타 의약 관련제품 제조업 23 23 23\n","구조용 금속제품, 탱크 및 증기발생기 제조업 20 20 20\n","생활용품 도매업 19 19 19"]},"metadata":{"tags":[]},"execution_count":28}]},{"cell_type":"markdown","metadata":{"id":"221gcQnTH8oN","colab_type":"text"},"source":["묶은(groupby)결과를 list와 dict로 변환하면 개별 섹터(Sector)별로 종목리스트를 구분할 수 있습니다."]},{"cell_type":"code","metadata":{"id":"w5YMYrnOFxbu","colab_type":"code","colab":{"base_uri":"https://localhost:8080/","height":215},"outputId":"6685ce10-c1a9-4f2e-a18e-7265dea1b87c","executionInfo":{"status":"ok","timestamp":1582472674250,"user_tz":-540,"elapsed":8406,"user":{"displayName":"Sean-June Lee","photoUrl":"https://lh3.googleusercontent.com/a-/AAuE7mA0z_4qCQ4H5MJ8ixUx69EmwIvNuV7BfS9FRIdfmCM=s64","userId":"12576390002043678893"}}},"source":["sectors = dict(list(krx.groupby('Sector')))\n","\n","print('count:', len(sectors))\n","list(sectors.keys())[:10]"],"execution_count":29,"outputs":[{"output_type":"stream","text":["count: 156\n"],"name":"stdout"},{"output_type":"execute_result","data":{"text/plain":["['1차 비철금속 제조업',\n"," '1차 철강 제조업',\n"," '가구 제조업',\n"," '가전제품 및 정보통신장비 소매업',\n"," '가정용 기기 제조업',\n"," '가죽, 가방 및 유사제품 제조업',\n"," '개인 및 가정용품 임대업',\n"," '건물 건설업',\n"," '건물설비 설치 공사업',\n"," '건축기술, 엔지니어링 및 관련 기술 서비스업']"]},"metadata":{"tags":[]},"execution_count":29}]},{"cell_type":"code","metadata":{"id":"Vx-eTcW2FxTa","colab_type":"code","colab":{"base_uri":"https://localhost:8080/","height":377},"outputId":"c6c312da-cab3-45a7-f1a3-561c711eb413","executionInfo":{"status":"ok","timestamp":1582472674250,"user_tz":-540,"elapsed":8401,"user":{"displayName":"Sean-June Lee","photoUrl":"https://lh3.googleusercontent.com/a-/AAuE7mA0z_4qCQ4H5MJ8ixUx69EmwIvNuV7BfS9FRIdfmCM=s64","userId":"12576390002043678893"}}},"source":["med_sec = sectors['의료용품 및 기타 의약 관련제품 제조업']\n","\n","print('row count:', len(med_sec))\n","med_sec.head(10)"],"execution_count":30,"outputs":[{"output_type":"stream","text":["row count: 23\n"],"name":"stdout"},{"output_type":"execute_result","data":{"text/html":["\n","\n","
\n"," \n"," \n"," | \n"," Symbol | \n"," Name | \n"," Sector | \n"," Industry | \n","
\n"," \n"," \n"," \n"," 149 | \n"," 206640 | \n"," 바디텍메드 | \n"," 의료용품 및 기타 의약 관련제품 제조업 | \n"," 기업인수합병 | \n","
\n"," \n"," 164 | \n"," 253840 | \n"," 수젠텍 | \n"," 의료용품 및 기타 의약 관련제품 제조업 | \n"," 체외진단 기기 및 시약 | \n","
\n"," \n"," 188 | \n"," 950130 | \n"," 엑세스바이오 | \n"," 의료용품 및 기타 의약 관련제품 제조업 | \n"," 말라리아 진단키트(RDT), HIV 진단키트(RDT) | \n","
\n"," \n"," 195 | \n"," 153710 | \n"," 옵티팜 | \n"," 의료용품 및 기타 의약 관련제품 제조업 | \n"," 옵티케어, 메디피그 등 | \n","
\n"," \n"," 437 | \n"," 059210 | \n"," 메타바이오메드 | \n"," 의료용품 및 기타 의약 관련제품 제조업 | \n"," 생체분해성봉합사,근관충전재 | \n","
\n"," \n"," 484 | \n"," 174900 | \n"," 앱클론 | \n"," 의료용품 및 기타 의약 관련제품 제조업 | \n"," 항체의약품 | \n","
\n"," \n"," 527 | \n"," 228760 | \n"," 지노믹트리 | \n"," 의료용품 및 기타 의약 관련제품 제조업 | \n"," 암 조기진단 제품 | \n","
\n"," \n"," 746 | \n"," 064550 | \n"," 바이오니아 | \n"," 의료용품 및 기타 의약 관련제품 제조업 | \n"," 합성유전자,시약및유전자분석장비 | \n","
\n"," \n"," 824 | \n"," 086890 | \n"," 이수앱지스 | \n"," 의료용품 및 기타 의약 관련제품 제조업 | \n"," 항체치료제,효소치료제 | \n","
\n"," \n"," 853 | \n"," 046210 | \n"," 파나진 | \n"," 의료용품 및 기타 의약 관련제품 제조업 | \n"," 의료용품및 기타 의약관련 제품 제조업 | \n","
\n"," \n","
\n","
"],"text/plain":[" Symbol Name Sector Industry\n","149 206640 바디텍메드 의료용품 및 기타 의약 관련제품 제조업 기업인수합병\n","164 253840 수젠텍 의료용품 및 기타 의약 관련제품 제조업 체외진단 기기 및 시약\n","188 950130 엑세스바이오 의료용품 및 기타 의약 관련제품 제조업 말라리아 진단키트(RDT), HIV 진단키트(RDT)\n","195 153710 옵티팜 의료용품 및 기타 의약 관련제품 제조업 옵티케어, 메디피그 등\n","437 059210 메타바이오메드 의료용품 및 기타 의약 관련제품 제조업 생체분해성봉합사,근관충전재\n","484 174900 앱클론 의료용품 및 기타 의약 관련제품 제조업 항체의약품\n","527 228760 지노믹트리 의료용품 및 기타 의약 관련제품 제조업 암 조기진단 제품\n","746 064550 바이오니아 의료용품 및 기타 의약 관련제품 제조업 합성유전자,시약및유전자분석장비\n","824 086890 이수앱지스 의료용품 및 기타 의약 관련제품 제조업 항체치료제,효소치료제\n","853 046210 파나진 의료용품 및 기타 의약 관련제품 제조업 의료용품및 기타 의약관련 제품 제조업"]},"metadata":{"tags":[]},"execution_count":30}]},{"cell_type":"markdown","metadata":{"id":"d0K9dPq0LXSh","colab_type":"text"},"source":["## FinanceDataReader 설치"]},{"cell_type":"code","metadata":{"id":"xIA-u4XmLOnN","colab_type":"code","colab":{}},"source":["!pip -q install finance-datareader"],"execution_count":0,"outputs":[]},{"cell_type":"markdown","metadata":{"id":"6UMgtUCFFW0S","colab_type":"text"},"source":["## 개별 종목의 가격 데이터 가져오기\n","개별 종목의 가격을 가져오고, 개별 종목의 종가(Close)를 데이터 프레임(med_pirces)에 컬럼으로 추가합니다."]},{"cell_type":"code","metadata":{"id":"9RtC3xh8FBfv","colab_type":"code","colab":{"base_uri":"https://localhost:8080/","height":431},"outputId":"e7b25b8f-79c9-4917-86d5-8c20eac0ad94","executionInfo":{"status":"ok","timestamp":1582472690375,"user_tz":-540,"elapsed":24517,"user":{"displayName":"Sean-June Lee","photoUrl":"https://lh3.googleusercontent.com/a-/AAuE7mA0z_4qCQ4H5MJ8ixUx69EmwIvNuV7BfS9FRIdfmCM=s64","userId":"12576390002043678893"}}},"source":["import pandas as pd\n","import FinanceDataReader as fdr\n","\n","med = pd.DataFrame()\n","\n","for ix, row in med_sec.iterrows():\n"," code, name = row['Symbol'], row['Name']\n"," print(code, name)\n"," # 개별 종목의 가격을 가져옵니다\n"," df = fdr.DataReader(code, '2019-01-01', '2019-12-31')\n","\n"," # 가격 데이터의 종가(Close)를 컬럼으로 추가합니다\n"," # (컬럼명은 종목명을 지정합니다)\n"," med[name] = df['Close']"],"execution_count":32,"outputs":[{"output_type":"stream","text":["206640 바디텍메드\n","253840 수젠텍\n","950130 엑세스바이오\n","153710 옵티팜\n","059210 메타바이오메드\n","174900 앱클론\n","228760 지노믹트리\n","064550 바이오니아\n","086890 이수앱지스\n","046210 파나진\n","138610 나이벡\n","096530 씨젠\n","246720 아스타\n","100700 세운메디칼\n","260660 알리코제약\n","241820 피씨엘\n","042520 한스바이오메드\n","205470 휴마시스\n","233250 메디안디노스틱\n","142280 녹십자엠에스\n","216080 제테마\n","303360 프로테옴텍\n","278380 원바이오젠\n"],"name":"stdout"}]},{"cell_type":"code","metadata":{"id":"Vu8a-m8kW97_","colab_type":"code","colab":{"base_uri":"https://localhost:8080/","height":637},"outputId":"d8e9ab58-c17a-4292-c300-8d55c6506822","executionInfo":{"status":"ok","timestamp":1582472690376,"user_tz":-540,"elapsed":24513,"user":{"displayName":"Sean-June Lee","photoUrl":"https://lh3.googleusercontent.com/a-/AAuE7mA0z_4qCQ4H5MJ8ixUx69EmwIvNuV7BfS9FRIdfmCM=s64","userId":"12576390002043678893"}}},"source":["# 23개 종목 1년간의 종가(Close) 데이터를 수집하였습니다\n","med"],"execution_count":33,"outputs":[{"output_type":"execute_result","data":{"text/html":["\n","\n","
\n"," \n"," \n"," | \n"," 바디텍메드 | \n"," 수젠텍 | \n"," 엑세스바이오 | \n"," 옵티팜 | \n"," 메타바이오메드 | \n"," 앱클론 | \n"," 지노믹트리 | \n"," 바이오니아 | \n"," 이수앱지스 | \n"," 파나진 | \n"," 나이벡 | \n"," 씨젠 | \n"," 아스타 | \n"," 세운메디칼 | \n"," 알리코제약 | \n"," 피씨엘 | \n"," 한스바이오메드 | \n"," 휴마시스 | \n"," 메디안디노스틱 | \n"," 녹십자엠에스 | \n"," 제테마 | \n"," 프로테옴텍 | \n"," 원바이오젠 | \n","
\n"," \n"," Date | \n"," | \n"," | \n"," | \n"," | \n"," | \n"," | \n"," | \n"," | \n"," | \n"," | \n"," | \n"," | \n"," | \n"," | \n"," | \n"," | \n"," | \n"," | \n"," | \n"," | \n"," | \n"," | \n"," | \n","
\n"," \n"," \n"," \n"," 2019-01-02 | \n"," 10400 | \n"," 12900 | \n"," 4410 | \n"," 9130 | \n"," 2960 | \n"," 42700 | \n"," 27550 | \n"," 7540 | \n"," 6170 | \n"," 4475 | \n"," 9358 | \n"," 15600 | \n"," 8290 | \n"," 3780 | \n"," 12100 | \n"," 9530 | \n"," 24600 | \n"," 1335 | \n"," 27000 | \n"," 9866 | \n"," NaN | \n"," 19400 | \n"," NaN | \n","
\n"," \n"," 2019-01-03 | \n"," 9990 | \n"," 13000 | \n"," 4180 | \n"," 9030 | \n"," 2920 | \n"," 40900 | \n"," 27500 | \n"," 7200 | \n"," 6010 | \n"," 4380 | \n"," 8696 | \n"," 14750 | \n"," 8120 | \n"," 3830 | \n"," 11650 | \n"," 9360 | \n"," 23450 | \n"," 1310 | \n"," 27450 | \n"," 9661 | \n"," NaN | \n"," 18800 | \n"," NaN | \n","
\n"," \n"," 2019-01-04 | \n"," 10200 | \n"," 12950 | \n"," 4365 | \n"," 9260 | \n"," 2965 | \n"," 40800 | \n"," 27500 | \n"," 7380 | \n"," 6200 | \n"," 4505 | \n"," 9140 | \n"," 15000 | \n"," 8030 | \n"," 3805 | \n"," 11950 | \n"," 9630 | \n"," 24100 | \n"," 1330 | \n"," 27450 | \n"," 9784 | \n"," NaN | \n"," 18850 | \n"," NaN | \n","
\n"," \n"," 2019-01-07 | \n"," 10250 | \n"," 12950 | \n"," 4470 | \n"," 9100 | \n"," 3020 | \n"," 39350 | \n"," 27700 | \n"," 7210 | \n"," 6350 | \n"," 4665 | \n"," 9140 | \n"," 15200 | \n"," 7970 | \n"," 3780 | \n"," 12200 | \n"," 9700 | \n"," 24650 | \n"," 1340 | \n"," 27450 | \n"," 9784 | \n"," NaN | \n"," 18900 | \n"," NaN | \n","
\n"," \n"," 2019-01-08 | \n"," 9980 | \n"," 12900 | \n"," 4305 | \n"," 9080 | \n"," 3040 | \n"," 37550 | \n"," 27700 | \n"," 7080 | \n"," 6300 | \n"," 4600 | \n"," 9053 | \n"," 15600 | \n"," 7800 | \n"," 3730 | \n"," 12150 | \n"," 9720 | \n"," 24800 | \n"," 1340 | \n"," 27500 | \n"," 9702 | \n"," NaN | \n"," 18450 | \n"," NaN | \n","
\n"," \n"," ... | \n"," ... | \n"," ... | \n"," ... | \n"," ... | \n"," ... | \n"," ... | \n"," ... | \n"," ... | \n"," ... | \n"," ... | \n"," ... | \n"," ... | \n"," ... | \n"," ... | \n"," ... | \n"," ... | \n"," ... | \n"," ... | \n"," ... | \n"," ... | \n"," ... | \n"," ... | \n"," ... | \n","
\n"," \n"," 2019-12-23 | \n"," 9600 | \n"," 5400 | \n"," 2030 | \n"," 9070 | \n"," 2700 | \n"," 36700 | \n"," 22150 | \n"," 6570 | \n"," 6700 | \n"," 2215 | \n"," 9710 | \n"," 29700 | \n"," 5090 | \n"," 3235 | \n"," 13600 | \n"," 7910 | \n"," 23550 | \n"," 1375 | \n"," 39200 | \n"," 5140 | \n"," 19300.0 | \n"," 15450 | \n"," 9700.0 | \n","
\n"," \n"," 2019-12-24 | \n"," 9450 | \n"," 5210 | \n"," 2065 | \n"," 8840 | \n"," 2630 | \n"," 35950 | \n"," 21250 | \n"," 6500 | \n"," 6490 | \n"," 2185 | \n"," 10150 | \n"," 30300 | \n"," 5040 | \n"," 3200 | \n"," 12400 | \n"," 7870 | \n"," 23550 | \n"," 1355 | \n"," 39200 | \n"," 5060 | \n"," 19150.0 | \n"," 14450 | \n"," 9500.0 | \n","
\n"," \n"," 2019-12-26 | \n"," 9670 | \n"," 5270 | \n"," 2015 | \n"," 8810 | \n"," 2675 | \n"," 36600 | \n"," 22100 | \n"," 6620 | \n"," 6460 | \n"," 2320 | \n"," 10500 | \n"," 30300 | \n"," 4960 | \n"," 3225 | \n"," 12750 | \n"," 7890 | \n"," 24100 | \n"," 1355 | \n"," 39200 | \n"," 5110 | \n"," 20050.0 | \n"," 14000 | \n"," 9900.0 | \n","
\n"," \n"," 2019-12-27 | \n"," 9650 | \n"," 5450 | \n"," 2060 | \n"," 8900 | \n"," 2750 | \n"," 38150 | \n"," 22800 | \n"," 6690 | \n"," 6540 | \n"," 2345 | \n"," 10750 | \n"," 30650 | \n"," 4850 | \n"," 3230 | \n"," 12850 | \n"," 8010 | \n"," 24200 | \n"," 1385 | \n"," 40000 | \n"," 5250 | \n"," 20450.0 | \n"," 14000 | \n"," 9880.0 | \n","
\n"," \n"," 2019-12-30 | \n"," 9650 | \n"," 5480 | \n"," 2060 | \n"," 9040 | \n"," 2785 | \n"," 40100 | \n"," 23450 | \n"," 6790 | \n"," 6650 | \n"," 2345 | \n"," 11100 | \n"," 30650 | \n"," 4860 | \n"," 3225 | \n"," 14100 | \n"," 8060 | \n"," 24950 | \n"," 1390 | \n"," 40000 | \n"," 5250 | \n"," 20650.0 | \n"," 13950 | \n"," 9900.0 | \n","
\n"," \n","
\n","
246 rows × 23 columns
\n","
"],"text/plain":[" 바디텍메드 수젠텍 엑세스바이오 옵티팜 ... 녹십자엠에스 제테마 프로테옴텍 원바이오젠\n","Date ... \n","2019-01-02 10400 12900 4410 9130 ... 9866 NaN 19400 NaN\n","2019-01-03 9990 13000 4180 9030 ... 9661 NaN 18800 NaN\n","2019-01-04 10200 12950 4365 9260 ... 9784 NaN 18850 NaN\n","2019-01-07 10250 12950 4470 9100 ... 9784 NaN 18900 NaN\n","2019-01-08 9980 12900 4305 9080 ... 9702 NaN 18450 NaN\n","... ... ... ... ... ... ... ... ... ...\n","2019-12-23 9600 5400 2030 9070 ... 5140 19300.0 15450 9700.0\n","2019-12-24 9450 5210 2065 8840 ... 5060 19150.0 14450 9500.0\n","2019-12-26 9670 5270 2015 8810 ... 5110 20050.0 14000 9900.0\n","2019-12-27 9650 5450 2060 8900 ... 5250 20450.0 14000 9880.0\n","2019-12-30 9650 5480 2060 9040 ... 5250 20650.0 13950 9900.0\n","\n","[246 rows x 23 columns]"]},"metadata":{"tags":[]},"execution_count":33}]},{"cell_type":"markdown","metadata":{"id":"K9yKhzOPatHO","colab_type":"text"},"source":["2019년 중에 신규상장한 2개 종목은 제외합니다. (1년간 기간 수익률을 구하는 것이므로)\n","* 제테마(코스닥, 2019년 11월 14일 신규상장)\n","* 원바이오젠(코넥스, 2019년 6월 3일 신규상장)\n","\n","결측치(NaN)이 포함된 컬럼을 제외합니다."]},{"cell_type":"code","metadata":{"id":"UgEsWJkoatBI","colab_type":"code","colab":{"base_uri":"https://localhost:8080/","height":450},"outputId":"6c2da112-b588-4778-b445-fb45833aac5f","executionInfo":{"status":"ok","timestamp":1582472690378,"user_tz":-540,"elapsed":24510,"user":{"displayName":"Sean-June Lee","photoUrl":"https://lh3.googleusercontent.com/a-/AAuE7mA0z_4qCQ4H5MJ8ixUx69EmwIvNuV7BfS9FRIdfmCM=s64","userId":"12576390002043678893"}}},"source":["med = med.dropna(axis=1)\n","med"],"execution_count":34,"outputs":[{"output_type":"execute_result","data":{"text/html":["\n","\n","
\n"," \n"," \n"," | \n"," 바디텍메드 | \n"," 수젠텍 | \n"," 엑세스바이오 | \n"," 옵티팜 | \n"," 메타바이오메드 | \n"," 앱클론 | \n"," 지노믹트리 | \n"," 바이오니아 | \n"," 이수앱지스 | \n"," 파나진 | \n"," 나이벡 | \n"," 씨젠 | \n"," 아스타 | \n"," 세운메디칼 | \n"," 알리코제약 | \n"," 피씨엘 | \n"," 한스바이오메드 | \n"," 휴마시스 | \n"," 메디안디노스틱 | \n"," 녹십자엠에스 | \n"," 프로테옴텍 | \n","
\n"," \n"," Date | \n"," | \n"," | \n"," | \n"," | \n"," | \n"," | \n"," | \n"," | \n"," | \n"," | \n"," | \n"," | \n"," | \n"," | \n"," | \n"," | \n"," | \n"," | \n"," | \n"," | \n"," | \n","
\n"," \n"," \n"," \n"," 2019-01-02 | \n"," 10400 | \n"," 12900 | \n"," 4410 | \n"," 9130 | \n"," 2960 | \n"," 42700 | \n"," 27550 | \n"," 7540 | \n"," 6170 | \n"," 4475 | \n"," 9358 | \n"," 15600 | \n"," 8290 | \n"," 3780 | \n"," 12100 | \n"," 9530 | \n"," 24600 | \n"," 1335 | \n"," 27000 | \n"," 9866 | \n"," 19400 | \n","
\n"," \n"," 2019-01-03 | \n"," 9990 | \n"," 13000 | \n"," 4180 | \n"," 9030 | \n"," 2920 | \n"," 40900 | \n"," 27500 | \n"," 7200 | \n"," 6010 | \n"," 4380 | \n"," 8696 | \n"," 14750 | \n"," 8120 | \n"," 3830 | \n"," 11650 | \n"," 9360 | \n"," 23450 | \n"," 1310 | \n"," 27450 | \n"," 9661 | \n"," 18800 | \n","
\n"," \n"," 2019-01-04 | \n"," 10200 | \n"," 12950 | \n"," 4365 | \n"," 9260 | \n"," 2965 | \n"," 40800 | \n"," 27500 | \n"," 7380 | \n"," 6200 | \n"," 4505 | \n"," 9140 | \n"," 15000 | \n"," 8030 | \n"," 3805 | \n"," 11950 | \n"," 9630 | \n"," 24100 | \n"," 1330 | \n"," 27450 | \n"," 9784 | \n"," 18850 | \n","
\n"," \n"," 2019-01-07 | \n"," 10250 | \n"," 12950 | \n"," 4470 | \n"," 9100 | \n"," 3020 | \n"," 39350 | \n"," 27700 | \n"," 7210 | \n"," 6350 | \n"," 4665 | \n"," 9140 | \n"," 15200 | \n"," 7970 | \n"," 3780 | \n"," 12200 | \n"," 9700 | \n"," 24650 | \n"," 1340 | \n"," 27450 | \n"," 9784 | \n"," 18900 | \n","
\n"," \n"," 2019-01-08 | \n"," 9980 | \n"," 12900 | \n"," 4305 | \n"," 9080 | \n"," 3040 | \n"," 37550 | \n"," 27700 | \n"," 7080 | \n"," 6300 | \n"," 4600 | \n"," 9053 | \n"," 15600 | \n"," 7800 | \n"," 3730 | \n"," 12150 | \n"," 9720 | \n"," 24800 | \n"," 1340 | \n"," 27500 | \n"," 9702 | \n"," 18450 | \n","
\n"," \n"," ... | \n"," ... | \n"," ... | \n"," ... | \n"," ... | \n"," ... | \n"," ... | \n"," ... | \n"," ... | \n"," ... | \n"," ... | \n"," ... | \n"," ... | \n"," ... | \n"," ... | \n"," ... | \n"," ... | \n"," ... | \n"," ... | \n"," ... | \n"," ... | \n"," ... | \n","
\n"," \n"," 2019-12-23 | \n"," 9600 | \n"," 5400 | \n"," 2030 | \n"," 9070 | \n"," 2700 | \n"," 36700 | \n"," 22150 | \n"," 6570 | \n"," 6700 | \n"," 2215 | \n"," 9710 | \n"," 29700 | \n"," 5090 | \n"," 3235 | \n"," 13600 | \n"," 7910 | \n"," 23550 | \n"," 1375 | \n"," 39200 | \n"," 5140 | \n"," 15450 | \n","
\n"," \n"," 2019-12-24 | \n"," 9450 | \n"," 5210 | \n"," 2065 | \n"," 8840 | \n"," 2630 | \n"," 35950 | \n"," 21250 | \n"," 6500 | \n"," 6490 | \n"," 2185 | \n"," 10150 | \n"," 30300 | \n"," 5040 | \n"," 3200 | \n"," 12400 | \n"," 7870 | \n"," 23550 | \n"," 1355 | \n"," 39200 | \n"," 5060 | \n"," 14450 | \n","
\n"," \n"," 2019-12-26 | \n"," 9670 | \n"," 5270 | \n"," 2015 | \n"," 8810 | \n"," 2675 | \n"," 36600 | \n"," 22100 | \n"," 6620 | \n"," 6460 | \n"," 2320 | \n"," 10500 | \n"," 30300 | \n"," 4960 | \n"," 3225 | \n"," 12750 | \n"," 7890 | \n"," 24100 | \n"," 1355 | \n"," 39200 | \n"," 5110 | \n"," 14000 | \n","
\n"," \n"," 2019-12-27 | \n"," 9650 | \n"," 5450 | \n"," 2060 | \n"," 8900 | \n"," 2750 | \n"," 38150 | \n"," 22800 | \n"," 6690 | \n"," 6540 | \n"," 2345 | \n"," 10750 | \n"," 30650 | \n"," 4850 | \n"," 3230 | \n"," 12850 | \n"," 8010 | \n"," 24200 | \n"," 1385 | \n"," 40000 | \n"," 5250 | \n"," 14000 | \n","
\n"," \n"," 2019-12-30 | \n"," 9650 | \n"," 5480 | \n"," 2060 | \n"," 9040 | \n"," 2785 | \n"," 40100 | \n"," 23450 | \n"," 6790 | \n"," 6650 | \n"," 2345 | \n"," 11100 | \n"," 30650 | \n"," 4860 | \n"," 3225 | \n"," 14100 | \n"," 8060 | \n"," 24950 | \n"," 1390 | \n"," 40000 | \n"," 5250 | \n"," 13950 | \n","
\n"," \n","
\n","
246 rows × 21 columns
\n","
"],"text/plain":[" 바디텍메드 수젠텍 엑세스바이오 옵티팜 ... 휴마시스 메디안디노스틱 녹십자엠에스 프로테옴텍\n","Date ... \n","2019-01-02 10400 12900 4410 9130 ... 1335 27000 9866 19400\n","2019-01-03 9990 13000 4180 9030 ... 1310 27450 9661 18800\n","2019-01-04 10200 12950 4365 9260 ... 1330 27450 9784 18850\n","2019-01-07 10250 12950 4470 9100 ... 1340 27450 9784 18900\n","2019-01-08 9980 12900 4305 9080 ... 1340 27500 9702 18450\n","... ... ... ... ... ... ... ... ... ...\n","2019-12-23 9600 5400 2030 9070 ... 1375 39200 5140 15450\n","2019-12-24 9450 5210 2065 8840 ... 1355 39200 5060 14450\n","2019-12-26 9670 5270 2015 8810 ... 1355 39200 5110 14000\n","2019-12-27 9650 5450 2060 8900 ... 1385 40000 5250 14000\n","2019-12-30 9650 5480 2060 9040 ... 1390 40000 5250 13950\n","\n","[246 rows x 21 columns]"]},"metadata":{"tags":[]},"execution_count":34}]},{"cell_type":"markdown","metadata":{"id":"OCh7abXVEifH","colab_type":"text"},"source":["## 수익률 계산\n","데이터의 첫날(1월 2일)을 기준으로 일일 누적 수익률을 구하기 위해 다음과 같이 연산합니다.\n"]},{"cell_type":"code","metadata":{"id":"4Ql29gvdEiaa","colab_type":"code","colab":{"base_uri":"https://localhost:8080/","height":637},"outputId":"c7483680-db93-4046-e905-929877587a1e","executionInfo":{"status":"ok","timestamp":1582472690379,"user_tz":-540,"elapsed":24506,"user":{"displayName":"Sean-June Lee","photoUrl":"https://lh3.googleusercontent.com/a-/AAuE7mA0z_4qCQ4H5MJ8ixUx69EmwIvNuV7BfS9FRIdfmCM=s64","userId":"12576390002043678893"}}},"source":["acc_rets = med / med.iloc[0] - 1.0\n","acc_rets"],"execution_count":35,"outputs":[{"output_type":"execute_result","data":{"text/html":["\n","\n","
\n"," \n"," \n"," | \n"," 바디텍메드 | \n"," 수젠텍 | \n"," 엑세스바이오 | \n"," 옵티팜 | \n"," 메타바이오메드 | \n"," 앱클론 | \n"," 지노믹트리 | \n"," 바이오니아 | \n"," 이수앱지스 | \n"," 파나진 | \n"," 나이벡 | \n"," 씨젠 | \n"," 아스타 | \n"," 세운메디칼 | \n"," 알리코제약 | \n"," 피씨엘 | \n"," 한스바이오메드 | \n"," 휴마시스 | \n"," 메디안디노스틱 | \n"," 녹십자엠에스 | \n"," 프로테옴텍 | \n","
\n"," \n"," Date | \n"," | \n"," | \n"," | \n"," | \n"," | \n"," | \n"," | \n"," | \n"," | \n"," | \n"," | \n"," | \n"," | \n"," | \n"," | \n"," | \n"," | \n"," | \n"," | \n"," | \n"," | \n","
\n"," \n"," \n"," \n"," 2019-01-02 | \n"," 0.000000 | \n"," 0.000000 | \n"," 0.000000 | \n"," 0.000000 | \n"," 0.000000 | \n"," 0.000000 | \n"," 0.000000 | \n"," 0.000000 | \n"," 0.000000 | \n"," 0.000000 | \n"," 0.000000 | \n"," 0.000000 | \n"," 0.000000 | \n"," 0.000000 | \n"," 0.000000 | \n"," 0.000000 | \n"," 0.000000 | \n"," 0.000000 | \n"," 0.000000 | \n"," 0.000000 | \n"," 0.000000 | \n","
\n"," \n"," 2019-01-03 | \n"," -0.039423 | \n"," 0.007752 | \n"," -0.052154 | \n"," -0.010953 | \n"," -0.013514 | \n"," -0.042155 | \n"," -0.001815 | \n"," -0.045093 | \n"," -0.025932 | \n"," -0.021229 | \n"," -0.070742 | \n"," -0.054487 | \n"," -0.020507 | \n"," 0.013228 | \n"," -0.037190 | \n"," -0.017838 | \n"," -0.046748 | \n"," -0.018727 | \n"," 0.016667 | \n"," -0.020778 | \n"," -0.030928 | \n","
\n"," \n"," 2019-01-04 | \n"," -0.019231 | \n"," 0.003876 | \n"," -0.010204 | \n"," 0.014239 | \n"," 0.001689 | \n"," -0.044496 | \n"," -0.001815 | \n"," -0.021220 | \n"," 0.004862 | \n"," 0.006704 | \n"," -0.023296 | \n"," -0.038462 | \n"," -0.031363 | \n"," 0.006614 | \n"," -0.012397 | \n"," 0.010493 | \n"," -0.020325 | \n"," -0.003745 | \n"," 0.016667 | \n"," -0.008311 | \n"," -0.028351 | \n","
\n"," \n"," 2019-01-07 | \n"," -0.014423 | \n"," 0.003876 | \n"," 0.013605 | \n"," -0.003286 | \n"," 0.020270 | \n"," -0.078454 | \n"," 0.005445 | \n"," -0.043767 | \n"," 0.029173 | \n"," 0.042458 | \n"," -0.023296 | \n"," -0.025641 | \n"," -0.038601 | \n"," 0.000000 | \n"," 0.008264 | \n"," 0.017838 | \n"," 0.002033 | \n"," 0.003745 | \n"," 0.016667 | \n"," -0.008311 | \n"," -0.025773 | \n","
\n"," \n"," 2019-01-08 | \n"," -0.040385 | \n"," 0.000000 | \n"," -0.023810 | \n"," -0.005476 | \n"," 0.027027 | \n"," -0.120609 | \n"," 0.005445 | \n"," -0.061008 | \n"," 0.021070 | \n"," 0.027933 | \n"," -0.032592 | \n"," 0.000000 | \n"," -0.059107 | \n"," -0.013228 | \n"," 0.004132 | \n"," 0.019937 | \n"," 0.008130 | \n"," 0.003745 | \n"," 0.018519 | \n"," -0.016623 | \n"," -0.048969 | \n","
\n"," \n"," ... | \n"," ... | \n"," ... | \n"," ... | \n"," ... | \n"," ... | \n"," ... | \n"," ... | \n"," ... | \n"," ... | \n"," ... | \n"," ... | \n"," ... | \n"," ... | \n"," ... | \n"," ... | \n"," ... | \n"," ... | \n"," ... | \n"," ... | \n"," ... | \n"," ... | \n","
\n"," \n"," 2019-12-23 | \n"," -0.076923 | \n"," -0.581395 | \n"," -0.539683 | \n"," -0.006572 | \n"," -0.087838 | \n"," -0.140515 | \n"," -0.196007 | \n"," -0.128647 | \n"," 0.085900 | \n"," -0.505028 | \n"," 0.037615 | \n"," 0.903846 | \n"," -0.386007 | \n"," -0.144180 | \n"," 0.123967 | \n"," -0.169990 | \n"," -0.042683 | \n"," 0.029963 | \n"," 0.451852 | \n"," -0.479019 | \n"," -0.203608 | \n","
\n"," \n"," 2019-12-24 | \n"," -0.091346 | \n"," -0.596124 | \n"," -0.531746 | \n"," -0.031763 | \n"," -0.111486 | \n"," -0.158080 | \n"," -0.228675 | \n"," -0.137931 | \n"," 0.051864 | \n"," -0.511732 | \n"," 0.084633 | \n"," 0.942308 | \n"," -0.392039 | \n"," -0.153439 | \n"," 0.024793 | \n"," -0.174187 | \n"," -0.042683 | \n"," 0.014981 | \n"," 0.451852 | \n"," -0.487128 | \n"," -0.255155 | \n","
\n"," \n"," 2019-12-26 | \n"," -0.070192 | \n"," -0.591473 | \n"," -0.543084 | \n"," -0.035049 | \n"," -0.096284 | \n"," -0.142857 | \n"," -0.197822 | \n"," -0.122016 | \n"," 0.047002 | \n"," -0.481564 | \n"," 0.122035 | \n"," 0.942308 | \n"," -0.401689 | \n"," -0.146825 | \n"," 0.053719 | \n"," -0.172088 | \n"," -0.020325 | \n"," 0.014981 | \n"," 0.451852 | \n"," -0.482060 | \n"," -0.278351 | \n","
\n"," \n"," 2019-12-27 | \n"," -0.072115 | \n"," -0.577519 | \n"," -0.532880 | \n"," -0.025192 | \n"," -0.070946 | \n"," -0.106557 | \n"," -0.172414 | \n"," -0.112732 | \n"," 0.059968 | \n"," -0.475978 | \n"," 0.148750 | \n"," 0.964744 | \n"," -0.414958 | \n"," -0.145503 | \n"," 0.061983 | \n"," -0.159496 | \n"," -0.016260 | \n"," 0.037453 | \n"," 0.481481 | \n"," -0.467869 | \n"," -0.278351 | \n","
\n"," \n"," 2019-12-30 | \n"," -0.072115 | \n"," -0.575194 | \n"," -0.532880 | \n"," -0.009858 | \n"," -0.059122 | \n"," -0.060890 | \n"," -0.148820 | \n"," -0.099469 | \n"," 0.077796 | \n"," -0.475978 | \n"," 0.186151 | \n"," 0.964744 | \n"," -0.413752 | \n"," -0.146825 | \n"," 0.165289 | \n"," -0.154250 | \n"," 0.014228 | \n"," 0.041199 | \n"," 0.481481 | \n"," -0.467869 | \n"," -0.280928 | \n","
\n"," \n","
\n","
246 rows × 21 columns
\n","
"],"text/plain":[" 바디텍메드 수젠텍 엑세스바이오 ... 메디안디노스틱 녹십자엠에스 프로테옴텍\n","Date ... \n","2019-01-02 0.000000 0.000000 0.000000 ... 0.000000 0.000000 0.000000\n","2019-01-03 -0.039423 0.007752 -0.052154 ... 0.016667 -0.020778 -0.030928\n","2019-01-04 -0.019231 0.003876 -0.010204 ... 0.016667 -0.008311 -0.028351\n","2019-01-07 -0.014423 0.003876 0.013605 ... 0.016667 -0.008311 -0.025773\n","2019-01-08 -0.040385 0.000000 -0.023810 ... 0.018519 -0.016623 -0.048969\n","... ... ... ... ... ... ... ...\n","2019-12-23 -0.076923 -0.581395 -0.539683 ... 0.451852 -0.479019 -0.203608\n","2019-12-24 -0.091346 -0.596124 -0.531746 ... 0.451852 -0.487128 -0.255155\n","2019-12-26 -0.070192 -0.591473 -0.543084 ... 0.451852 -0.482060 -0.278351\n","2019-12-27 -0.072115 -0.577519 -0.532880 ... 0.481481 -0.467869 -0.278351\n","2019-12-30 -0.072115 -0.575194 -0.532880 ... 0.481481 -0.467869 -0.280928\n","\n","[246 rows x 21 columns]"]},"metadata":{"tags":[]},"execution_count":35}]},{"cell_type":"markdown","metadata":{"id":"p21UUTOVZhX0","colab_type":"text"},"source":["종목별 12월 30일의 최종 수익률은 마지막 행(row)가 됩니다."]},{"cell_type":"code","metadata":{"id":"TijEx3UWEiV-","colab_type":"code","colab":{"base_uri":"https://localhost:8080/","height":413},"outputId":"7dbfeed5-6c14-4d10-9f61-c8392baf9e70","executionInfo":{"status":"ok","timestamp":1582472690380,"user_tz":-540,"elapsed":24503,"user":{"displayName":"Sean-June Lee","photoUrl":"https://lh3.googleusercontent.com/a-/AAuE7mA0z_4qCQ4H5MJ8ixUx69EmwIvNuV7BfS9FRIdfmCM=s64","userId":"12576390002043678893"}}},"source":["returns = acc_rets.iloc[-1]\n","returns"],"execution_count":36,"outputs":[{"output_type":"execute_result","data":{"text/plain":["바디텍메드 -0.072115\n","수젠텍 -0.575194\n","엑세스바이오 -0.532880\n","옵티팜 -0.009858\n","메타바이오메드 -0.059122\n","앱클론 -0.060890\n","지노믹트리 -0.148820\n","바이오니아 -0.099469\n","이수앱지스 0.077796\n","파나진 -0.475978\n","나이벡 0.186151\n","씨젠 0.964744\n","아스타 -0.413752\n","세운메디칼 -0.146825\n","알리코제약 0.165289\n","피씨엘 -0.154250\n","한스바이오메드 0.014228\n","휴마시스 0.041199\n","메디안디노스틱 0.481481\n","녹십자엠에스 -0.467869\n","프로테옴텍 -0.280928\n","Name: 2019-12-30 00:00:00, dtype: float64"]},"metadata":{"tags":[]},"execution_count":36}]},{"cell_type":"markdown","metadata":{"id":"Y2ADA5DAZ-_T","colab_type":"text"},"source":["수익률이 큰 종목부터 나열해 봅니다"]},{"cell_type":"code","metadata":{"id":"o9rZWC-HEiQp","colab_type":"code","colab":{"base_uri":"https://localhost:8080/","height":413},"outputId":"13772a29-d6b0-4f8c-c58a-5cc864e3314c","executionInfo":{"status":"ok","timestamp":1582472690382,"user_tz":-540,"elapsed":24500,"user":{"displayName":"Sean-June Lee","photoUrl":"https://lh3.googleusercontent.com/a-/AAuE7mA0z_4qCQ4H5MJ8ixUx69EmwIvNuV7BfS9FRIdfmCM=s64","userId":"12576390002043678893"}}},"source":["returns.sort_values(ascending=False)"],"execution_count":37,"outputs":[{"output_type":"execute_result","data":{"text/plain":["씨젠 0.964744\n","메디안디노스틱 0.481481\n","나이벡 0.186151\n","알리코제약 0.165289\n","이수앱지스 0.077796\n","휴마시스 0.041199\n","한스바이오메드 0.014228\n","옵티팜 -0.009858\n","메타바이오메드 -0.059122\n","앱클론 -0.060890\n","바디텍메드 -0.072115\n","바이오니아 -0.099469\n","세운메디칼 -0.146825\n","지노믹트리 -0.148820\n","피씨엘 -0.154250\n","프로테옴텍 -0.280928\n","아스타 -0.413752\n","녹십자엠에스 -0.467869\n","파나진 -0.475978\n","엑세스바이오 -0.532880\n","수젠텍 -0.575194\n","Name: 2019-12-30 00:00:00, dtype: float64"]},"metadata":{"tags":[]},"execution_count":37}]},{"cell_type":"markdown","metadata":{"id":"uUXTLFu_cqBj","colab_type":"text"},"source":["2019년 1년의 연간 수익률에서 가장 높은 수익률을 보인 것은 씨젠 96.4% 이고, 가장 낮은 수익률을 보인것은 수젠텍 -57.5% 입니다."]},{"cell_type":"code","metadata":{"id":"9xcZ7t_6cFP5","colab_type":"code","colab":{"base_uri":"https://localhost:8080/","height":35},"outputId":"b436bf9b-9efb-4c77-8b57-743a6ad7abcb","executionInfo":{"status":"ok","timestamp":1582472690385,"user_tz":-540,"elapsed":24498,"user":{"displayName":"Sean-June Lee","photoUrl":"https://lh3.googleusercontent.com/a-/AAuE7mA0z_4qCQ4H5MJ8ixUx69EmwIvNuV7BfS9FRIdfmCM=s64","userId":"12576390002043678893"}}},"source":["returns.mean()"],"execution_count":38,"outputs":[{"output_type":"execute_result","data":{"text/plain":["-0.07462202024155605"]},"metadata":{"tags":[]},"execution_count":38}]},{"cell_type":"markdown","metadata":{"id":"6zV8pjSCcFLC","colab_type":"text"},"source":["21개 종목의 평균수익률은 -7.4% 입니다."]},{"cell_type":"markdown","metadata":{"id":"c4JNnpa9dZPw","colab_type":"text"},"source":["## 다양한 기간에 대한 수익률\n","\n","기간을 달리해서 수익률을 추출해 봅니다."]},{"cell_type":"code","metadata":{"id":"qDl3d_58cFGQ","colab_type":"code","colab":{"base_uri":"https://localhost:8080/","height":413},"outputId":"8079f11a-a631-4809-85ee-127bfd4a0b08","executionInfo":{"status":"ok","timestamp":1582472690831,"user_tz":-540,"elapsed":24939,"user":{"displayName":"Sean-June Lee","photoUrl":"https://lh3.googleusercontent.com/a-/AAuE7mA0z_4qCQ4H5MJ8ixUx69EmwIvNuV7BfS9FRIdfmCM=s64","userId":"12576390002043678893"}}},"source":["df = med['2019-12-01':'2019-12-30'] # 특정 기간(12월 1달) 동안\n","acc_rets = df / df.iloc[0] - 1.0\n","acc_rets.iloc[-1]"],"execution_count":39,"outputs":[{"output_type":"execute_result","data":{"text/plain":["바디텍메드 0.040992\n","수젠텍 -0.041958\n","엑세스바이오 -0.021378\n","옵티팜 0.030787\n","메타바이오메드 0.096457\n","앱클론 0.134371\n","지노믹트리 0.015152\n","바이오니아 0.046225\n","이수앱지스 0.047244\n","파나진 -0.062000\n","나이벡 0.082927\n","씨젠 0.104505\n","아스타 -0.063584\n","세운메디칼 0.028708\n","알리코제약 0.084615\n","피씨엘 0.002488\n","한스바이오메드 0.012170\n","휴마시스 0.007246\n","메디안디노스틱 0.000000\n","녹십자엠에스 -0.062500\n","프로테옴텍 -0.041237\n","Name: 2019-12-30 00:00:00, dtype: float64"]},"metadata":{"tags":[]},"execution_count":39}]},{"cell_type":"markdown","metadata":{"id":"CKaOPTaEcFB9","colab_type":"text"},"source":["'2019-12-30' 시점을 기준으로 과거 5일, 10일, 20일, 60일, 120일, 240일 각각 수익률을 구해봅니다."]},{"cell_type":"markdown","metadata":{"id":"AILaVBGrcE8i","colab_type":"text"},"source":["각 기간의 (시작날짜, 끝날짜)는 다음과 같이 생성할 수 있습니다."]},{"cell_type":"code","metadata":{"id":"mWe6E8U4fAZ8","colab_type":"code","colab":{"base_uri":"https://localhost:8080/","height":125},"outputId":"9b01c438-6298-4719-d34f-3bdc796da331","executionInfo":{"status":"ok","timestamp":1582472690832,"user_tz":-540,"elapsed":24936,"user":{"displayName":"Sean-June Lee","photoUrl":"https://lh3.googleusercontent.com/a-/AAuE7mA0z_4qCQ4H5MJ8ixUx69EmwIvNuV7BfS9FRIdfmCM=s64","userId":"12576390002043678893"}}},"source":["from datetime import datetime, timedelta\n","\n","the_day = datetime(2019, 12, 30)\n","\n","for days in [5, 10, 20, 60, 120, 240]:\n"," start = the_day - timedelta(days)\n"," end = the_day\n"," print(start, '~', end)"],"execution_count":40,"outputs":[{"output_type":"stream","text":["2019-12-25 00:00:00 ~ 2019-12-30 00:00:00\n","2019-12-20 00:00:00 ~ 2019-12-30 00:00:00\n","2019-12-10 00:00:00 ~ 2019-12-30 00:00:00\n","2019-10-31 00:00:00 ~ 2019-12-30 00:00:00\n","2019-09-01 00:00:00 ~ 2019-12-30 00:00:00\n","2019-05-04 00:00:00 ~ 2019-12-30 00:00:00\n"],"name":"stdout"}]},{"cell_type":"code","metadata":{"id":"kd1bFXvrfAWq","colab_type":"code","colab":{}},"source":["from datetime import datetime, timedelta\n","\n","the_day = datetime(2019, 12, 30)\n","row_dict = {}\n","for days in [5, 10, 20, 60, 120, 240]:\n"," start = the_day - timedelta(days)\n"," end = the_day\n","\n"," df = med[start:end] # 특정 기간\n"," acc_rets = df / df.iloc[0] - 1.0\n"," row_dict[days] = acc_rets.iloc[-1] "],"execution_count":0,"outputs":[]},{"cell_type":"code","metadata":{"id":"N4FbW7AtfASE","colab_type":"code","colab":{"base_uri":"https://localhost:8080/","height":700},"outputId":"2575972b-059f-47c7-bb6f-0685840c89f9","executionInfo":{"status":"ok","timestamp":1582472690833,"user_tz":-540,"elapsed":24927,"user":{"displayName":"Sean-June Lee","photoUrl":"https://lh3.googleusercontent.com/a-/AAuE7mA0z_4qCQ4H5MJ8ixUx69EmwIvNuV7BfS9FRIdfmCM=s64","userId":"12576390002043678893"}}},"source":["df_rets = pd.DataFrame(row_dict)\n","df_rets"],"execution_count":42,"outputs":[{"output_type":"execute_result","data":{"text/html":["\n","\n","
\n"," \n"," \n"," | \n"," 5 | \n"," 10 | \n"," 20 | \n"," 60 | \n"," 120 | \n"," 240 | \n","
\n"," \n"," \n"," \n"," 바디텍메드 | \n"," -0.002068 | \n"," 0.013655 | \n"," 0.025505 | \n"," 0.128655 | \n"," 0.084270 | \n"," -0.138393 | \n","
\n"," \n"," 수젠텍 | \n"," 0.039848 | \n"," 0.000000 | \n"," -0.035211 | \n"," -0.094215 | \n"," -0.125997 | \n"," -0.619444 | \n","
\n"," \n"," 엑세스바이오 | \n"," 0.022333 | \n"," -0.026005 | \n"," -0.011990 | \n"," -0.021378 | \n"," -0.072072 | \n"," -0.492611 | \n","
\n"," \n"," 옵티팜 | \n"," 0.026107 | \n"," -0.010941 | \n"," 0.018018 | \n"," 0.008929 | \n"," -0.030043 | \n"," -0.174429 | \n","
\n"," \n"," 메타바이오메드 | \n"," 0.041121 | \n"," 0.029575 | \n"," 0.067050 | \n"," 0.052930 | \n"," 0.127530 | \n"," -0.068562 | \n","
\n"," \n"," 앱클론 | \n"," 0.095628 | \n"," 0.088195 | \n"," 0.049738 | \n"," 0.116992 | \n"," 0.029525 | \n"," -0.343699 | \n","
\n"," \n"," 지노믹트리 | \n"," 0.061086 | \n"," 0.093240 | \n"," -0.071287 | \n"," 0.132850 | \n"," 0.522727 | \n"," -0.366216 | \n","
\n"," \n"," 바이오니아 | \n"," 0.025680 | \n"," 0.057632 | \n"," 0.046225 | \n"," -0.089812 | \n"," -0.015942 | \n"," -0.317588 | \n","
\n"," \n"," 이수앱지스 | \n"," 0.029412 | \n"," 0.000000 | \n"," 0.024653 | \n"," -0.027778 | \n"," -0.019174 | \n"," -0.149616 | \n","
\n"," \n"," 파나진 | \n"," 0.010776 | \n"," 0.008602 | \n"," -0.022917 | \n"," -0.099808 | \n"," -0.192771 | \n"," -0.475978 | \n","
\n"," \n"," 나이벡 | \n"," 0.057143 | \n"," 0.110000 | \n"," 0.131498 | \n"," 0.140802 | \n"," 0.707692 | \n"," 0.149068 | \n","
\n"," \n"," 씨젠 | \n"," 0.011551 | \n"," 0.040747 | \n"," 0.122711 | \n"," 0.442353 | \n"," 0.377528 | \n"," 0.261317 | \n","
\n"," \n"," 아스타 | \n"," -0.020161 | \n"," -0.067179 | \n"," -0.074286 | \n"," -0.356291 | \n"," -0.041420 | \n"," -0.370466 | \n","
\n"," \n"," 세운메디칼 | \n"," 0.000000 | \n"," 0.001553 | \n"," 0.036977 | \n"," -0.034431 | \n"," -0.066570 | \n"," -0.161248 | \n","
\n"," \n"," 알리코제약 | \n"," 0.105882 | \n"," 0.014388 | \n"," 0.060150 | \n"," -0.037543 | \n"," 0.602273 | \n"," 0.184874 | \n","
\n"," \n"," 피씨엘 | \n"," 0.021546 | \n"," 0.010025 | \n"," 0.053595 | \n"," -0.122004 | \n"," 0.083333 | \n"," -0.085131 | \n","
\n"," \n"," 한스바이오메드 | \n"," 0.035270 | \n"," 0.052743 | \n"," 0.068522 | \n"," 0.091904 | \n"," 0.118834 | \n"," -0.105735 | \n","
\n"," \n"," 휴마시스 | \n"," 0.025830 | \n"," -0.007143 | \n"," 0.014599 | \n"," -0.014184 | \n"," -0.047945 | \n"," -0.268421 | \n","
\n"," \n"," 메디안디노스틱 | \n"," 0.020408 | \n"," 0.020408 | \n"," 0.000000 | \n"," -0.024390 | \n"," 0.002506 | \n"," 0.261830 | \n","
\n"," \n"," 녹십자엠에스 | \n"," 0.027397 | \n"," -0.003795 | \n"," 0.023392 | \n"," -0.275862 | \n"," 0.013514 | \n"," -0.414193 | \n","
\n"," \n"," 프로테옴텍 | \n"," -0.003571 | \n"," -0.041237 | \n"," -0.041237 | \n"," -0.097087 | \n"," -0.057432 | \n"," -0.066890 | \n","
\n"," \n","
\n","
"],"text/plain":[" 5 10 20 60 120 240\n","바디텍메드 -0.002068 0.013655 0.025505 0.128655 0.084270 -0.138393\n","수젠텍 0.039848 0.000000 -0.035211 -0.094215 -0.125997 -0.619444\n","엑세스바이오 0.022333 -0.026005 -0.011990 -0.021378 -0.072072 -0.492611\n","옵티팜 0.026107 -0.010941 0.018018 0.008929 -0.030043 -0.174429\n","메타바이오메드 0.041121 0.029575 0.067050 0.052930 0.127530 -0.068562\n","앱클론 0.095628 0.088195 0.049738 0.116992 0.029525 -0.343699\n","지노믹트리 0.061086 0.093240 -0.071287 0.132850 0.522727 -0.366216\n","바이오니아 0.025680 0.057632 0.046225 -0.089812 -0.015942 -0.317588\n","이수앱지스 0.029412 0.000000 0.024653 -0.027778 -0.019174 -0.149616\n","파나진 0.010776 0.008602 -0.022917 -0.099808 -0.192771 -0.475978\n","나이벡 0.057143 0.110000 0.131498 0.140802 0.707692 0.149068\n","씨젠 0.011551 0.040747 0.122711 0.442353 0.377528 0.261317\n","아스타 -0.020161 -0.067179 -0.074286 -0.356291 -0.041420 -0.370466\n","세운메디칼 0.000000 0.001553 0.036977 -0.034431 -0.066570 -0.161248\n","알리코제약 0.105882 0.014388 0.060150 -0.037543 0.602273 0.184874\n","피씨엘 0.021546 0.010025 0.053595 -0.122004 0.083333 -0.085131\n","한스바이오메드 0.035270 0.052743 0.068522 0.091904 0.118834 -0.105735\n","휴마시스 0.025830 -0.007143 0.014599 -0.014184 -0.047945 -0.268421\n","메디안디노스틱 0.020408 0.020408 0.000000 -0.024390 0.002506 0.261830\n","녹십자엠에스 0.027397 -0.003795 0.023392 -0.275862 0.013514 -0.414193\n","프로테옴텍 -0.003571 -0.041237 -0.041237 -0.097087 -0.057432 -0.066890"]},"metadata":{"tags":[]},"execution_count":42}]},{"cell_type":"code","metadata":{"id":"ooeCZX1Ix5C4","colab_type":"code","colab":{"base_uri":"https://localhost:8080/","height":143},"outputId":"e5143851-7081-461f-8b20-592462a782a5","executionInfo":{"status":"ok","timestamp":1582473702502,"user_tz":-540,"elapsed":989,"user":{"displayName":"Sean-June Lee","photoUrl":"https://lh3.googleusercontent.com/a-/AAuE7mA0z_4qCQ4H5MJ8ixUx69EmwIvNuV7BfS9FRIdfmCM=s64","userId":"12576390002043678893"}}},"source":["# 섹터 전체 기간별 수익률\n","df_rets.mean()"],"execution_count":47,"outputs":[{"output_type":"execute_result","data":{"text/plain":["5 0.030058\n","10 0.018308\n","20 0.023129\n","60 -0.008541\n","120 0.095256\n","240 -0.179121\n","dtype: float64"]},"metadata":{"tags":[]},"execution_count":47}]},{"cell_type":"markdown","metadata":{"id":"DYvJwj3IkDcr","colab_type":"text"},"source":["## 데이터프레임 스타일"]},{"cell_type":"code","metadata":{"id":"0uDrv9XNjdIp","colab_type":"code","colab":{"base_uri":"https://localhost:8080/","height":481},"outputId":"f000b41b-6588-4c04-b015-6c610327b808","executionInfo":{"status":"ok","timestamp":1582472690833,"user_tz":-540,"elapsed":24921,"user":{"displayName":"Sean-June Lee","photoUrl":"https://lh3.googleusercontent.com/a-/AAuE7mA0z_4qCQ4H5MJ8ixUx69EmwIvNuV7BfS9FRIdfmCM=s64","userId":"12576390002043678893"}}},"source":["def color_negative_red(val):\n"," color = 'red' if val < 0 else 'black'\n"," return 'color: %s' % color\n","\n","def highlight_max(s):\n"," is_max = s == s.max()\n"," return ['background-color: yellow' if v else '' for v in is_max]\n","\n","df_rets.style.\\\n"," applymap(color_negative_red).\\\n"," apply(highlight_max)"],"execution_count":43,"outputs":[{"output_type":"execute_result","data":{"text/html":[" | 5 | 10 | 20 | 60 | 120 | 240 |
\n"," \n"," 바디텍메드 | \n"," -0.00206825 | \n"," 0.0136555 | \n"," 0.0255048 | \n"," 0.128655 | \n"," 0.0842697 | \n"," -0.138393 | \n","
\n"," \n"," 수젠텍 | \n"," 0.0398482 | \n"," 0 | \n"," -0.0352113 | \n"," -0.0942149 | \n"," -0.125997 | \n"," -0.619444 | \n","
\n"," \n"," 엑세스바이오 | \n"," 0.0223325 | \n"," -0.0260047 | \n"," -0.0119904 | \n"," -0.0213777 | \n"," -0.0720721 | \n"," -0.492611 | \n","
\n"," \n"," 옵티팜 | \n"," 0.0261067 | \n"," -0.0109409 | \n"," 0.018018 | \n"," 0.00892857 | \n"," -0.0300429 | \n"," -0.174429 | \n","
\n"," \n"," 메타바이오메드 | \n"," 0.0411215 | \n"," 0.0295749 | \n"," 0.0670498 | \n"," 0.0529301 | \n"," 0.12753 | \n"," -0.0685619 | \n","
\n"," \n"," 앱클론 | \n"," 0.0956284 | \n"," 0.0881954 | \n"," 0.0497382 | \n"," 0.116992 | \n"," 0.029525 | \n"," -0.343699 | \n","
\n"," \n"," 지노믹트리 | \n"," 0.061086 | \n"," 0.0932401 | \n"," -0.0712871 | \n"," 0.13285 | \n"," 0.522727 | \n"," -0.366216 | \n","
\n"," \n"," 바이오니아 | \n"," 0.0256798 | \n"," 0.0576324 | \n"," 0.046225 | \n"," -0.0898123 | \n"," -0.015942 | \n"," -0.317588 | \n","
\n"," \n"," 이수앱지스 | \n"," 0.0294118 | \n"," 0 | \n"," 0.0246533 | \n"," -0.0277778 | \n"," -0.019174 | \n"," -0.149616 | \n","
\n"," \n"," 파나진 | \n"," 0.0107759 | \n"," 0.00860215 | \n"," -0.0229167 | \n"," -0.0998081 | \n"," -0.192771 | \n"," -0.475978 | \n","
\n"," \n"," 나이벡 | \n"," 0.0571429 | \n"," 0.11 | \n"," 0.131498 | \n"," 0.140802 | \n"," 0.707692 | \n"," 0.149068 | \n","
\n"," \n"," 씨젠 | \n"," 0.0115512 | \n"," 0.040747 | \n"," 0.122711 | \n"," 0.442353 | \n"," 0.377528 | \n"," 0.261317 | \n","
\n"," \n"," 아스타 | \n"," -0.0201613 | \n"," -0.0671785 | \n"," -0.0742857 | \n"," -0.356291 | \n"," -0.0414201 | \n"," -0.370466 | \n","
\n"," \n"," 세운메디칼 | \n"," 0 | \n"," 0.0015528 | \n"," 0.0369775 | \n"," -0.0344311 | \n"," -0.0665702 | \n"," -0.161248 | \n","
\n"," \n"," 알리코제약 | \n"," 0.105882 | \n"," 0.0143885 | \n"," 0.0601504 | \n"," -0.0375427 | \n"," 0.602273 | \n"," 0.184874 | \n","
\n"," \n"," 피씨엘 | \n"," 0.0215463 | \n"," 0.0100251 | \n"," 0.0535948 | \n"," -0.122004 | \n"," 0.0833333 | \n"," -0.0851305 | \n","
\n"," \n"," 한스바이오메드 | \n"," 0.0352697 | \n"," 0.0527426 | \n"," 0.0685225 | \n"," 0.0919037 | \n"," 0.118834 | \n"," -0.105735 | \n","
\n"," \n"," 휴마시스 | \n"," 0.0258303 | \n"," -0.00714286 | \n"," 0.0145985 | \n"," -0.0141844 | \n"," -0.0479452 | \n"," -0.268421 | \n","
\n"," \n"," 메디안디노스틱 | \n"," 0.0204082 | \n"," 0.0204082 | \n"," 0 | \n"," -0.0243902 | \n"," 0.00250627 | \n"," 0.26183 | \n","
\n"," \n"," 녹십자엠에스 | \n"," 0.0273973 | \n"," -0.00379507 | \n"," 0.0233918 | \n"," -0.275862 | \n"," 0.0135135 | \n"," -0.414193 | \n","
\n"," \n"," 프로테옴텍 | \n"," -0.00357143 | \n"," -0.0412371 | \n"," -0.0412371 | \n"," -0.0970874 | \n"," -0.0574324 | \n"," -0.0668896 | \n","
\n","
"],"text/plain":[""]},"metadata":{"tags":[]},"execution_count":43}]},{"cell_type":"code","metadata":{"id":"xo7oAoEEjdBA","colab_type":"code","colab":{}},"source":["## 엑셀로 저장\n","df_rets.style.\\\n"," applymap(color_negative_red).\\\n"," apply(highlight_max).\\\n"," to_excel('기간별수익률데이터(2019.12.30).xlsx', engine='openpyxl')"],"execution_count":0,"outputs":[]},{"cell_type":"code","metadata":{"id":"PhHYBcDmkOJM","colab_type":"code","colab":{}},"source":["# 구글 colab 에서 실행한 경우 엑셀 파일을 다음과 같이 다운로드 합니다.\n","\n","from google.colab import files\n","files.download('기간별수익률데이터(2019.12.30).xlsx')"],"execution_count":0,"outputs":[]},{"cell_type":"markdown","metadata":{"id":"2r_291L2CMv7","colab_type":"text"},"source":["#### 2020 [FinanceData.KR](http://financedata.kr) | [facebook.com/financedata](http://facebook.com/financedata)"]}]}