본문 바로가기

코딩 갤러리/데이터분석

[파이썬] 코스피와 코스닥 종목코드 가져오기

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
반응형