
はじめに
データ解析において、増加率の計算は非常に重要な作業の一つです。Pandasは、増加率の計算に非常に便利な機能を備えています。本記事では、Pandasを使った増加率の計算方法について解説します。
Pandasでのデータフレームの作成と前処理
Pandasを使ったデータ解析において、まずはデータフレームを作成する必要があります。ここでは、株価データを例に説明します。
1 2 3 4 5 6 7 | import pandas as pd # データフレームの作成 data = { 'date' : [ '2022-01-01' , '2022-01-02' , '2022-01-03' , '2022-01-04' , '2022-01-05' ], 'price' : [ 100 , 110 , 120 , 130 , 140 ]} df = pd.DataFrame(data) # 日付をdatetime型に変換 df[ 'date' ] = pd.to_datetime(df[ 'date' ]) |
このようにして、データフレームを作成し、日付をdatetime型に変換します。ここで、データフレームの構造を確認しておきましょう。
1 | print (df) |
実行結果:
1 2 3 4 5 6 | date price 0 2022 - 01 - 01 100 1 2022 - 01 - 02 110 2 2022 - 01 - 03 120 3 2022 - 01 - 04 130 4 2022 - 01 - 05 140 |
このように、日付と株価が格納されたデータフレームが作成できました。
単純な増加率の計算方法:pct_change()メソッドの使用
単純な増加率を計算する場合には、pct_change()メソッドを使用します。
1 2 3 | # 単純な増加率の計算 df[ 'simple_growth_rate' ] = df[ 'price' ].pct_change() print (df) |
実行結果:
1 2 3 4 5 6 | date price simple_growth_rate 0 2022 - 01 - 01 100 NaN 1 2022 - 01 - 02 110 0.100000 2 2022 - 01 - 03 120 0.090909 3 2022 - 01 - 04 130 0.083333 4 2022 - 01 - 05 140 0.076923 |
このようにして、単純な増加率を計算し、新しい列として追加しました。最初のデータにはNaNが含まれていますが、これは前の期間の値が存在しないためです。
累積増加率の計算方法
次に累積増加率を計算する方法について説明します。累積増加率とは、ある期間の増加率をすべて積み上げた値です。Pandasでは、cumprod()メソッドを使用して、累積増加率を計算できます。
1 2 3 | # 累積増加率の計算 df[ 'cumulative_growth_rate' ] = ( 1 + df[ 'simple_growth_rate' ]).cumprod() - 1 print (df) |
実行結果:
1 2 3 4 5 6 | date price simple_growth_rate cumulative_growth_rate 0 2022 - 01 - 01 100 NaN NaN 1 2022 - 01 - 02 110 0.100000 0.1 2 2022 - 01 - 03 120 0.090909 0.2 3 2022 - 01 - 04 130 0.083333 0.3 4 2022 - 01 - 05 140 0.076923 0.4 |
このようにして、累積増加率を計算し、新しい列として追加しました。
移動平均を用いた増加率の平滑化
増加率のデータには、時系列データのように大きな変動が含まれることがあります。このような場合には、移動平均を用いて、データを平滑化することができます。
1 2 3 | # 移動平均を用いた増加率の平滑化 df[ 'rolling_mean' ] = df[ 'simple_growth_rate' ].rolling(window = 2 ).mean() print (df) |
実行結果:
1 2 3 4 5 6 | date price simple_growth_rate cumulative_growth_rate rolling_mean 0 2022 - 01 - 01 100 NaN NaN NaN 1 2022 - 01 - 02 110 0.100000 0.100000 NaN 2 2022 - 01 - 03 120 0.090909 0.194444 0.095455 3 2022 - 01 - 04 130 0.083333 0.287037 0.087121 4 2022 - 01 - 05 140 0.076923 0.385965 0.080128 |
このようにして、移動平均を用いた増加率の平滑化を行い、新しい列として追加しました。
まとめ
本記事では、Pandasを使った増加率の計算方法について解説しました。具体的には、単純な増加率の計算方法、累積増加率の計算方法、移動平均を用いた増加率の平滑化の方法について説明しました。また、株価データなどのデータに対して、増加率の分析を行う方法についても紹介しました。
増加率は、時系列データを分析する上で非常に重要な指標です。Pandasを使えば、簡単に増加率の計算ができるため、ぜひ活用していきましょう。