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

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

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

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

Python 3.x

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

Python

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

解決済

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

tttkkk
tttkkk

総合スコア32

Google Colaboratory

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

Python 3.x

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

Python

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

1回答

0評価

0クリップ

169閲覧

投稿2022/05/19 12:46

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

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

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

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

melian

2022/05/19 12:53

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

2022/05/19 13:38

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

2022/05/19 13:41

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

まだ回答がついていません

会員登録して回答してみよう

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Google Colaboratory

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

Python 3.x

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

Python

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