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

2022-09-25

概要

目的

日本取引グループが公開している「東証上場銘柄」から東証のコードをリストとして受け取る方法について説明します。

東証上場銘柄すべての株価を取得したい方は、「Pythonのyahoo-finance-api2用いて株価を取得する」をご参照ください。

方法

準備

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

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

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

ライブラリ

今回はPythonからExcelファイルを読み込むためにopenpyxlを使用します。pipからインストール実施してください。

pip install openpyxl

プログラム

以下の3つの関数を作成します。

  • exist_keyword_in_list()
    リスト内に指定の文字列が含まれるか調べる関数です。不要なマーケットデータを削除するために使用します。
  • load_worksheet()
    Excelファイルを読み込みます。
  • get_topix_codes()
    東証銘柄コード一覧のリストを取得します。

コードの詳細は以下になります。get_topix_codes関数の引数にExcelファイルのパスを入力することで東証銘柄コードの一覧のリストの取得ができます。

各定数については用途に応じて適切な値に変更してください。

  • SKIP_MARKETS
    市場・商品区分の中で不要なものはこちらに区分名を追加してください。例では東証上場企業の一覧が取得できるようにしています。
  • FILE_PATH
    ダウンロードしたExcelファイルのファイルパスを入力してください。

それでは各関数について説明をしていきます。

exist_keyword_in_list

こちらの関数はリスト内に指定の文字列が含まれるか調べる関数です。引数にリストをforループで回してキーワードと一致する値があればTrueを返します。

for word in words:
        if keyword in word:
            return True
    return False

load_worksheet

openpyxlでExcelファイルを操作できるようにするための関数です。ファイル名とシート名を指定することで対象のシートを読み込み可能な形式に変換します。3行のため次の関数内に処理をまとめても問題ありませんが、他のExcelファイルを読み取るスクリプトでも流用可能にするために関数を分けています。

workbook = openpyxl.load_workbook(excel_file_path)
worksheet = workbook[sheet_name]

get_topix_codes

東証銘柄コードのリストを取得するための関数です。Excelファイルを読み込んだ後、銘柄コードが記載された列を1行ずつ読み込みながら、読み取った値をリストに格納しています。

topix_codes = []
worksheet = load_worksheet(excel_file_path, "Sheet1")
for row in worksheet.iter_rows(min_row=ROW_DATA_START):
    market_name = str(row[COLUMN_MARKET].value)
    if not exist_keyword_in_list(market_name, SKIP_MARKETS):
        # 途中でスクリプトが中断した際に指定のコードをスキップができる
        if row[COLUMN_CODE].value <= min_topix_code:
            continue
        topix_codes.append(str(row[COLUMN_CODE].value))

min_topix_codeという引数にはスキップをしたい銘柄コードを入力します。例えば8000番以降の銘柄を取得したい場合は8000を引数に渡します。株価の取得などで途中で処理が止まった場合でも、続きから再開できるようにこのような引数を持たせています。デフォルトは0のため引数を指定しなければすべての銘柄コードが取得されます。

まとめ

「東証上場銘柄」から東証のコードをリストとして受け取る方法について説明しました。株式の分析において様々な場所で銘柄コードが必要になるかと思いますので活用してみてください。

次のステップ

株価を取得したいという方は「Pythonのyahoo-finance-api2用いて株価を取得する」をご参照ください。