はじめに
Pythonのyfinanceで東証上場銘柄の欲しい情報をカスタマイズした一覧を作ってみる。
目次
東証の上場銘柄一覧を取得する
東証の上場銘柄は下記から取得できる。
このページから一覧をエクセル形式でデータ取得できる。下記のようなデータ。
「コード」列の後ろに .T
を付ければシンボル名になる。上場の株式に絞りたい場合は 「市場・商品区分」で「プライム(内国株式)、スタンダード(内国株式)、グロース(内国株式)」で絞ればよい。
yfinanceを使って、上場株式の一覧を作る
yfinanceを使えば、Yahoo! ファイナンスの株価情報を取得できる。yfinanceの使い方は下記記事にまとめる。
本記事の例では、Ticker、会社名、現在価格、時価総額、配当金をリスト化した。その他、欲しい情報を追加すれば、自分専用カスタマイズでスクリーニングができる。会社によって存在しないデータがあり、KeyErrorが出ることもある。try-exceptを使ってデータがない場合は'-'を値として回避した。
数量が多いので、15分程度かかる。
パラメータ | 意味 |
---|---|
Ticker | info['underlyingSymbol'] |
会社名 | info['shortName'] |
現在価格 | info['currentPrice'] |
時価総額 | info['marketCap'] |
配当金 | info['trailingAnnualDividendRate'] |
example.py
import yfinance as yf
import pandas as pd
from tqdm import tqdm
df = pd.read_excel('data_j.xls')
# 市場・商品区分 の下記3つを抜き出し
# ・プライム(内国株式)
# ・グロース(内国株式)
# ・スタンダード(内国株式)
df_filter = df[df['市場・商品区分'].str.contains('内国株式')]
# コードの値をとる
dic_stock={'コード':[],'会社名':[],'現在価格':[],'時価総額':[],'配当金':[]}
for code in tqdm(df_filter['コード']):
# コードに.Tを付ける
code =f"{code}.T"
#yfinanceより企業シンボル、会社名を取得する
stock = yf.Ticker(code).info
# シンボルと会社名を追加していく
try:
dic_stock['コード'].append(stock['underlyingSymbol'])
except:
dic_stock['コード'].append('-')
try:
dic_stock['会社名'].append(stock['shortName'])
except:
dic_stock['会社名'].append('-')
try:
dic_stock['現在価格'].append(stock['currentPrice'])
except:
dic_stock['現在価格'].append('-')
try:
dic_stock['時価総額'].append(stock['marketCap'])
except:
dic_stock['時価総額'].append('-')
try:
dic_stock['配当金'].append(stock['trailingAnnualDividendRate'])
except:
dic_stock['配当金'].append('-')
#DataFrame化
df_stock = pd.DataFrame(dic_stock)
#Excel出力
df_stock.to_excel('東証株一覧.xlsx',sheet_name='株価',encoding='cp932',header=True,index=False)