MVP 구현
- MVP 구현 요구사항은 아래를 펼쳐서 확인 가능
- Yahoo Finance로 2020-01-01 ~ 2020.12.31 까지 1년 데이터를 한달 기준으로 가져오는 일을 수행 (코로나 기간)
- 국내 주식 10건, 해외 주식 10건에 대해서 데이터를 가져옴
# BACK
1. 국내주식, 해외주식 종목 데이터 고르기
- 국내 주식 10개
1. SK바이오팜: 현재 코로나19 치료제인 '카바페노스' 개발에 주력하고 있습니다.
2. 셀트리온: 코로나19 치료제 후보군 중 하나인 '셀트로나' 개발에 주력하고 있습니다.
3. 삼성바이오로직스: 코로나19 백신 개발에 참여하고 있으며, 전 세계적으로 수요가 높은 생물학적 제제를 생산하고 있습니다.
4. 한화솔루션: 마스크 필터용 기술력을 보유하고 있으며, 수소 경제 관련 사업을 추진하고 있습니다.
5. 삼성SDI: 전기차 배터리 제조사로서, 전기차 산업이 급부상하고 있는 지금 대표적인 기업입니다.
6. LG화학: 배터리 및 반도체, 디스플레이 등 전반적인 전자제품 산업에 필수적인 화학제품을 공급하고 있습니다.
7. SK이노베이션: 배터리 제조사로서, 전기차 산업에 대한 수요 증가로 인해 성장 가능성이 높습니다.
8. 두산솔루스: LED 조명 및 디스플레이 제조사로서, 코로나19로 인해 원격 교육 및 업무 등이 확대되면서 수요가 높아졌습니다.
9. 네이버: 코로나19로 인해 인터넷 이용이 증가하면서 검색, 쇼핑, 엔터테인먼트 등 다양한 분야에서 성장하고 있습니다.
10. 카카오: 모바일 메신저와 인터넷 서비스로 다양한 분야에서 성장하고 있으며, 코로나19 상황에서도 온라인 비즈니스
- 해외 주식 10개
1. Moderna Inc. (MRNA): 코로나19 백신을 개발하고 있는 미국 제약회사입니다.
2. Pfizer Inc. (PFE): 코로나19 백신을 개발하고 있는 미국 제약회사입니다.
3. Johnson & Johnson (JNJ): 코로나19 백신을 개발하고 있는 미국 제약회사입니다.
4. Zoom Video Communications Inc. (ZM): 코로나19로 인해 원격 회의 및 교육 등이 증가하면서 성장한 비디오 커뮤니케이션 회사입니다.
5. Amazon.com Inc. (AMZN): 코로나19로 인해 온라인 쇼핑 수요가 증가하면서 매출이 크게 증가하고 있는 회사입니다.
6. Shopify Inc. (SHOP): 코로나19로 인해 온라인 쇼핑 수요가 증가하면서 인기 있는 쇼핑 카트 소프트웨어 제공 회사입니다.
7. Netflix Inc. (NFLX): 코로나19로 인해 인터넷 TV 시청 수요가 증가하면서 성장한 회사입니다.
8. DocuSign Inc. (DOCU): 코로나19로 인해 디지털 문서 서명 수요가 증가하면서 인기 있는 회사입니다.
9. Tesla Inc. (TSLA): 코로나19 상황에서도 전기차 시장의 성장 가능성이 높아져, 인기 있는 기업 중 하나입니다.
10. Nvidia Corporation (NVDA): 코로나19 상황에서도 인공지능 및 게임 그래픽 카드 수요가 계속해서 증가하면서 인기 있는 기업 중 하나입니다.
2. 코로나시기 2020.01~2020.12 한달단위 데이터 (12턴) 넘겨주기
3. 뉴스 데이터 넘겨주기
4. 사용자 4명 더미데이터 넘겨주기
## 벡엔드 필요기능
- 주식 데이터를 크롤링해서 가져올수 있어야한다
- 주식 데이터를 프론트에 제공해야 한다.
- 데이터를 차트에 맞게 제공해야한다.
# FRONT
1. 페이지 UI
2. 종목을 누르면 해당 종목의 주가그래프가 나옴
3. 카드 누르면 진짜 보시겠습니까? alert
4. 카드 뒤집으면 해당 날짜의 뉴스 나옴
5. 카드 뒤집으면 내일꺼 오르는지 안오르는지 나옴
6. 사용자 4명 프로필이 나옴
Yahoo Finance
국내 주식 코드 찾기
- 한국어로 검색하면 제대로 된 Code가 나오지 않음
- 구글에 "[종목 명] 야후 파이낸스"로 검색해서 코드 확인
국내 주식 데이터 불러오기
import pandas as pd
import numpy as np
import yfinance as yf
import datetime
korea_company_list = ["302440.KS", "207940.KS", "009830.KS", "006400.KS", "051910.KS", "096775.KS", "33637L.KS", "035420.KS", "035720.KS"]
end = "2020-12-31"
start = "2020-01-01"
interval = "1mo"
korea_origin_data = yf.download(korea_company_list, start=start, end=end, interval = interval)
korea_origin_data
[*********************100%***********************] 10 of 10 completed
2 Failed downloads:
- 302440.KS: Data doesn't exist for startDate = 1577804400, endDate = 1609340400
- 091990.KQ: Period 'max' is invalid, must be one of ['1d', '5d']
Adj Close ... Volume
006400.KS 009830.KS 035420.KS 035720.KS 051910.KS 091990.KQ 096775.KS 207940.KS 302440.KS 33637L.KS ... 006400.KS 009830.KS 035420.KS 035720.KS 051910.KS 091990.KQ 096775.KS 207940.KS 302440.KS 33637L.KS
Date
2020-01-01 00:00:00 274629.000000 16850.000000 178188.984375 31970.916016 321816.90625 NaN 92620.335938 484500.0 NaN 21134.214844 ... 8081124 15460647 8845190 44811909 6191588 NaN 182257 2797715 NaN 2763992
2020-02-01 00:00:00 293534.625000 17392.203125 172729.140625 34584.886719 350899.62500 NaN 72337.781250 463500.0 NaN 20642.720703 ... 12487211 23409013 10704873 66339665 10551353 NaN 253723 3468975 NaN 1558807
2020-03-01 00:00:00 239305.328125 13056.331055 168758.343750 31267.152344 290827.12500 NaN 62246.460938 482000.0 NaN 17448.013672 ... 20793829 33258938 16165273 114366593 14821478 NaN 359065 7142278 NaN 913140
2020-04-01 00:00:00 284579.312500 14176.836914 196057.500000 36997.789062 359004.65625 NaN 72038.039062 581000.0 NaN 27130.433594 ... 16283734 23294449 14952320 82376673 10337323 NaN 295842 11251612 NaN 4367643
2020-05-01 00:00:00 357216.718750 15654.943359 224349.343750 52983.246094 372354.09375 NaN 79331.765625 622000.0 NaN 41924.382812 ... 14652159 46925062 21720941 163833168 11089158 NaN 251773 4396928 NaN 3487545
2020-06-01 00:00:00 361694.375000 18659.917969 265049.906250 53787.546875 467707.28125 NaN 92620.335938 775000.0 NaN 33569.000000 ... 15644002 61640015 26395703 137698767 15173513 NaN 1283874 7117256 NaN 2619277
2020-07-01 00:00:00 395525.468750 24718.332031 298801.531250 69069.234375 541605.93750 NaN 89722.828125 733000.0 NaN 37058.601562 ... 11234188 89341645 28482049 153811734 10339294 NaN 554717 4428613 NaN 1115892
2020-08-01 00:00:00 450252.250000 38725.386719 320144.531250 81837.492188 705613.37500 NaN 120896.015625 778000.0 NaN 31750.470703 ... 15288926 93174462 21055145 139531935 18722042 NaN 5268796 5099328 NaN 476510
2020-09-01 00:00:00 431346.625000 37271.367188 294334.437500 73291.820312 623609.68750 NaN 120396.445312 690000.0 NaN 34896.027344 ... 8024976 188225792 17195161 82765280 18533683 NaN 1037170 2383742 NaN 1711131
2020-10-01 00:00:00 439804.375000 42360.437500 287881.906250 66354.734375 582607.81250 NaN 106408.476562 682000.0 NaN 31160.677734 ... 6046931 112608316 13770718 50033321 8768134 NaN 216361 2187767 NaN 266329
2020-11-01 00:00:00 530352.312500 46286.289062 275473.187500 73995.578125 762825.31250 NaN 134883.984375 786000.0 NaN 36616.253906 ... 12128551 143979568 18816447 66344794 11489532 NaN 889997 3559210 NaN 643605
2020-12-01 00:00:00 624880.500000 46431.691406 290363.625000 78318.687500 785710.06250 NaN 136882.265625 826000.0 NaN 31013.232422 ... 7769057 74315883 13469782 67271794 8148365 NaN 457992 3553906 NaN 610314
12 rows × 60 columns
- SK 바이오 팜, 셀트리온 데이터가 없음
- 2개를 제외한 8개로 다시 수행
korea_company_list = ["207940.KS", "009830.KS", "006400.KS", "051910.KS", "096775.KS", "33637L.KS", "035420.KS", "035720.KS"]
korea_origin_data = yf.download(korea_company_list, start=start, end=end, interval = interval)
korea_origin_data
[*********************100%***********************] 8 of 8 completed
Adj Close Close ... Open Volume
006400.KS 009830.KS 035420.KS 035720.KS 051910.KS 096775.KS 207940.KS 33637L.KS 006400.KS 009830.KS ... 207940.KS 33637L.KS 006400.KS 009830.KS 035420.KS 035720.KS 051910.KS 096775.KS 207940.KS 33637L.KS
Date
2020-01-01 274629.00000 16850.000000 178188.984375 31970.914062 321816.93750 92620.335938 484500.0 21134.214844 276000.0 16850.000000 ... 433000.0 25200.0 8081124 15460647 8845190 44811909 6191588 182257 2797715 2763992
2020-02-01 293534.62500 17392.203125 172729.140625 34584.882812 350899.62500 72337.781250 463500.0 20642.720703 295000.0 17392.203125 ... 477000.0 20500.0 12487211 23409013 10704873 66339665 10551353 253723 3468975 1558807
2020-03-01 239305.34375 13056.331055 168758.359375 31267.152344 290827.12500 62246.460938 482000.0 17448.013672 240500.0 13056.331055 ... 463000.0 21000.0 20793829 33258938 16165273 114366593 14821478 359065 7142278 913140
2020-04-01 284579.34375 14176.836914 196057.500000 36997.789062 359004.65625 72038.039062 581000.0 27130.433594 286000.0 14176.836914 ... 481000.0 17450.0 16283734 23294449 14952320 82376673 10337323 295842 11251612 4367643
2020-05-01 357216.71875 15654.943359 224349.343750 52983.246094 372354.09375 79331.765625 622000.0 41924.382812 359000.0 15654.943359 ... 581000.0 27600.0 14652159 46925062 21720941 163833168 11089158 251773 4396928 3487545
2020-06-01 361694.34375 18659.917969 265049.875000 53787.542969 467707.25000 92620.335938 775000.0 33569.000000 363500.0 18659.917969 ... 629000.0 43400.0 15644002 61640015 26395703 137698767 15173513 1283874 7117256 2619277
2020-07-01 395525.46875 24718.332031 298801.562500 69069.226562 541606.00000 89722.828125 733000.0 37058.601562 397500.0 24718.332031 ... 775000.0 33950.0 11234188 89341645 28482049 153811734 10339294 554717 4428613 1115892
2020-08-01 450252.25000 38725.386719 320144.531250 81837.500000 705613.37500 120896.015625 778000.0 31750.470703 452500.0 38725.386719 ... 728000.0 37400.0 15288926 93174462 21055145 139531935 18722042 5268796 5099328 476510
2020-09-01 431346.65625 37271.367188 294334.437500 73291.812500 623609.68750 120396.445312 690000.0 34896.027344 433500.0 37271.367188 ... 775000.0 32300.0 8024976 188225792 17195161 82765280 18533683 1037170 2383742 1711131
2020-10-01 439804.43750 42360.437500 287881.906250 66354.726562 582607.75000 106408.476562 682000.0 31160.677734 442000.0 42360.437500 ... 690000.0 35500.0 6046931 112608316 13770718 50033321 8768134 216361 2187767 266329
2020-11-01 530352.37500 46286.289062 275473.187500 73995.578125 762825.25000 134883.984375 786000.0 36616.253906 533000.0 46286.289062 ... 691000.0 33800.0 12128551 143979568 18816447 66344794 11489532 889997 3559210 643605
2020-12-01 624880.50000 46431.691406 290363.625000 78318.687500 785710.06250 136882.265625 826000.0 31013.232422 628000.0 46431.691406 ... 794000.0 37050.0 7769057 74315883 13469782 67271794 8148365 457992 3553906 610314
12 rows × 48 columns
해외 데이터 수집
- 해외 주식 코드가 있어서 코드 수집 필요 없음
- 동일한 방법으로 수집
overseas_company_list = ["MRNA", "PFE", "JNJ", "ZM", "AMZN", "SHOP", "NFLX", "DOCU", "TSLA", "NVDA"]
overseas_origin_data = yf.download(overseas_company_list, start=start, end=end, interval = interval)
overseas_origin_data
[*********************100%***********************] 10 of 10 completed
Adj Close ... Volume
AMZN DOCU JNJ MRNA NFLX NVDA PFE SHOP TSLA ZM ... AMZN DOCU JNJ MRNA NFLX NVDA PFE SHOP TSLA ZM
Date
2020-01-01 100.435997 78.510002 136.764420 20.510000 345.089996 58.903553 31.351860 46.566002 43.371334 76.300003 ... 1693966000 41361500 150462900 73539900 169874000 612541200 531835964 376433000 6108277500 47782500
2020-02-01 94.187500 86.309998 123.544571 25.930000 369.029999 67.284538 28.423260 46.331001 44.532665 105.000000 ... 1850202000 34275400 147288300 323753900 114056000 1184865200 586886279 547234000 7088802000 143712000
2020-03-01 97.486000 92.400002 121.235176 29.950001 375.500000 65.711906 27.759882 41.693001 34.933334 146.119995 ... 3276182000 88709000 355927400 397926200 201979100 1577395200 1019616939 702948000 6314025000 335926000
2020-04-01 123.699997 104.750000 138.718216 45.990002 419.850006 72.861435 32.624668 63.229000 52.125332 135.169998 ... 2492196000 70328100 234380900 310717800 225111600 1127830400 533383339 870616000 5722162500 371457600
2020-05-01 122.118500 139.740005 137.525620 61.500000 419.730011 88.501663 32.480083 75.779999 55.666668 179.479996 ... 1651688000 73063500 136206100 650301000 135055800 1254887600 474627691 831037000 4090554000 168661500
2020-06-01 137.940994 172.210007 130.919617 64.209999 455.040009 94.706398 28.088070 94.919998 71.987335 253.539993 ... 1756366000 136450500 174066600 346314400 117279900 971946400 811003042 554784000 3836590500 312304200
2020-07-01 158.233994 216.830002 135.695389 74.099998 488.880005 105.892822 33.052876 102.400002 95.384003 253.910004 ... 2550040000 115534400 137880400 734188500 232206300 809445200 824072643 670953000 5679502500 133741400
2020-08-01 172.548004 223.000000 142.817154 64.889999 529.559998 133.424088 32.777447 106.641998 166.106674 325.100006 ... 1670332000 69337200 109956200 291350000 116261900 967254400 470078941 348649000 4672135200 136638900
2020-09-01 157.436493 215.240005 139.522446 70.750000 500.029999 134.980362 31.832026 102.296997 143.003326 470.109985 ... 2317986000 208479300 138799800 205003700 118796900 1585655200 510247724 488876000 5208854400 339866800
2020-10-01 151.807495 202.250000 128.492218 67.470001 475.739990 125.076683 30.773853 92.542999 129.346664 460.910004 ... 2324522000 78849400 137284700 139744400 154302400 802235600 555231707 311212000 2500999200 200150700
2020-11-01 158.401993 227.880005 135.586411 152.740005 490.700012 133.733475 35.022816 109.038002 189.199997 478.359985 ... 1816210000 71956600 153635100 431438200 91788900 759482000 1091575597 316236000 2347796400 213277300
2020-12-01 162.846497 222.300003 148.513077 104.470001 540.729980 130.275742 33.997593 113.195000 235.223328 337.320007 ... 1551124000 94463700 158925000 756621500 77564100 512099600 1161346900 309581000 3589038000 150340600
12 rows × 60 columns
- 데이터 모두 정상적으로 받아지는 것을 확인할 수 있음
데이터 가공
- 받아온 데이터는 회사를 기준으로 되어있지 않아 개별 처리가 불편함
- 데이터를 가공해 회사를 기준으로 조회할 수 있게 변경
data_columns = set(list(map(lambda x: ' '.join(x[:1]), korea_origin_data.columns)))
print(data_columns)
korea_company_datas = dict()
for company in korea_company_list:
tmp_df = pd.DataFrame()
for column in data_columns:
tmp_df[column] = korea_origin_data[column, company]
korea_company_datas[company] = tmp_df
korea_company_datas
{'Volume', 'Adj Close', 'High', 'Open', 'Low', 'Close'}
Output exceeds the size limit. Open the full output data in a text editor
{'207940.KS': Volume Adj Close High Open Low Close
Date
2020-01-01 2797715 484500.0 500000.0 433000.0 401000.0 484500.0
2020-02-01 3468975 463500.0 542000.0 477000.0 455500.0 463500.0
2020-03-01 7142278 482000.0 514000.0 463000.0 352000.0 482000.0
2020-04-01 11251612 581000.0 608000.0 481000.0 449000.0 581000.0
2020-05-01 4396928 622000.0 645000.0 581000.0 555000.0 622000.0
2020-06-01 7117256 775000.0 863000.0 629000.0 617000.0 775000.0
2020-07-01 4428613 733000.0 797000.0 775000.0 716000.0 733000.0
2020-08-01 5099328 778000.0 854000.0 728000.0 717000.0 778000.0
2020-09-01 2383742 690000.0 802000.0 775000.0 665000.0 690000.0
2020-10-01 2187767 682000.0 728000.0 690000.0 624000.0 682000.0
2020-11-01 3559210 786000.0 833000.0 691000.0 682000.0 786000.0
2020-12-01 3553906 826000.0 880000.0 794000.0 777000.0 826000.0,
'009830.KS': Volume Adj Close High Open Low \
Date
2020-01-01 15460647 16850.000000 20250.000000 18850.000000 16850.000000
2020-02-01 23409013 17392.203125 20461.414062 16450.000000 16150.000000
2020-03-01 33258938 13056.331055 18512.708984 17635.791016 9129.688477
2020-04-01 23294449 14176.836914 14566.578125 12958.895508 12081.978516
2020-05-01 46925062 15654.943359 17157.429688 14176.836914 13328.512695
2020-06-01 61640015 18659.917969 19871.599609 16285.018555 16091.149414
2020-07-01 89341645 24718.332031 27093.230469 18805.320312 17932.908203
2020-08-01 93174462 38725.386719 39888.601562 24718.332031 24233.658203
2020-09-01 188225792 37271.367188 50696.816406 39016.191406 33587.851562
...
2020-08-01 81998.585938
2020-09-01 73436.085938
2020-10-01 66485.343750
2020-11-01 74141.234375
2020-12-01 78472.851562 }
korea_company_datas["035720.KS"]
Volume Adj Close High Open Low Close
Date
2020-01-01 44811909 31970.914062 34753.703125 30925.757812 30220.611328 32033.847656
2020-02-01 66339665 34584.882812 38581.644531 31429.435547 31429.435547 34652.964844
2020-03-01 114366593 31267.152344 36869.144531 35156.644531 25687.519531 31328.699219
2020-04-01 82376673 36997.789062 37977.234375 31429.435547 30019.140625 37070.617188
2020-05-01 163833168 52983.246094 56311.070312 37070.617188 36264.734375 53087.539062
2020-06-01 137698767 53787.542969 58225.042969 53087.539062 49763.273438 53893.421875
2020-07-01 153811734 69069.226562 74141.234375 54699.304688 53893.421875 69205.195312
2020-08-01 139531935 81837.500000 84718.445312 70011.078125 68802.257812 81998.585938
2020-09-01 82765280 73291.812500 83811.828125 83308.148438 69809.609375 73436.085938
2020-10-01 50033321 66354.726562 77969.171875 73436.085938 65377.253906 66485.343750
2020-11-01 66344794 73995.578125 76659.617188 66586.078125 66082.398438 74141.234375
2020-12-01 67271794 78318.687500 79580.937500 74443.437500 73637.554688 78472.851562
data_columns = set(list(map(lambda x: ' '.join(x[:1]), overseas_origin_data.columns)))
print(data_columns)
overseas_company_datas = dict()
for company in overseas_company_list:
tmp_df = pd.DataFrame()
for column in data_columns:
tmp_df[column] = overseas_origin_data[column, company]
overseas_company_datas[company] = tmp_df
overseas_company_datas
overseas_company_datas["MRNA"]
Volume Adj Close High Open Low Close
Date
2020-01-01 73539900 20.510000 23.500000 19.570000 17.680000 20.510000
2020-02-01 323753900 25.930000 36.000000 20.660000 17.910000 25.930000
2020-03-01 397926200 29.950001 34.980000 27.000000 19.309999 29.950001
2020-04-01 310717800 45.990002 56.380001 30.049999 29.440001 45.990002
2020-05-01 650301000 61.500000 87.000000 48.709999 46.130001 61.500000
2020-06-01 346314400 64.209999 67.000000 62.759998 55.355000 64.209999
2020-07-01 734188500 74.099998 95.209999 63.000000 55.810001 74.099998
2020-08-01 291350000 64.889999 78.620003 74.980003 62.540001 64.889999
2020-09-01 205003700 70.750000 75.389999 63.540001 54.209999 70.750000
2020-10-01 139744400 67.470001 81.370003 69.570000 65.489998 67.470001
2020-11-01 431438200 152.740005 153.869995 68.019997 66.550003 152.740005
2020-12-01 756621500 104.470001 178.500000 177.660004 102.660004 104.470001
데이터 묶기
- korea_company_datas는 dict이고 key는 String, Value는 DataFrame
- 하나의 DataFrame으로 묶어서 저장할 필요가 있음
- 하나의 DataFrame으로 묶고 분별하기 위해서 Date, Company Code를 추가함
df = pd.DataFrame()
for company in korea_company_list:
korea_company_datas[company]["Date"] = korea_company_datas[company].index
korea_company_datas[company]["Code"] = company
df = pd.concat([df, korea_company_datas[company]], join='outer')
df.reset_index(drop=True, inplace=True)
df
``` python
Volume Adj Close High Open Low Close Date Code
0 2797715 484500.00000 500000.00000 433000.00000 401000.00000 484500.00000 2020-01-01 207940.KS
1 3468975 463500.00000 542000.00000 477000.00000 455500.00000 463500.00000 2020-02-01 207940.KS
2 7142278 482000.00000 514000.00000 463000.00000 352000.00000 482000.00000 2020-03-01 207940.KS
3 11251612 581000.00000 608000.00000 481000.00000 449000.00000 581000.00000 2020-04-01 207940.KS
4 4396928 622000.00000 645000.00000 581000.00000 555000.00000 622000.00000 2020-05-01 207940.KS
5 7117256 775000.00000 863000.00000 629000.00000 617000.00000 775000.00000 2020-06-01 207940.KS
6 4428613 733000.00000 797000.00000 775000.00000 716000.00000 733000.00000 2020-07-01 207940.KS
7 5099328 778000.00000 854000.00000 728000.00000 717000.00000 778000.00000 2020-08-01 207940.KS
8 2383742 690000.00000 802000.00000 775000.00000 665000.00000 690000.00000 2020-09-01 207940.KS
9 2187767 682000.00000 728000.00000 690000.00000 624000.00000 682000.00000 2020-10-01 207940.KS
10 3559210 786000.00000 833000.00000 691000.00000 682000.00000 786000.00000 2020-11-01 207940.KS
11 3553906 826000.00000 880000.00000 794000.00000 777000.00000 826000.00000 2020-12-01 207940.KS
12 15460647 16850.00000 20250.00000 18850.00000 16850.00000 16850.00000 2020-01-01 009830.KS
13 23409013 17392.20312 20461.41406 16450.00000 16150.00000 17392.20312 2020-02-01 009830.KS
14 33258938 13056.33105 18512.70898 17635.79102 9129.68848 13056.33105 2020-03-01 009830.KS
15 23294449 14176.83691 14566.57812 12958.89551 12081.97852 14176.83691 2020-04-01 009830.KS
16 46925062 15654.94336 17157.42969 14176.83691 13328.51270 15654.94336 2020-05-01 009830.KS
17 61640015 18659.91797 19871.59961 16285.01855 16091.14941 18659.91797 2020-06-01 009830.KS
18 89341645 24718.33203 27093.23047 18805.32031 17932.90820 24718.33203 2020-07-01 009830.KS
19 93174462 38725.38672 39888.60156 24718.33203 24233.65820 38725.38672 2020-08-01 009830.KS
20 188225792 37271.36719 50696.81641 39016.19141 33587.85156 37271.36719 2020-09-01 009830.KS
21 112608316 42360.43750 48951.99219 37271.36719 37271.36719 42360.43750 2020-10-01 009830.KS
22 143979568 46286.28906 52344.70312 42990.51172 40034.00391 46286.28906 2020-11-01 009830.KS
23 74315883 46431.69141 47207.16797 44977.67188 42554.30469 46431.69141 2020-12-01 009830.KS
24 8081124 274629.00000 296500.00000 236000.00000 226000.00000 276000.00000 2020-01-01 006400.KS
25 12487211 293534.62500 351000.00000 271500.00000 268000.00000 295000.00000 2020-02-01 006400.KS
26 20793829 239305.34375 324500.00000 296500.00000 180000.00000 240500.00000 2020-03-01 006400.KS
27 16283734 284579.34375 305000.00000 240000.00000 222000.00000 286000.00000 2020-04-01 006400.KS
28 14652159 357216.71875 393500.00000 286000.00000 275500.00000 359000.00000 2020-05-01 006400.KS
29 15644002 361694.34375 399000.00000 361000.00000 348500.00000 363500.00000 2020-06-01 006400.KS
30 11234188 395525.46875 403500.00000 370000.00000 364000.00000 397500.00000 2020-07-01 006400.KS
31 15288926 450252.25000 509000.00000 398000.00000 394000.00000 452500.00000 2020-08-01 006400.KS
32 8024976 431346.65625 463000.00000 453000.00000 406000.00000 433500.00000 2020-09-01 006400.KS
33 6046931 439804.43750 454000.00000 433500.00000 406500.00000 442000.00000 2020-10-01 006400.KS
34 12128551 530352.37500 563000.00000 447500.00000 427000.00000 533000.00000 2020-11-01 006400.KS
35 7769057 624880.50000 630000.00000 543000.00000 535000.00000 628000.00000 2020-12-01 006400.KS
36 6191588 321816.93750 359000.00000 317500.00000 301500.00000 337500.00000 2020-01-01 051910.KS
37 10551353 350899.62500 422500.00000 328500.00000 325500.00000 368000.00000 2020-02-01 051910.KS
38 14821478 290827.12500 412000.00000 368500.00000 230000.00000 305000.00000 2020-03-01 051910.KS
39 10337323 359004.65625 376500.00000 305000.00000 280000.00000 376500.00000 2020-04-01 051910.KS
40 11089158 372354.09375 416000.00000 376500.00000 330000.00000 390500.00000 2020-05-01 051910.KS
41 15173513 467707.25000 520000.00000 391000.00000 389500.00000 490500.00000 2020-06-01 051910.KS
42 10339294 541606.00000 580000.00000 499000.00000 487500.00000 568000.00000 2020-07-01 051910.KS
43 18722042 705613.37500 785000.00000 578000.00000 577000.00000 740000.00000 2020-08-01 051910.KS
44 18533683 623609.68750 774000.00000 741000.00000 604000.00000 654000.00000 2020-09-01 051910.KS
45 8768134 582607.75000 698000.00000 654000.00000 605000.00000 611000.00000 2020-10-01 051910.KS
46 11489532 762825.25000 833000.00000 609000.00000 588000.00000 800000.00000 2020-11-01 051910.KS
47 8148365 785710.06250 863000.00000 808000.00000 777000.00000 824000.00000 2020-12-01 051910.KS
48 182257 92620.33594 112500.00000 112000.00000 91100.00000 92700.00000 2020-01-01 096775.KS
49 253723 72337.78125 97400.00000 92000.00000 71100.00000 72400.00000 2020-02-01 096775.KS
50 359065 62246.46094 74500.00000 71200.00000 42100.00000 62300.00000 2020-03-01 096775.KS
51 295842 72038.03906 73900.00000 62000.00000 60100.00000 72100.00000 2020-04-01 096775.KS
52 251773 79331.76562 83300.00000 72100.00000 69000.00000 79400.00000 2020-05-01 096775.KS
53 1283874 92620.33594 107500.00000 80200.00000 80200.00000 92700.00000 2020-06-01 096775.KS
54 554717 89722.82812 96900.00000 93800.00000 87600.00000 89800.00000 2020-07-01 096775.KS
55 5268796 120896.01562 213500.00000 89800.00000 89800.00000 121000.00000 2020-08-01 096775.KS
56 1037170 120396.44531 144500.00000 121000.00000 115000.00000 120500.00000 2020-09-01 096775.KS
57 216361 106408.47656 127000.00000 120500.00000 106000.00000 106500.00000 2020-10-01 096775.KS
58 889997 134883.98438 142000.00000 103500.00000 101500.00000 135000.00000 2020-11-01 096775.KS
59 457992 136882.26562 140000.00000 136500.00000 130500.00000 137000.00000 2020-12-01 096775.KS
60 2763992 21134.21484 28250.00000 25200.00000 20700.00000 21500.00000 2020-01-01 33637L.KS
61 1558807 20642.72070 27400.00000 20500.00000 19950.00000 21000.00000 2020-02-01 33637L.KS
62 913140 17448.01367 23300.00000 21000.00000 9710.00000 17750.00000 2020-03-01 33637L.KS
63 4367643 27130.43359 32650.00000 17450.00000 16600.00000 27600.00000 2020-04-01 33637L.KS
64 3487545 41924.38281 47650.00000 27600.00000 25550.00000 42650.00000 2020-05-01 33637L.KS
65 2619277 33569.00000 73100.00000 43400.00000 33800.00000 34150.00000 2020-06-01 33637L.KS
66 1115892 37058.60156 43350.00000 33950.00000 33000.00000 37700.00000 2020-07-01 33637L.KS
67 476510 31750.47070 41850.00000 37400.00000 30600.00000 32300.00000 2020-08-01 33637L.KS
68 1711131 34896.02734 52800.00000 32300.00000 31000.00000 35500.00000 2020-09-01 33637L.KS
69 266329 31160.67773 42000.00000 35500.00000 30700.00000 31700.00000 2020-10-01 33637L.KS
70 643605 36616.25391 45750.00000 33800.00000 31650.00000 37250.00000 2020-11-01 33637L.KS
71 610314 31013.23242 42000.00000 37050.00000 30700.00000 31550.00000 2020-12-01 33637L.KS
72 8845190 178188.98438 194500.00000 186500.00000 175000.00000 179500.00000 2020-01-01 035420.KS
73 10704873 172729.14062 191500.00000 178000.00000 172000.00000 174000.00000 2020-02-01 035420.KS
74 16165273 168758.35938 181000.00000 175000.00000 135000.00000 170000.00000 2020-03-01 035420.KS
75 14952320 196057.50000 200000.00000 166500.00000 162500.00000 197500.00000 2020-04-01 035420.KS
76 21720941 224349.34375 246000.00000 197500.00000 193500.00000 226000.00000 2020-05-01 035420.KS
77 26395703 265049.87500 289000.00000 233500.00000 225000.00000 267000.00000 2020-06-01 035420.KS
78 28482049 298801.56250 308500.00000 270000.00000 260500.00000 301000.00000 2020-07-01 035420.KS
79 21055145 320144.53125 347000.00000 301500.00000 299000.00000 322500.00000 2020-08-01 035420.KS
80 17195161 294334.43750 339500.00000 322500.00000 282000.00000 296500.00000 2020-09-01 035420.KS
81 13770718 287881.90625 307500.00000 296500.00000 280500.00000 290000.00000 2020-10-01 035420.KS
82 18816447 275473.18750 307000.00000 292000.00000 273500.00000 277500.00000 2020-11-01 035420.KS
83 13469782 290363.62500 300500.00000 282000.00000 280000.00000 292500.00000 2020-12-01 035420.KS
84 44811909 31970.91406 34753.70312 30925.75781 30220.61133 32033.84766 2020-01-01 035720.KS
85 66339665 34584.88281 38581.64453 31429.43555 31429.43555 34652.96484 2020-02-01 035720.KS
86 114366593 31267.15234 36869.14453 35156.64453 25687.51953 31328.69922 2020-03-01 035720.KS
87 82376673 36997.78906 37977.23438 31429.43555 30019.14062 37070.61719 2020-04-01 035720.KS
88 163833168 52983.24609 56311.07031 37070.61719 36264.73438 53087.53906 2020-05-01 035720.KS
89 137698767 53787.54297 58225.04297 53087.53906 49763.27344 53893.42188 2020-06-01 035720.KS
90 153811734 69069.22656 74141.23438 54699.30469 53893.42188 69205.19531 2020-07-01 035720.KS
91 139531935 81837.50000 84718.44531 70011.07812 68802.25781 81998.58594 2020-08-01 035720.KS
92 82765280 73291.81250 83811.82812 83308.14844 69809.60938 73436.08594 2020-09-01 035720.KS
93 50033321 66354.72656 77969.17188 73436.08594 65377.25391 66485.34375 2020-10-01 035720.KS
94 66344794 73995.57812 76659.61719 66586.07812 66082.39844 74141.23438 2020-11-01 035720.KS
95 67271794 78318.68750 79580.93750 74443.43750 73637.55469 78472.85156 2020-12-01 035720.KS
df2 = pd.DataFrame()
for company in overseas_company_list:
overseas_company_datas[company]["Date"] = overseas_company_datas[company].index
overseas_company_datas[company]["Code"] = company
df2 = pd.concat([df2, overseas_company_datas[company]], join='outer')
df2.reset_index(drop=True, inplace=True)
df2
Volume Adj Close High Open Low Close Date Code
0 73539900 20.51000 23.50000 19.57000 17.68000 20.51000 2020-01-01 MRNA
1 323753900 25.93000 36.00000 20.66000 17.91000 25.93000 2020-02-01 MRNA
2 397926200 29.95000 34.98000 27.00000 19.31000 29.95000 2020-03-01 MRNA
3 310717800 45.99000 56.38000 30.05000 29.44000 45.99000 2020-04-01 MRNA
4 650301000 61.50000 87.00000 48.71000 46.13000 61.50000 2020-05-01 MRNA
... ... ... ... ... ... ... ... ...
115 967254400 133.42409 135.75000 107.32500 107.15250 133.74500 2020-08-01 NVDA
116 1585655200 134.98036 147.26750 134.80000 117.04250 135.30499 2020-09-01 NVDA
117 802235600 125.07668 143.48500 137.58000 123.00000 125.34000 2020-10-01 NVDA
118 759482000 133.73347 146.91499 126.57750 123.95000 134.01500 2020-11-01 NVDA
119 512099600 130.27574 137.31250 134.92250 127.63250 130.55000 2020-12-01 NVDA
120 rows × 8 columns
데이터 저장
- pd.to_csv()를 이용해서 csv 파일로 저장
df1.to_csv("C:/Users/SSAFY/Desktop/Project2/API_SCRIPT/korea.csv", sep=',', encoding='utf-8')
df2.to_csv("C:/Users/SSAFY/Desktop/Project2/API_SCRIPT/overseas.csv", sep=',', encoding='utf-8')
정상 저장 확인
![](https://velog.velcdn.com/images/comet_strike/post/56d75f2f-3142-4762-82f5-90a9a320a0a3/image.png)