Python

Pythonで前年同月比を計算する方法【例:CPI】

Python

どうも、月見(@Suzuka14144156)です。

この記事では、Pythonで前年同月比を計算する方法について解説します。

よってこのようなお悩みをお持ちの方におすすめの記事です。

  • 昨年の売り上げに対して今年の同月の比はPythonでどのように求めるの?
  • コードが知りたい

Pythonで前年同月比を計算する方法の概要

  • pandasを利用すると簡単にできる
  • データは、DatetimeIndexを利用すること

これによって、特定の月のデータを抽出することが比較的容易なコードでできます。

DataFrame[DataFrame.index.month == 〇〇]

Pythonで前年同月比を計算する方法の環境

Jupyter labを使います。

使用するライブラリ
  • datetime:時系列データを扱う
  • pandas_datareader:cpiを取得する
  • pandas:データ処理
  • plotly:可視化

インストール方法

コマンドプロンプトから以下のコマンドをたたくことでインストール可能です。

pip install jupyterlab
pip install pandas_datareader
pip install pandas
pip install plotly

Pythonで前年同月比を計算する方法

本記事では、米国の消費者物価指数を使って解説します。

消費者物価指数
  • 消費者物価指数は、全国の世帯が購入する家計に係る財及びサービスの価格等を総合した物価の変動を時系列的に測定するもの

CPIの取得

fredというサイトから、CPIのデータを取得します。

import datetime
import pandas_datareader.data as web

#1950年1月~現在
start = datetime.datetime(1950, 1, 1)
end = datetime.datetime.now()
cpi = web.DataReader('CPIAUCNS', 'fred', start, end)
cpi

上記のコードを実行すると以下のテーブルが表示されます。

1950~2023年3月(最新)のCPIが取得できていることが分かります。

可視化

このデータをplotlyを使って可視化します。

import plotly
import plotly.express as px

cpi_g = cpi.reset_index()
px.line(cpi_g, x="DATE", y="CPIAUCNS")

このようなグラフが表示されます。

前年同月比の計算

pandasを使うことで、簡単に計算することができます。

import pandas as pd

for i in range(1,13):
    df = cpi[cpi.index.month == i]
    df_diff = df.shift(1)
    df_y = df/df_diff
    if i==1:
        df_y_list = df_y
    else:
        df_y_list = pd.concat([df_y_list,df_y])
        
df_y_list_sorted = df_y_list.sort_index()
df_y_list_sorted

以下のコードでDatetimeIndexの月が同じもののみを抽出することができます。

cpi[cpi.index.month == i]

抽出した月をshiftして前年同月比を計算します。

あとは、連結して、時系列順にソートして完了です。

以下のような結果が表示されます。

1950年は、前月のデータが存在しないのでNaNとなります。

本結果を可視化します。

df_y_list_sorted_g = df_y_list_sorted.reset_index()
px.line(df_y_list_sorted_g, x="DATE", y="CPIAUCNS")

前年同月比の結果にすることができました。

本記事の関連の参考書や講座

基本的なPythonのコード知識を学ぶには、以下の書物がオススメです。

Udemyのオンライン講座は、以下がオススメです。

Udemyは買い切りなので、一度購入してしまえば、何度でも閲覧できるのでオススメです。

現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル
現役シリコンバレーエンジニアが教えるPython入門!応用では、データ解析、データーベース、ネットワーク、暗号化、並列化、テスト、インフラ自動化、キューイングシステム、非同期処理など盛り沢山の内容です!

まとめ

この記事では、Pythonで前年同月比を計算する方法について解説しました。

  • pandasを利用すると簡単にできる
  • データは、DatetimeIndexを利用すること

これによって、特定の月のデータを抽出することが比較的容易なコードでできます。

DataFrame[DataFrame.index.month == 〇〇]

コメント

タイトルとURLをコピーしました