【python】pandas_datareaderでYahooファイナンスの株価を取得する
pandas_datareaderを使うことで、Yahooファイナンスから過去の株価データを取得する事ができる。
pandas_datareaderを使用するには別でインストールが必要。
準備
Anaconda Promptから、pandas-datareaderをインストール。
#_ではなく、-になっている事に注意する
pip install pandas-datareader
データの取得~表示
#pandas_datareader.data のインポート import pandas_datareader.data as pdd import datetime start = datetime.datetime(2013,1,1) end = datetime.datetime(2013,1,31) #Yahooファイナンスから、SONY, SEGASammy, Nintendoの株価の取得 #https://finance.yahoo.com/lookup のSymbolから指定する data = pdd.get_data_yahoo(['SNE','SGAMY','NTDOY'], start, end)['Adj Close'] data [0:5] #出力結果 NTDOY SGAMY SNE Date 2013-01-31 11.644242 4.213631 14.94 2013-01-30 11.701698 4.270572 14.99 2013-01-29 12.640132 4.223121 15.14 2013-01-28 12.822073 4.232611 15.12 2013-01-25 12.333705 4.014338 14.41
グラフ化
data.plot()
変化量の計算
変化量の計算にはpct_change()を使用する
pct = data.pct_change() pct[0:5] #出力結果 NTDOY SGAMY SNE Date 2013-01-31 NaN NaN NaN 2013-01-30 0.004934 0.013514 0.003347 2013-01-29 0.080196 -0.011111 0.010007 2013-01-28 0.014394 0.002247 -0.001321 2013-01-25 -0.038088 -0.051569 -0.046958
変化量の相関関係を調べる
pct.corr() #出力結果 NTDOY SGAMY SNE NTDOY 1.000000 0.275519 0.345960 SGAMY 0.275519 1.000000 0.144161 SNE 0.345960 0.144161 1.000000
各社の株価の相関関係はあまりなさそう…。
相関関係の可視化
#seaborn , matplotlibのインポート import seaborn as sb import matplotlib.pyplot as plt #ヒートマップの表示 %matplotlib inline sb.heatmap(pct.corr())
#出力結果
まとめ
データ量が増えてきた時に、相関関係を調べたり、変化量を出せるのはすごく役立ちそう。
自然検索の順位変動の計算にも使えるかも。