【Python】FRB マネーストック情報取得
FRBのホームページでは下記のマネーストックの推移が公開されている。表だと、全体感が捉えにくいので、この情報を視覚的に捉えるため、グラフ化してみよう。
Pythonだと、これが簡単にできるのだ!
出典(FRB ホームページURL)
1.コード
コードは下記の通り。
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
# 対象URLを指定
tbl=pd.read_html('https://www.federalreserve.gov/releases/h6/current/default.htm')
# 1つ目のテーブルデータをDFに格納
df = pd.DataFrame(tbl[0])
# 取得したすべてのデータをグラフ化
df.plot(figsize=(24,10),fontsize=10,linewidth=2,alpha=0.8,
subplots=True,layout=(2, 5))
# 5行目以降、1、2列目をグラフ化(季節調整あり)
df.iloc[5:,:3].plot(figsize=(8,4),fontsize=10,linewidth=2,alpha=0.8)
# 5行目以降、6、7列目をグラフ化(季節調整なし)
df.iloc[5:,6:8].plot(figsize=(8,4),fontsize=10,linewidth=2,alpha=0.8)
# 2つ目のテーブルデータをDFに格納
df3 = pd.DataFrame(tbl[1])
# 取得したデータをグラフ化(Currency ,Demand deposits)
df3.iloc[:,:3].plot(figsize=(8,4),fontsize=10,linewidth=2,alpha=0.8)
# M1,M2の先月からの変化率を出力(最終行が最新の増加率(%))
print("--------------- M1,M2 ---------------"+df.iloc[-1,0]+"--")
print((1+df.iloc[-3:,1:3].pct_change())*100)
print("--------------- M1,M2 (Not seasonally adjusted)----------")
print((1+df.iloc[-3:,6:8].pct_change())*100)
print("-------------------------------------"+df.iloc[-1,0]+"--")
#ここまで
2.出力結果
実行すると、下記の様な結果が出力される。
(1)1つ目の表をグラフ化したもの
(2)1つ目の表からM1、M2だけを抜き出したグラフ
(3)1つ目の表からM1、M2だけを抜き出したグラフ(季節調整なし)
(4)M1の通貨と要求払いのグラフ
要求払いは、先月をピークに少し減少しているのが分かる。
(5)M1,M2(季節調整あり・なし)の増加率
・一番下の項目が増加率(%)を表す。
・「----」の右側が最終レコードの月を表す。
季節調整ありで見ると、4月はM1が増えてM2が少し減少している。
(おまけ)表データのCSVファイル出力
因みに、取得データは、下記の1行でCSVファイルに出力する事もできる。
df.to_csv("Money_Stock.csv")
上図のように画面の左のフォルダをクリックするとファイルが表示される。
出力されたファイルは下記のような感じ。
列名が階層表示されていて、見にくかったり、日付の項目が日付型として認識されていなかったりと、少し成形が必要だったりもするが、
Pythonだと、これだけのことが、簡単にできるんです。
凄くないですか?
何かの参考になれば幸いです。では!
おつかれさん「缶コーヒー一杯ぐらい、ご馳走してあげよう」という太っ腹な方がいれば、よろしくお願いします!
課金しなくても、参考になったら、「ハートボタン」をクリックしたり、「リツイート」してくれると読まれる可能性があがるので嬉しいです。やる気が出ます。よろしくお願いします!
ここから先は
0字
¥ 100
この記事が気に入ったらサポートをしてみませんか?