先月、トヨタの決算を追いかけていたんですが、気づいたら子供のお風呂タイムになっていて。。。決算内容を半分しか読めないまま終わってしまいました。「そうだ、割安株のスクリーニングを自動化すれば毎回追いかけなくても済むのでは?」と思ったのがこの記事を書くきっかけです。
なぜ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で毎週月曜に自動通知する仕組みに繋げてみたいと思っています。やること多くてなかなか進みませんが、少しずつ自動化していきます笑。ぜひ試してみてください。

