見出し画像

【Python】FRB マネーストック情報取得

FRBのホームページでは下記のマネーストックの推移が公開されている。表だと、全体感が捉えにくいので、この情報を視覚的に捉えるため、グラフ化してみよう。

Pythonだと、これが簡単にできるのだ!

画像1

出典(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

(2)1つ目の表からM1、M2だけを抜き出したグラフ

画像3

(3)1つ目の表からM1、M2だけを抜き出したグラフ(季節調整なし)

画像4

(4)M1の通貨と要求払いのグラフ

画像5

要求払いは、先月をピークに少し減少しているのが分かる。

(5)M1,M2(季節調整あり・なし)の増加率
 ・一番下の項目が増加率(%)を表す。
 ・「----」の右側が最終レコードの月を表す。

画像6

季節調整ありで見ると、4月はM1が増えてM2が少し減少している。

(おまけ)表データのCSVファイル出力

因みに、取得データは、下記の1行でCSVファイルに出力する事もできる。

df.to_csv("Money_Stock.csv")

画像7

上図のように画面の左のフォルダをクリックするとファイルが表示される。

出力されたファイルは下記のような感じ。

画像8

列名が階層表示されていて、見にくかったり、日付の項目が日付型として認識されていなかったりと、少し成形が必要だったりもするが、

Pythonだと、これだけのことが、簡単にできるんです。

凄くないですか?

何かの参考になれば幸いです。では!

おつかれさん「缶コーヒー一杯ぐらい、ご馳走してあげよう」という太っ腹な方がいれば、よろしくお願いします!
課金しなくても、参考になったら、「ハートボタン」をクリックしたり、「リツイート」してくれると読まれる可能性があがるので嬉しいです。やる気が出ます。よろしくお願いします!

ここから先は

0字

¥ 100

この記事が気に入ったらサポートをしてみませんか?