日本取引所グループで公開されていた“構成銘柄別ウエイト一覧(1月末現在)”に、配当利回りの列を付与してみました。
- 銘柄コードの終わりが “.0″ だったので、”.T” に置換。それで良いのか未検証。
- 配当利回り等の値は Yahoo Finance から取得。
Yahoo ファイナンス JAPAN で見られる株式ランキングの値と異なっていたので、終値と一株配当も付与してみました。
※ 作成したソースコード及びその結果の一覧は保証しません。
配当利回りなどの列を追加した一覧をダウンロード(2024/03/16 作成)
import pandas as pd
import yfinance as yf
# TOPIX 構成銘柄別ウエイト一覧(1月末現在)
csv_url = (
"https://www.jpx.co.jp/markets/indices/topix/"
"tvdivq00000030ne-att/topixweight_j.csv"
)
df = pd.read_csv(csv_url, encoding="shift_jis")
# 不要な列を削除
df = df.drop(columns=["日付"])
df = df.drop(columns=["ニューインデックス区分"])
# "コード"列が数字で始まっている行のみにし、".0"を".T"に置換
df = df[df["コード"].astype(str).str.match("^\\d")]
df["コード"] = df["コード"].astype(str).str.replace("\\.0$", ".T", regex=True)
# 銘柄コード毎に次の値を格納
# - 配当利回り
# - 終値
# - 一株配当
dividend_yields = []
close_prices = []
dividends_per_share = []
for code in df["コード"]:
stock_info = yf.Ticker(code)
dividend_yield = stock_info.info.get("dividendYield", None)
dividend_yields.append(dividend_yield)
close_price = stock_info.history(period="1d").iloc[-1]["Close"]
close_prices.append(close_price)
dividend_per_share = stock_info.info.get("dividendRate", None)
dividends_per_share.append(dividend_per_share)
df["配当利回り"] = dividend_yields
df["終値"] = close_prices
df["一株配当"] = dividends_per_share
# CSVファイルに出力
output_csv = "topixweight_j_with_some_value.csv"
df.to_csv(output_csv, index=False)
Docker Desktop for Windows/Macでつくるクリーンな開発環境構築入門(Python版) (Amazon)
ファイナンス機械学習 (Amazon)
アセットマネージャーのためのファイナンス機械学習 (Amazon)
コメント