📖

消費者物価指数データを取得するPythonのコード

2022/11/13に公開

この記事について

e-Statから消費者物価指数データをPythonで取得します。

Pythonのコード

jpy-datareaderを使います。

from jpy_datareader import estat

消費者物価指数のデータ数を確認します。

metainfo = estat.MetaInfoReader(api_key, statsDataId="0003427113", name_or_id="name")
meta = metainfo.read()
metainfo.OVERALL_TOTAL_NUMBER
12486296

データ数が多いため、条件で絞ります。
メタデータを確認します。

meta['cat01']

meta['area']

条件で絞って、消費者物価指数のデータを取得します。

statsdata = estat.StatsDataReader(api_key, statsDataId="0003427113", name_or_id="name", cdArea="00000", cdCat01="0001")
df = statsdata.read(normal=True)

必要な列に絞ります。

cpi = df[["時間軸_コード", "時間軸(年・月)階層レベル", "表章項目名", "値"]]
cpi.loc[:, "年"] = cpi["時間軸_コード"].str[:4].astype(int)
cpi.loc[:, "開始月"] = cpi["時間軸_コード"].str[6:8].astype(int)
cpi.loc[:, "月"] = cpi["時間軸_コード"].str[8:].astype(int)

Plotlyで可視化

import plotly.express as px

物価指数を可視化します。

cond = cpi["時間軸(年・月)階層レベル"] == "4"
cond &= cpi["表章項目名"] == "指数"
cpi_monthly = cpi[cond]
cpi_monthly["年月"] = pd.to_datetime(cpi_monthly["年"].astype(str) + "-" + cpi_monthly["月"].astype(str) + "-" + "1")

px.line(cpi_monthly,
    x="年月",
    y="値"
)

インフレ率を可視化します。

cond = cpi["時間軸(年・月)階層レベル"]=="1"
cond &= cpi["表章項目名"] == "前月比・前年比・前年度比"
inflation_rate = cpi[cond]
inflation_rate["値"] = inflation_rate["値"] / 100

px.line(inflation_rate,
    x="年",
    y="値"
)

Discussion