pandas-datareaderで株価を取得する
概要
pandas-datareaderを使うと、Web上の様々なソースに簡単にアクセスでき、データを取得できる。
ということでやってみました。
環境設定については以下を参考に。
*ちなみに全部で30行程度のコードで相関分析まで、できます。
コード
Yahoo! Financeで今日から1年前までのアップル(AAPL)、ソニー(SNE)、Google(GOOG)の株価情報を取得してみる。
import pandas as pd from pandas import Series, DataFrame import pandas_datareader.data as web import numpy as np from datetime import datetime import matplotlib.pyplot as plt import seaborn as sns %matplotlib inline stock_list = ['AAPL', 'GOOG', 'SNE'] end = datetime.now() start = datetime(end.year - 1, end.month, end.day) for stock in stock_list: globals()[stock] = web.DataReader(stock, 'yahoo', start, end)
googleの株価をグラフにしてみる
GOOG['Open'].plot(figsize=(10,4))
ピアソンの相関係数を出してみる。
close_df = web.DataReader(['AAPL', 'GOOG', 'SNE'], 'yahoo', start, end)['Adj Close'] tech_rets = close_df.pct_change() sns.jointplot('GOOG', 'SNE', tech_rets, kind = 'scatter', color = 'seagreen')
ヒートマップにしてみる
sns.heatmap(tech_rets.corr(), annot=True)
googleとAmazonの相関性が高いことがわかりました。
補足
使用できるデータソースは以下のようなものがあります。
- Yahoo! Finance
- Google Finance
- St.Louis FED (FRED)
- Kenneth French’s data library
- World Bank
- Google Analytics