본문 바로가기
# 연구실

상장사 이름과 코드 조회하기 함수

by lakedaimong 2023. 6. 13.

 

글 목록

     

     



     

    상장사 이름과 코드 조회하기 함수

    주식 데이터 분석을 위해서 상장된 종목들을 둘러보고 분석해 볼 예정입니다. 주가 정보는 키움 API 과 여러가지 python 패키지를 이용할 예정입니다. 먼저 간단하게 국내 시장에 상장된 주식의 수와 주식 코드를 조회하는 python 함수를 만들어 보고 앞으로 활용하도록 하겠습니다.

    import FinanceDataReader as fdr
    import pandas as pd
    
    # KRX : KRX 종목 전체
    # KOSPI : KOSPI 종목
    # KOSDAQ : KOSDAQ 종목
    # KONEX : KONEX 종목
    
    df_krx = fdr.StockListing('KRX') 
    # KRX를 다른 걸로 바꾸면 해당 시장의 데이터를 가져올 수 있습니다.
    
    print(df_krx.head(5)) # 5줄 출력
    print(df_krx.columns) # 열 이름
    print(df_krx.shape) # 데이터 수

    financeDataReader 패키지를 이용해서 상장된 주식의 정보를 불러와 보겠습니다.

         Code        ISU_CD      Name Market Dept   Close ChangeCode  Changes  \
    0  005930  KR7005930003      삼성전자  KOSPI        72000          1     1000   
    1  373220  KR7373220003  LG에너지솔루션  KOSPI       606000          2    -6000   
    2  000660  KR7000660001    SK하이닉스  KOSPI       119100          1     4300   
    3  207940  KR7207940008  삼성바이오로직스  KOSPI       788000          2    -7000   
    4  051910  KR7051910008      LG화학  KOSPI       742000          2    -4000   
    
       ChagesRatio    Open    High     Low   Volume        Amount  \
    0         1.41   71700   72100   71600  8485637  609649871800   
    1        -0.98  612000  613000  605000   128478   78105461000   
    2         3.75  117000  120100  117000  4897724  581181150350   
    3        -0.88  800000  804000  786000    42110   33459372000   
    4        -0.54  750000  751000  742000    97017   72246908000   
    
                Marcap      Stocks MarketId  
    0  429824343600000  5969782550      STK  
    1  141804000000000   234000000      STK  
    2   86705081671500   728002365      STK  
    3   56085112000000    71174000      STK  
    4   52379518506000    70592343      STK  
    Index(['Code', 'ISU_CD', 'Name', 'Market', 'Dept', 'Close', 'ChangeCode',
           'Changes', 'ChagesRatio', 'Open', 'High', 'Low', 'Volume', 'Amount',
           'Marcap', 'Stocks', 'MarketId'],
          dtype='object')
    (2720, 17)

    첫줄에 삼성전자가 있네요. 코드는 005930 이라는 것을 확인할 수 있습니다. 여기에서 종목의 이름과 코드를 빠르게 확인할 수 있는 함수를 만들어서 앞으로 특정 종목의 데이터를 분석할 때 활용할 예정입니다.

    financdDataReader의 stockListing을 이용해서 얻을 수 있는 데이터의 각 열의 이름(Index)을 아래쪽에서 확인할 수 있는데요. 영문으로 표시된 각 열은 다음의 내용을 의미합니다.

    1. Code 또는 ISU_CD: 주식 종목의 고유 코드를 나타냅니다. 이를 통해 특정 주식을 구분하고 조회할 수 있습니다.
    2. Name: 주식의 종목명을 나타냅니다.
    3. Market: 주식이 상장된 시장을 나타냅니다 (예: KOSPI, KOSDAQ 등).
    4. Dept: 해당 종목이 속한 부문 또는 산업을 나타냅니다.
    5. Close: 가장 최근 거래일의 종가를 나타냅니다.
    6. ChangeCode: 가장 최근 거래일의 가격 변동을 표시하는 코드입니다.
    7. Changes: 가장 최근 거래일의 종가와 이전 거래일의 종가 간의 차이를 나타냅니다.
    8. ChagesRatio: 가장 최근 거래일의 가격 변동률을 퍼센트(%)로 나타냅니다.
    9. Open: 가장 최근 거래일의 시가를 나타냅니다.
    10. High: 가장 최근 거래일의 최고가를 나타냅니다.
    11. Low: 가장 최근 거래일의 최저가를 나타냅니다.
    12. Volume: 가장 최근 거래일의 거래량을 나타냅니다.
    13. Amount: 가장 최근 거래일의 거래액을 나타냅니다.
    14. Marcap: 현재 시가총액을 나타냅니다. 시가총액은 주식의 현재 가격을 모든 주식 수로 곱한 값입니다.
    15. Stocks: 현재 발행된 주식의 총 수를 나타냅니다.
    16. MarketId: 시장의 고유 식별자를 나타냅니다.

    종목분석을 위해서 나머지 데이터들은 앞으로 활용하기로 하고 종목명으로 코드를 출력하는(또는 그 반대) 함수는 다음과 같습니다.

    import FinanceDataReader as fdr
    
    # KRX : KRX 종목 전체
    df_krx = fdr.StockListing('KRX') 
    
    def get_info(identifier):
        if identifier.isdigit(): # 주어진 identifier가 숫자로만 이루어진 문자열인지 확인
            # Code로 Name을 찾음
            result = df_krx[df_krx['Code'] == identifier]['Name']
        else:
            # Name으로 Code를 찾음
            result = df_krx[df_krx['Name'] == identifier]['Code']
        
        if not result.empty:
            return result.values[0] # 결과가 있다면 첫 번째 값을 반환
        else:
            return None # 결과가 없다면 None 반환
    
    # 테스트 코드
    print(get_info('005930'))  # 삼성전자 이름 출력
    print(get_info('삼성전자'))  # 삼성전자 코드 출력

    get_info 함수를 이용해서 이제 편하게 종목명과 코드를 확인할 수 있습니다.

     

     

    반응형

    댓글