※本記事には広告・アフィリエイトリンクが含まれます。収益はサイト運営・検証費用に充てています。
結論から言うと:
- yfinanceのTicker.infoから配当利回り(dividendYield)を自動取得できる仕組みです
- 複数銘柄を一括取得してDataFrameに整理すれば、条件フィルタリングが簡単に行える
- 配当利回りが高いだけでは安全とは言えず、減配リスクや配当性向の確認が必要です
yfinanceで配当情報を取得
yfinanceのTicker.infoには配当利回りや1株配当額など多くの財務情報が含まれます。
import yfinance as yf
ticker = yf.Ticker("8306.T") # 三菱UFJフィナンシャル・グループ
info = ticker.info
print("配当利回り:", info.get('dividendYield'))
print("1株配当額:", info.get('dividendRate'))
print("配当性向:", info.get('payoutRatio'))
配当利回りの計算方法
yfinanceのdividendYieldは小数で返ってくる(例:0.035 = 3.5%)仕組みです。パーセント表示に変換する場合は100をかけます。手動で計算する場合は「年間配当額 ÷ 現在の株価 × 100」で求められます。
dy = info.get('dividendYield', 0)
print(f"配当利回り: {dy * 100:.2f}%")
複数銘柄を一括取得
import pandas as pd
import yfinance as yf
# スクリーニング対象銘柄リスト
tickers = ["8306.T", "8316.T", "8411.T", "9432.T", "9433.T", "5020.T"]
results = []
for code in tickers:
try:
info = yf.Ticker(code).info
results.append({
'コード': code,
'銘柄名': info.get('longName', ''),
'配当利回り(%)': round((info.get('dividendYield') or 0) * 100, 2),
'1株配当': info.get('dividendRate', 0),
'配当性向': round((info.get('payoutRatio') or 0) * 100, 1),
})
except Exception as e:
print(f"{code} 取得失敗: {e}")
df = pd.DataFrame(results)
print(df)
条件でスクリーニング(利回り2%以上)
DataFrameの条件フィルタリングで利回り2%以上の銘柄だけ抽出できます。
# 利回り2%以上でフィルタリング
high_div = df[df['配当利回り(%)'] >= 2.0].sort_values('配当利回り(%)', ascending=False)
print(high_div)
CSVに保存
from datetime import datetime
filename = f"high_dividend_{datetime.now().strftime('%Y%m%d')}.csv"
high_div.to_csv(filename, index=False, encoding='utf-8-sig')
print(f"保存: {filename}")
encoding=’utf-8-sig’にするとExcelで日本語が文字化けせずに開ける仕組みです。
注意点(減配リスク)
配当利回りが高い銘柄は、株価が大きく下落している結果として利回りが高くなっているケース(いわゆる「罠配当」)もあります。率直に言うと、利回りの数字だけでスクリーニングして投資するのは危険です。配当性向(payoutRatio)が100%を超えている場合、利益以上の配当を出している状態であり、将来の減配リスクが高い。過去の配当履歴(ticker.dividends)を確認し、減配がないかチェックすることが重要です。
筆者の検証メモ
yfinanceのinfo取得は1銘柄あたり数秒かかるため、銘柄数が多い場合はtime.sleep(1)を挟むことで429エラー(レート制限)を回避できる。日本株は.Tを末尾に付けることでyfinanceから取得できるが、info内の配当情報が空のケースも一定数ある。その場合はticker.dividendsから直近の配当額を計算する方法が有効です。
【投資免責事項】本記事で紹介するコードおよび分析結果は情報提供を目的としたものであり、特定の銘柄への投資を推奨するものではありません。投資判断はご自身の責任で行ってください。

