東証上場銘柄一覧のExcelファイルから東証コードのリスト抽出する

2021-09-11

 yahoo-finance-api2を使用してすべての東証の株式データを取得したいということがあると思います。そこで、日本取引グループが公開している「東証上場銘柄」から東証のコードをリストとして受け取る方法について記載しました。
 yahoo-finance-api2の使い方については、「yahoo-finance-api2を用いたPythonによる株価の自動取得」を参照してください。

準備

 日本取引グループの公式サイトから東証上場銘柄の一覧をダウンロードしてきます。

 ダウンロードしてきたファイルは.xsl形式なので、webにある変換サイトを使用してxls→xlsxに変換します。

 data_j.xlsxとなっているため、任意でファイル名を変更します。私はダウンロードサイトを参考にして、「東証上場銘柄一覧(yyyy年m月末).xlsx」という名前にしています。

 Pythonの環境構築を行います。今回はopenpyxlを使用するため、pipからインストールします。

py -m pip install openpyxl

プログラム

  worksheetを読み取る関数(get_codes)を作成します。引数に先程ダウンロードした、xlsxファイルのファイルパスを渡します。
 skip_wordsには不要な市場・商品区分を指定をします。

  exist_wordsはtextにwords(リスト)の文字が含まれていればTrueを返します。

import openpyxl

def get_codes(file_path):    
    skip_words =['ETF・ETN', 'PRO Market']
    codes = []

    wb = openpyxl.load_workbook(file_path)
    ws = wb["Sheet1"]
    for row in ws.iter_rows(min_row=2):
        market = str(row[3].value)
        if (not exist_words(market, skip_words)):
            codes.append(str(row[1].value))
    return codes

def exist_words(text, words):
    exist = False
    for word in words:
        if (word in text):
            exist = True
    return exist

 あとはこちらで得られた東証のリストをFor文で回します。各コードに対して「.T」をつけてyahoo-finance-api2に渡せば株価の一覧データが得られます。保存する場合はcsv等に書き込みを行ってください。

 日経平均も取得したい場合はこちらに書いてある、日経のコードをリストに追加してください。