🎃

yfinanceで株価データ取得

に公開

Pythonで株価のデータを分析する際に、「yfinance」というモジュールを使えば、指定した銘柄の情報を容易に取得できます。
(yfinanceの裏側で動いているAPIは非公式なものなので注意が必要です)

yfinanceからデータを取得する際に少し詰まったポイントがあるので、この記事ではyfinanceのデータの取得方法についてまとめます。
google colabで作業しています。

■ データの取得コード

import yfinance as yf

#ターゲットを指定
ticker = "7203.T" # トヨタ自動車。Tは東京証券取引所の株式であることを示す。

#データを収集
data = yf.download(
    ticker,
    start= "2000-01-01",
    end="2025-07-31",
    interval = "1d",
    multi_level_index=False
)
data

■ 実行結果

Close:終値
High:高値
Low:安値
Open:始値
Volume:出来高 です。

tickerで取得したい銘柄を格納します。
日本の株式の場合、以下のような形で指定すればよいです。
[証券コード].[取引所コード]

download関数でデータを取得します。pandasのデータフレームをオブジェクトとして返します。
引数のstrat/endはデータを取得する期間、intervalはデータの取得間隔を指定しています。1dは一日(1day)間隔です。

multi_level_indexはインデックスを単一レベル(=Flase)にするか、複数レベル(=True)にするかを指定します。
Trueで指定すると、日付だけではなくtickerもインデックス行として読み込まれてしまいます。

multi_level_index=Trueの場合

このような形で読み込んでしまうと、
カラムを取り出す際、df[('Close', '7203.T')]のように、タプルで指定する必要が出てしまったり、
.mean()など基本的な関数を使う際にエラーをはいてしまうことになるので、falseを指定しましょう。
(自分はここでつまづきました)

multi_level_index=falseの場合

Discussion