글 목록
상장사 이름과 코드 조회하기 함수
주식 데이터 분석을 위해서 상장된 종목들을 둘러보고 분석해 볼 예정입니다. 주가 정보는 키움 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)을 아래쪽에서 확인할 수 있는데요. 영문으로 표시된 각 열은 다음의 내용을 의미합니다.
Code
또는ISU_CD
: 주식 종목의 고유 코드를 나타냅니다. 이를 통해 특정 주식을 구분하고 조회할 수 있습니다.Name
: 주식의 종목명을 나타냅니다.Market
: 주식이 상장된 시장을 나타냅니다 (예: KOSPI, KOSDAQ 등).Dept
: 해당 종목이 속한 부문 또는 산업을 나타냅니다.Close
: 가장 최근 거래일의 종가를 나타냅니다.ChangeCode
: 가장 최근 거래일의 가격 변동을 표시하는 코드입니다.Changes
: 가장 최근 거래일의 종가와 이전 거래일의 종가 간의 차이를 나타냅니다.ChagesRatio
: 가장 최근 거래일의 가격 변동률을 퍼센트(%)로 나타냅니다.Open
: 가장 최근 거래일의 시가를 나타냅니다.High
: 가장 최근 거래일의 최고가를 나타냅니다.Low
: 가장 최근 거래일의 최저가를 나타냅니다.Volume
: 가장 최근 거래일의 거래량을 나타냅니다.Amount
: 가장 최근 거래일의 거래액을 나타냅니다.Marcap
: 현재 시가총액을 나타냅니다. 시가총액은 주식의 현재 가격을 모든 주식 수로 곱한 값입니다.Stocks
: 현재 발행된 주식의 총 수를 나타냅니다.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 함수를 이용해서 이제 편하게 종목명과 코드를 확인할 수 있습니다.

반응형
'# 연구실' 카테고리의 다른 글
파이썬의 문자열과 불 자료형 (0) | 2023.06.12 |
---|---|
파이썬의 변수와 숫자 자료형 (0) | 2023.06.12 |
파이썬 데이터 분석을 위한 NumPy (0) | 2023.02.28 |
크롬드라이버 chrome 자동화 브라우저 열기 (0) | 2022.10.15 |
데이터 분석 도구 준비 - 코랩 (0) | 2022.07.23 |
댓글