「pandas_datareader」で株価を取得してみる

調査
スポンサーリンク

株価を取得できるPythonライブラリの1つである「pandas_datareader」で株価を取得してみました!
(調査日:2023年3月13日)

【調査時の環境】
・pandas-datareader 0.10.0

 

目次

 


 

「pandas_datareader」を使ってみた結果

結論から先に書くと、「pandas_datareader」はうまく動きませんでした。

公式の書き方をしてもダメ、、、(´;ω;`)

 

エラー内容で調べると、「yfinance」をオーバライドする方法が出てくるが、
だったら「yfinance」を直接使うよね。

Response format from Yahoo seems to have changed I keep getting this error.
typeerror: string indices must be integer pandas datareader

 

 

動かないため、以下参考です(´;ω;`)


「pandas_datareader」をインストール

コマンド実行
$ pip install pandas-datareader

 

株価取得のサンプルコード

※公式を参考に作成しました。
pandas-datareader remote-data-yahoo

pandas_datareader_sample.py
import pandas_datareader.data as web
import pandas as pd
import datetime as dt

start='2023-03-01'
end='2023-03-13'

df = web.DataReader('7203.T', 'yahoo', start=start, end=end)

print(df.head())

 

実行結果

実行結果
Traceback (most recent call last):
  File "/code/pandas_datareader_sample.py", line 8, in <module>
    df = web.DataReader('7203.T', 'yahoo', start=start, end=end)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/pandas/util/_decorators.py", line 211, in wrapper
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/pandas_datareader/data.py", line 379, in DataReader
    ).read()
      ^^^^^^
  File "/usr/local/lib/python3.11/site-packages/pandas_datareader/base.py", line 253, in read
    df = self._read_one_data(self.url, params=self._get_params(self.symbols))
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/pandas_datareader/yahoo/daily.py", line 153, in _read_one_data
    data = j["context"]["dispatcher"]["stores"]["HistoricalPriceStore"]
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: string indices must be integers, not 'str'

試しに、公式と全く同じ書き方をしてみてみましたが、同じようにエラーでダメでした。。。

 

 

以上!

コメント

タイトルとURLをコピーしました