株価を取得できるPythonライブラリの1つである「pandas_datareader」で株価を取得してみました!
(調査日:2023年3月13日)
【調査時の環境】
・pandas-datareader 0.10.0
目次
「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'
試しに、公式と全く同じ書き方をしてみてみましたが、同じようにエラーでダメでした。。。
以上!
コメント