stooqを使用して株価を取得しようと思っているのですが、
取得の際に、取得できるときとできないときがあり、その原因を教えていただけないでしょうか。
実行環境は以下の通りです。
Windows10
google colab
Python 3.7.13
株価を取得できるときとできないときのコードを記載させていただきます。
①取得できるとき
python
# 取得できるとき。(1つのセルにすべて書いております。) !pip install pandas_datareader import pandas_datareader as web stockCode = 3926 print(type(stockCode)) stockCode = str(stockCode) + '.JP' start = '2022-01-01' end = '2022-05-15' df_stock = web.DataReader(stockCode, data_source = 'stooq', start = start, end = end) df_stock.sort_index(inplace= True) df_stock
②取得できないとき。
python
# 取得できないとき(セルを分ける) #(1つ目のセル) stockCode = 3926
python
#(2つ目のセル) !pip install pandas_datareader import pandas_datareader as web print(type(stockCode)) stockCode = str(stockCode) + '.JP' start = '2022-01-01' end = '2022-05-15' df_stock = web.DataReader(stockCode, data_source = 'stooq', start = start, end = end) df_stock.sort_index(inplace= True) df_stock
①取得できるときと、②取得できないときの大きな違いは銘柄コードの指定をセルを分けてしているかどうかの違いです。
②取得できないときの場合は先に銘柄コードを指定し、それから株価を取得する処理をしております。
要点の取得できないときというのが、
②取得できないときのコードで、以下の順序でセルを実行させたときです。
- 1つ目のセルを実行。(銘柄コードの指定のみ)
- 2つ目のセルを実行。(株価取得の処理)
- もう一度2つ目のセルを実行。(株価取得の処理)
「2.」の段階では取得できた株価に応じてデータフレームも取得できます。
しかし、「3. 」のようにもう一度2つ目のセルを実行しますと No data となってしまい、データフレームに株価が表示されません。
②取得されないときのコードでもう一度新しく株価を取得しよう思ったら、1つ目のセルから実行しなくてはいけないのです。
どうして銘柄コードの指定のセルを実行せずに、株価取得の処理のセルだけ再度実行すると、取得できなくなるのでしょうか。
pythonへの理解を深めるという意味でも、稚拙な質問かと思いますが、教えていただけますと幸いです。
まだ回答がついていません
会員登録して回答してみよう