日経ソフトウェア2018年9月号を読んでいたら恐怖指数がうんたらかんたらみたいな特集があって、サンプル通りに実行したら途中で、エラーになる謎コードがあり、前後関係も完全にイミフな内容だったので、書き直してみました
<開発環境>
- Python3.6
- JupyterLab
- Windows10
pandas-datareaderでVIX(恐怖指数)をスクレイピングする
# ライブラリの読み込み %matplotlib inline import numpy as np import matplotlib.pyplot as plt import pandas_datareader.data as web import pandas as pd # fredからVixを取得する vix = web.DataReader("VIXCLS", "fred", "1949/1/1") # fredからSP500を取得する sp500 = web.DataReader("SP500", "fred", "1949/1/1")
FREDというのはアメリカにあるセントルイス中央銀行のデータベースのことです。ここには日経平均など主要な金融データが保存されています。
関連記事:【Python】pandasで日経平均の株価データをスクレイピングする
pandas-datareaderは仕様上時々死ぬことがあるので、コード実行に失敗した人は、こことここからcsvを落として以下のコードを実行して読み込んでください。(ディレクトリは任意で調整してください)
# pandasでcsvを読み込む vix = pd.read_csv('vix.csv', index_col='DATE') sp500 = pd.read_csv('sp500.csv', index_col='DATE')
ちなみに引数のindex_col='DATE'
がないとインデックスがずれて後々エラーを吐くので、忘れないように注意してください。
# 対数変化率を計算する vol = (np.log(sp500).diff().dropna().rolling(20).std() * np.sqrt(365) * 100) # データを結合する ts = pd.concat([vix, vol], axis=1) # 欠損値を削除する ts = ts.dropna(how='any') # 列名を変更する ts.columns = [ 'vix', 'vol']
<実行結果>
関連記事:【Python】k-Mean法でクラスタリング+エルボー法で最適クラスタ数の決定
コメント
[…] 関連記事:【Python】pandas-datareaderでVIX(恐怖指数)を取得してk-Mean法でクラスタリング […]