본문 바로가기
Programming/Python

[Python] yfinance 미국 주식 데이터 추출하기

by 코딩하는 금융인 2024. 5. 21.

안녕하세요.

오늘은 야후 파이낸스 기반의 파이썬 wrapper 패키지 yfinance에 대해서 알아보겠습니다.

 

 yfinance 파이썬 야후 파이낸스 패키지

▣ yfinance

주식, 상품, 환율 등 다양한 금융 데이터를 무료로 제공해 주는 파이썬 패키지(비공식)

 

 - 다운로드 방법은 여느 패키지와 같으며(pip install) 주요 함수는 아래와 같음

 

: 주요 함수

 - Ticker module이 가장 주요한 함수로, 해당 모듈에서 다양한 재무 데이터를 얻을 수 있음

(참조 : yfinance - PyPI

함수 설명
download(tickers, start, end, group_by) 지정 기간의 주가 데이터 다운로드
Ticker(ticker).info 개별 종목 정보 반환
pdr_override() pandas-datareader 라이브러리 사용 설정

 

▣ yfinance 실습

 - 국내 주식은 네이버 증권이 있어 접근성이 좋지만, 미국 주식은 접근성이 제한적이기에 yfinance로 보고 싶은 미국 주식 데이터를 추출

 - 종목 티커 리스트는 위키피디아나 나스닥 사이트에서 가져올 수 있으며, 단점은 시간이 좀 오래 걸림

import pandas as pd

# S&P 500 종목 리스트 가져오기
sp500_tickers = pd.read_html("https://en.wikipedia.org/wiki/List_of_S%26P_500_companies")[0]["Symbol"].tolist()

# NASDAQ 종목 리스트 가져오기
nasdaq_tickers = pd.read_html("https://en.wikipedia.org/wiki/NASDAQ-100")[3]["Ticker"].tolist()

# 다우 존스 산업 평균 종목 리스트 가져오기
dow_tickers = pd.read_html("https://en.wikipedia.org/wiki/Dow_Jones_Industrial_Average")[1]["Symbol"].tolist()

 

 - S&P 500에서 시가배당률 상위 10개 종목 추출

import yfinance as yf
import pandas as pd

# S&P 500 종목 리스트 가져오기
sp500_tickers = pd.read_html("https://en.wikipedia.org/wiki/List_of_S%26P_500_companies")[0]["Symbol"].to_list()

# 각 종목의 시가배당률 계산하여 딕셔너리에 저장
dividend_yields = {}
for ticker in sp500_tickers:
    try:
        stock = yf.Ticker(ticker)
        info = stock.info
        dividend_yield = info.get('dividendYield', 0)
        dividend_yields[ticker] = dividend_yield
    except:
        pass

# 시가배당률 기준으로 정렬하고 상위 10개 종목 출력
sorted_yields = sorted(dividend_yields.items(), key=lambda x: x[1], reverse=True)
top_10 = sorted_yields[:10]

print("시가배당률 상위 10개 종목:")
for ticker, yield_value in top_10:
    print(f"{ticker}: {yield_value * 100:.2f}%")
시가배당률 상위 10개 종목:
MO: 8.51% VZ: 6.64% T: 6.38%
BXP: 6.20% CCI: 6.08% DOC: 6.03%
PFE: 5.87% KMI: 5.84% O: 5.59% WBA: 5.50%

 

 

반응형

댓글