J-Quants APIで製造メーカー株を自動スクリーニング!PythonでPER・PBRを一括取得する方法【2026年版】

Python実装・コード

先月、トヨタの決算を追いかけていたんですが、気づいたら子供のお風呂タイムになっていて。。。決算内容を半分しか読めないまま終わってしまいました。「そうだ、割安株のスクリーニングを自動化すれば毎回追いかけなくても済むのでは?」と思ったのがこの記事を書くきっかけです。

なぜJ-Quants APIを選んだか

日本株の財務データを取得する方法はいくつかありますが、JPX(日本取引所グループ)が公式に提供しているJ-Quants APIが2026年現在、個人投資家に最もおすすめだと思います。理由は3つあります。

① 証券口座との連携不要でデータが取れる ② 無料プランでも十分な財務データにアクセスできる ③ 公式なので突然データが取れなくなるリスクが低い

yfinanceも悪くないんですが、日本株の財務データに関してはJ-Quantsのほうが精度が高いです。実際に使ってみて「あれ、PERの数値がズレてる…」というのをyfinanceでは何度か経験しました。

J-Quants APIの事前準備

まずJ-Quants(https://jpx-jquants.com/)にアクセスして無料アカウントを作ります。メールアドレス登録だけで始められます。登録後にAPIキーが発行されます。

次にPython環境にライブラリをインストールします。

pip install requests pandas jquants-api-client

PythonでPER・PBRを一括取得する

では本題です。製造メーカー株(トヨタ、日立、三菱電機など)のPERとPBRをPythonで一括取得してスクリーニングするコードを書いていきます。

import jquantsapi
import pandas as pd

# J-Quants APIクライアント初期化
# 事前に環境変数 JQUANTS_API_REFRESH_TOKEN に取得したトークンを設定
cli = jquantsapi.Client()

# 製造メーカー主要銘柄コード(一部)
maker_codes = [
    "7203",  # トヨタ自動車
    "6501",  # 日立製作所
    "6503",  # 三菱電機
    "6301",  # 小松製作所
    "5401",  # 日本製鉄
    "7011",  # 三菱重工業
    "6752",  # パナソニックHD
]

# 財務情報を取得
results = []
for code in maker_codes:
    try:
        # 株価指標データ取得
        df = cli.get_statements_financials(
            code=code
        )
        if not df.empty:
            latest = df.iloc[-1]
            results.append({
                "銘柄コード": code,
                "PER": latest.get("PER", None),
                "PBR": latest.get("PBR", None),
                "配当利回り": latest.get("DividendYield", None),
            })
    except Exception as e:
        print(f"{code}: エラー {e}")

# DataFrameにまとめてスクリーニング
result_df = pd.DataFrame(results)

# 割安フィルター:PER < 15かつPBR < 1.2
screened = result_df[
    (result_df["PER"] < 15) &
    (result_df["PBR"] < 1.2)
].sort_values("PER")

print("=== 割安製造メーカー株スクリーニング結果 ===")
print(screened.to_string(index=False))

スクリーニング結果の解釈

PER(株価収益率)が低いほど割安、PBR(株価純資産倍率)が1.0を下回ると「解散価値以下」と言われます。製造メーカーはキャッシュリッチな企業が多いので、PBR1.0以下の銘柄が意外と見つかることがあります。

ただし注意点があります。PERが低い理由が「一過性の利益増」の場合は要注意です。僕も最初にこれで釣られて日本製鉄を買い増しして、後で特別利益込みの数字だったと気づいたことがあります。。。スクリーニングはあくまで「候補出し」の入り口として使いましょう。

定期実行で毎週自動スクリーニング

このスクリプトをWindowsのタスクスケジューラやMacのcronに登録すれば、毎週月曜の朝に自動でスクリーニング結果をCSVで吐き出すことができます。

import datetime

# 結果をCSV保存
today = datetime.date.today().strftime("%Y%m%d")
screened.to_csv(f"screening_{today}.csv", index=False, encoding="utf-8-sig")
print(f"✅ {today}_screening.csv を保存しました")

まとめ

J-Quants APIを使えば、製造メーカー株のPER・PBRを自動一括取得してスクリーニングできます。子供の世話をしている間も「割安株候補リスト」を自動更新してくれる仕組みが作れるのは本当に助かります。

個人的には、次はこのスクリーニング結果をLINE Notifyで毎週月曜に自動通知する仕組みに繋げてみたいと思っています。やること多くてなかなか進みませんが、少しずつ自動化していきます笑。ぜひ試してみてください。

タイトルとURLをコピーしました