Pandasを使ったデータ解析 増加率の計算方法と実践例

はじめに

データ解析において、増加率の計算は非常に重要な作業の一つです。Pandasは、増加率の計算に非常に便利な機能を備えています。本記事では、Pandasを使った増加率の計算方法について解説します。

Pandasでのデータフレームの作成と前処理

Pandasを使ったデータ解析において、まずはデータフレームを作成する必要があります。ここでは、株価データを例に説明します。

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型に変換します。ここで、データフレームの構造を確認しておきましょう。

print(df)

実行結果:

        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()メソッドを使用します。

# 単純な増加率の計算
df['simple_growth_rate'] = df['price'].pct_change()
print(df)

実行結果:

        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()メソッドを使用して、累積増加率を計算できます。

# 累積増加率の計算
df['cumulative_growth_rate'] = (1 + df['simple_growth_rate']).cumprod() - 1
print(df)

実行結果:

        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

このようにして、累積増加率を計算し、新しい列として追加しました。

移動平均を用いた増加率の平滑化

増加率のデータには、時系列データのように大きな変動が含まれることがあります。このような場合には、移動平均を用いて、データを平滑化することができます。

# 移動平均を用いた増加率の平滑化
df['rolling_mean'] = df['simple_growth_rate'].rolling(window=2).mean()
print(df)

実行結果:

        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を使えば、簡単に増加率の計算ができるため、ぜひ活用していきましょう。