teratail header banner
teratail header banner
質問するログイン新規登録
Python

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

Q&A

解決済

1回答

918閲覧

jupyter notebookで225銘柄の終値をダウンロードするのに時間がかかる

mufufu

総合スコア37

Python

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

0グッド

0クリップ

投稿2022/02/14 16:32

0

0

下記のコードをかいて、jupyter notebookで225銘柄の終値をダウンロードするのに時間がかかってます。30分くらいかかる。

何か読み込みを早くする方法はありますか?

python

1import pandas as pd 2from pandas_datareader import data as wb 3 4# 日経225全銘柄の証券コードを読み込み 5df = pd.read_csv('nikkei225.csv', header=None) 6 7# 証券コードリストを作成(証券コードの後ろに.Tを追加) 8tickers = [str(name) + '.T' for name in list(df[0])] 9sec_data = pd.DataFrame() 10 11# 2020-8-1から2020-10-31までの時系列データをyahoo financeからダウンロード 12for t in tickers: 13 sec_data[t] = wb.DataReader(t, data_source='yahoo', start='2020-8-1', end='2020-10-31')['Adj Close'] 14 15# ダウンロードしたデータをcsvファイルに保存 16sec_data.to_csv('data_StockPrice.csv')

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

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

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

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

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

mufufu

2022/02/19 21:38

プログレスバーを表示するにはどうしたらいいですか?
guest

回答1

0

ベストアンサー

高速化の手段ではないですが、
end='2020-10-31'

end='2020-08-01'
として、まず1日分だけ処理を走らせて、どのくらい時間がかかるか確認されてはいかがでしょうか。
そこでかかった時間x日数がおおよその実行時間の目安になるかと思います。

この目安の時間がだいたい30分前後ということであれば、 pandas_datareaderを使う限りでは基本的にそのくらいはかかってしまう、ということになります。

その上で、マシンスペックに余裕があるのであれば、for t in tickers:のループの部分を分割して並列実行し、最終結果をマージするという手段が高速化につながるかと思います。

投稿2022/02/15 01:01

編集2022/02/15 01:05
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

mufufu

2022/02/19 21:39

ありがとうございます。 プログレスバーを表示するにはどうしたらいいですか?
退会済みユーザー

退会済みユーザー

2022/02/21 00:10

プログレスバーのようなリッチな表現でなくても、シンプルに処理開始・終了の時間を表示すればよいです。 pythonの場合だと例えば以下の記事にあるようにtime()を用いると開始時刻と終了時刻がわかります。 https://qiita.com/fantm21/items/3dc7fbf4e935311488bc この時間計測はpythonに限らない常套手段です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.30%

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

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

質問する

関連した質問