본문 바로가기

코인

미국주식 ticker 종목코드 불러오기 - 다모다란 교수 투자법 (1)

by 노이반 2023. 6. 21.

미국주식에 대해서 먼저 확인을 해볼 예정이기 때문에 미국주식의 모든 종목을 불러와야 한다.

 

여기저기 찾아보니까 종목을 불러오는 방법은 몇 개가 있는데,

 

1. 유료 api 활용해서 종목 정보 가져오기

2. 종목정보 엑셀(or csv)로 다운로드하여서 읽어 들이기

3. 크롤링해서 긁어오기 

 

등등 이 정도였는데, 운 좋게 새로운 걸 찾았습니다.

 

바로, FinanceDataReader라는 패키지입니다.

 

위 링크로 들어가 보면 아래와 같이 전반적인 내용과 원하는 다른 해외 주식에 대한 정보도 가져올 수 있게 

준비된 부분들을 볼 수 있습니다.

 

 

 

해당 패키지를 활용해서 미국상장종목 정보를 가져와보겠습니다.

 

설치방법은 일반적으로 터미널에서 하는 pip install finance-datareader 설치방법이 있습니다.

 

※ 패키지 이름과 설치할 때, 이름이 다른 경우는 종종 보신 일이 있을 수 있을 거예요.

이번에도 그런 경우니까 설치 패키지 이름 꼭 확인하고 설치하세요.

pip install finance-datareader

 

추가로, try - except를 봤더니 자꾸 써버릇하려고 아래와 같이 코드를 작성해서 해보기도 합니다.

try:
    import FinanceDataReader
except:
    !pip install finance-datareader

 

첫 번째, 방법으로 설치 완료하였고 vscode를 사용하고 있는 저는 보통. ipynb 파일 형식으로 먼저 만들어서 코드 실행해 보면서 테스트하는게 익숙해서 그렇게 파일을 만들었습니다.

이렇게 코드를 작성했고 코드는 하나씩 설명해 보겠습니다.

 

 

데이터프레임으로 확인하기 위해서 pandas를 같이 import 하였습니다.

import FinanceDataReader as fdr
import pandas as pd

 

미국주식의 각 거래소별로 데이터를 가져오기 위해서 fdr 패키지의 StockListing 모듈을 활용해서 불러왔습니다.

nasdaq = fdr.StockListing('NASDAQ')
nyse = fdr.StockListing('NYSE')
amex = fdr.StockListing('AMEX')

 

각각 불러온 데이터를 concat 함수를 사용해서 데이터프레임으로 이어 붙이고,

종목 ticker가 중복되는 경우에 대해서는 df.drop_duplicates를 활용해서 제거해주는 방식을 적용했습니다.

df = pd.concat([nasdaq, nyse, amex])

df1 = df.copy()
df1 = df1.drop_duplicates('Symbol')

print(len(df1))

 

 

저는 제가 실수를 할 경우가 항상 존재한다고 생각해서.

df.copy()로 데이터프레임 복제를 많이 사용하는 편입니다. 그래서 수정해보고 마지막에 마지막에 문제없을 경우에 

원래 데이터프레임에 적용하도록 수정하거나 해요.

 

결과를 보면 위와 같이 종목 ticker와 종목명 정보 등이 정리된 데이터 프레임을 볼 수 있습니다.

 

 

다음에는 불러온 종목 ticker를 활용해서 이전에 설명했던 CFO와 PCR을 구해보겠습니다.

 

댓글