質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Google Colaboratory

Google Colaboratoryとは、無償のJupyterノートブック環境。教育や研究機関の機械学習の普及のためのGoogleの研究プロジェクトです。PythonやNumpyといった機械学習で要する大方の環境がすでに構築されており、コードの記述・実行、解析の保存・共有などが可能です。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1715閲覧

python 株価取得 stooq 取得できない

tttkkk

総合スコア38

Google Colaboratory

Google Colaboratoryとは、無償のJupyterノートブック環境。教育や研究機関の機械学習の普及のためのGoogleの研究プロジェクトです。PythonやNumpyといった機械学習で要する大方の環境がすでに構築されており、コードの記述・実行、解析の保存・共有などが可能です。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2022/05/19 12:46

stooqを使用して株価を取得しようと思っているのですが、
取得の際に、取得できるときとできないときがあり、その原因を教えていただけないでしょうか。

実行環境は以下の通りです。
Windows10
google colab
Python 3.7.13

株価を取得できるときとできないときのコードを記載させていただきます。
①取得できるとき

python

1# 取得できるとき。(1つのセルにすべて書いております。) 2!pip install pandas_datareader 3import pandas_datareader as web 4 5stockCode = 3926 6print(type(stockCode)) 7 8stockCode = str(stockCode) + '.JP' 9start = '2022-01-01' 10end = '2022-05-15' 11 12df_stock = web.DataReader(stockCode, data_source = 'stooq', start = start, end = end) 13df_stock.sort_index(inplace= True) 14df_stock

②取得できないとき。

python

1# 取得できないとき(セルを分ける) 2#(1つ目のセル) 3stockCode = 3926

python

1#(2つ目のセル) 2!pip install pandas_datareader 3import pandas_datareader as web 4 5print(type(stockCode)) 6 7stockCode = str(stockCode) + '.JP' 8start = '2022-01-01' 9end = '2022-05-15' 10 11df_stock = web.DataReader(stockCode, data_source = 'stooq', start = start, end = end) 12df_stock.sort_index(inplace= True) 13df_stock

①取得できるときと、②取得できないときの大きな違いは銘柄コードの指定をセルを分けてしているかどうかの違いです。
②取得できないときの場合は先に銘柄コードを指定し、それから株価を取得する処理をしております。

要点の取得できないときというのが、
②取得できないときのコードで、以下の順序でセルを実行させたときです。

  1. 1つ目のセルを実行。(銘柄コードの指定のみ)
  2. 2つ目のセルを実行。(株価取得の処理)
  3. もう一度2つ目のセルを実行。(株価取得の処理)

「2.」の段階では取得できた株価に応じてデータフレームも取得できます。
しかし、「3. 」のようにもう一度2つ目のセルを実行しますと No data となってしまい、データフレームに株価が表示されません。
②取得されないときのコードでもう一度新しく株価を取得しよう思ったら、1つ目のセルから実行しなくてはいけないのです。

どうして銘柄コードの指定のセルを実行せずに、株価取得の処理のセルだけ再度実行すると、取得できなくなるのでしょうか。
pythonへの理解を深めるという意味でも、稚拙な質問かと思いますが、教えていただけますと幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

melian

2022/05/19 12:53

2回目の実行で、stockCode が 3926.JP.JP になってしまっています。
tttkkk

2022/05/19 13:38

ご指摘いただきありがとうございます。 ハッといたしました…。 自身でも取得できない原因をかなり調べて分からなかったので、こちらにて質問させていただきましたが、 自身のこのようなミスを全く気づきませんでした…。 どおりでいくら調べても何も分からなかったわけですね。 これからは同じ変数名を重ねて使う際には気を付けようと思います。 お手数ですが、melian様をぜひともベストアンサーにさせていただきたく思いますので、 本ご指摘のコピペで構いません、回答の方にご記載をお願いできないでしょうか。
melian

2022/05/19 13:41

ありがとうございます、回答に転記しました。
guest

回答1

0

ベストアンサー

※ コメント欄から転記

2回目の実行で、stockCode が 3926.JP.JP になってしまっています。

投稿2022/05/19 13:40

melian

総合スコア19798

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問