728x90
반응형
기업공식채널 KIND 사이트에서 코스피와 코스닥에 상장되어있는 주식들을 불러오는 코드입니다.
먼저 pandas를 불러옵니다.
import pandas as pd
이후 코스피와 코스닥을 각각 불러옵니다.
url = 'https://kind.krx.co.kr/corpgeneral/corpList.do'
kospi_code = pd.read_html(url+"?method=download&marketType=stockMkt")[0]
kosdaq_code = pd.read_html(url+"?method=download&marketType=kosdaqMkt")[0]
kospi_code = kospi_code[['회사명','종목코드']]
kosdaq_code = kosdaq_code[['회사명','종목코드']]
kospi_code 안에 주식들의 회사명과 종목코드들이 잘 들어간 것을 확인할 수 있습니다. 그런데 종목코드는 6자리인데, 불러온 종목코드 중 일부는 4자리, 5자리인 것을 볼 수 있습니다. 이유는 앞부분에 있는 숫자 '0'이 지워졌기때문입니다.
In[10]: kospi_code
Out[12]:
회사명 종목코드
0 DRB동일 4840
1 DSR 155660
2 GS글로벌 1250
3 HDC현대산업개발 294870
4 KEC 92220
.. ... ...
811 현대코퍼레이션홀딩스 227840
812 화신 10690
813 휴켐스 69260
814 흥국화재 540
815 흥아해운 3280
[816 rows x 2 columns]
그렇기때문에 숫자 '0'이 사라진 종목들에게 다시 '0'을 붙여주고, 이후 주식 데이터를 불러올 때, 야후 파이낸스에서 가져올 예정인데, 이 때 한국의 주식종목에 대한 데이터를 불러올 때에는 코스피는 뒤에 '.KS'가, 코스닥은 '.KQ'가 필요하기때문에 이 역시 함께 붙여줄 함수를 만듭니다.
def make_code_ks(x):
x = str(x)
return '0'*(6-len(x))+x+'.KS'
def make_code_kq(x):
x = str(x)
return '0'*(6-len(x))+x+'.KQ'
kospi_code['종목코드'] = kospi_code['종목코드'].apply(make_code_ks)
kosdaq_code['종목코드'] = kosdaq_code['종목코드'].apply(make_code_kq)
kospi_code와 kosdaq-code를 읽어보면 종목코드들이 잘 완성되어있는 것을 확인할 수 있습니다.
회사명 종목코드
0 DRB동일 004840.KS
1 DSR 155660.KS
2 GS글로벌 001250.KS
3 HDC현대산업개발 294870.KS
4 KEC 092220.KS
.. ... ...
811 현대코퍼레이션홀딩스 227840.KS
812 화신 010690.KS
813 휴켐스 069260.KS
814 흥국화재 000540.KS
815 흥아해운 003280.KS
[816 rows x 2 columns]
회사명 종목코드
0 3S 060310.KQ
1 EDGC 245620.KQ
2 ES큐브 050120.KQ
3 HK이노엔 195940.KQ
4 JW신약 067290.KQ
... ... ...
1503 한라IMS 092460.KQ
1504 한스바이오메드 042520.KQ
1505 현대사료 016790.KQ
1506 홈센타홀딩스 060560.KQ
1507 힘스 238490.KQ
[1508 rows x 2 columns]
Process finished with exit code 0
아래는 위 코드들은 하나로 합친 코드입니다.
728x90
반응형
'코딩 갤러리 > 데이터분석' 카테고리의 다른 글
[파이썬] MACD 매매기법 백테스팅하고 그래프로 만들기 (0) | 2022.03.20 |
---|---|
[파이썬] 캔들 스틱 차트(Candlestick Chart) 그리기 (0) | 2021.09.17 |
[파이썬] 20일 이평선을 돌파한 주식종목 찾기 (2) | 2021.09.17 |
[파이썬] 코스피, 달러, 채권 간 상관관계 분석을 위한 코드 (0) | 2021.09.17 |
손실을 줄이는 자산 배분을 위한 상관분석(주식, 달러, 채권) (0) | 2021.09.13 |