1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

yfinanceの代用?pandas_datareaderで株価取得

Last updated at Posted at 2025-05-14

概要

自分の過去記事を参考に日経225データを取得しようとyfinanceを利用!

import yfinance as yf
data = yf.download("^N225", start="2025-01-01", end="2025-05-10")

ここで、エラー:scream:

Failed to get ticker '^N225' reason: Expecting value: line 1 column 1 (char 0)
[*********************100%%**********************]  1 of 1 completed
1 Failed download:
['^N225']: YFTzMissingError('$%ticker%: possibly delisted; No timezone found')
Empty DataFrame
Columns: [Open, High, Low, Close, Adj Close, Volume]
Index: []

yfinanceのバージョンも最新にアップデートした!気を取り直して、トヨタの株式で再度yf.download("7203.T", start="2025-01-01", end="2025-05-10")。しかし!再びエラー:scream::scream::scream:

別の方法でダウンロード pandas_datareader

pandas_datareaderで対応してみたいと思います。

利用するライブラリ
pip install pandas-datareader

最新バージョン更新日が古いような気がするのですが、動作!!

日経225取得
import pandas_datareader.data as pdr

ticker_symbole = "^NKX" # 日経225
start = "2025-01-01"
end   = "2025-05-10"
data = pdr.DataReader(ticker_symbole, "stooq", start=start, end=end)

print(data)
#                Open      High       Low     Close      Volume
# Date                                                          
# 2025-05-09  37332.57  37557.41  37219.03  37503.33  2013502800
# 2025-05-08  36863.38  36977.35  36606.71  36928.63  1372579300
# 2025-05-07  36903.66  36942.38  36731.39  36779.66  1562989800
# 2025-05-02  36636.55  36976.51  36606.58  36830.69  1410466200
# 2025-05-01  36197.04  36544.15  36040.05  36452.30  1315774200

1. yfinanceが動作しない

ライブラリのyfinanceの調子が良くないみたい。時々起こる現象で 多くの場合、最新版にすることで動作する ようになります。今回の2025年5月の段階ではうまく動作していないっぽい1

2. pandas_datareaderとは

pandas_datareaderは、様々なデータベースから経済っぽいデータを取得できるライブラリのようです。使い方や利用できるデータベースの説明などは公式のドキュメントを参考にしてください。

代表的なもの5つ抜粋

  • Tiingo
  • World Bank
  • OECD
  • Stooq:今回はこれを使う
  • Yahoo Finance:やっぱりNGだった

3. サンプル

使い方の基本は、株式の銘柄コード、取得開始日、取得終了日を設定すればOKとなります。注意点は、データソースにstooqを指定する部分となります。データソースによって銘柄コードの書き方が異なってきます。

stooqでの銘柄コードの書き方は、番号+.JPとなります。番号のあとに「.JP」です2

stooq仕様
import pandas_datareader.data as pdr

ticker_symbole = "7203.JP"  # トヨタの銘柄コード.JP 
start = "2025-01-01"
end   = "2025-05-10"
data = pdr.DataReader(ticker_symbole, "stooq", start=start, end=end)

stooqのサイトから銘柄を検索して、銘柄コードを調べることができます。下図はトヨタの株価となります。画像の赤い枠で囲まれた部分が銘柄コードに記述するべき値です。

      

日経225のようなインデックスについての銘柄コード(ティッカーシンボル)はstooqのインデックス一覧から確認できます。

サンプル

指標名 シンボル
日経225 ^NKX
S&P 500 ^SPX
ダウ平均株価 ^DJI

4. stooqからCSVファイルをダウンロード

取得する銘柄が少ない場合は、stooqのサイトからCSVファイルとして直接ダウンロードするのが簡単かと思います。上図にある緑色の枠で囲まれた Histrical data の部分をクリックすることでダウンロードページに移動します。為替レートはプログラムではなぜかエラーになるし、webページからのダウンロードが楽でした:sweat_smile:

  1. 主観的ではありますがyfinanceでは詳しい情報が取得できた気がしました。

  2. yfinanceだと番号.Tのように取引所を表すシンボルを追加するタイプでした。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?