Pandasでパーセンテージの変化率を効率的に計算する方法: pct_change()を使いこなそう!
はじめに
データ分析において、パーセンテージの変化率は非常に重要な指標です。金融市場や経済指標の分析、売上データの傾向把握など、多くの分野で活用されています。そこで今回は、PandasというPythonライブラリを使って、効率的にパーセンテージの変化率を計算する方法をご紹介します。
こんな人におすすめ
- データ分析に興味がある人
- Pythonでデータ解析を始めたい人
- 時系列deの簡易的な分析の仕方を知りたい人
- Pandasのpct_changeについて学びたい人
主なライブラリ
今回使用する主なライブラリは以下の通りです。
- Pandas:データ解析を容易にする強力なライブラリ
Pandasライブラリの重要性と普及
Pandasは、Pythonでデータ解析を行うためのオープンソースのライブラリです。Pandasを用いることで、データの読み込み、加工、分析が非常に容易になります。特にデータフレームというデータ構造が特徴的で、Excelのように行と列でデータを扱うことができます。また、Pandasは多くのデータ分析プロジェクトで使用されており、データサイエンスや機械学習分野での知名度も高いです。
パーセンテージ変化率の計算がデータ分析においてどのように役立つか
パーセンテージ変化率は、データの変化を相対的に評価する際に重要な指標です。例えば、株価の変動や売上の伸びなど、データの絶対値だけではなく、その変化の割合を知りたい場合に活用されます。パーセンテージ変化率を計算することで、データ間の比較が容易になり、トレンドの把握や予測に役立ちます。
Pandasの使い方
Pandasライブラリのインストールとインポート
まず、Pandasライブラリをインストールします。コマンドラインやターミナルで以下のコマンドを実行してください。
pip install pandas
Pandasライブラリをインストールしたら、Pythonプログラムでインポートしましょう。
import pandas as pd
データフレームの作成と基本操作
Pandasでは、データフレームというデータ構造を使ってデータを扱います。データフレームは、行と列で構成された表形式のデータです。以下のように、リストや辞書からデータフレームを作成することができます。
data = {'A': [1, 2, 3], 'B': [4, 5, 6]}
df = pd.DataFrame(data)
pct_change()関数の説明と使い方
引数の説明(periods, fill_method, limit, freq)
Pandasのpct_change()関数は、データフレームやシリーズのパーセンテージ変化率を計算するための関数です。以下の引数を使って、計算方法をカスタマイズすることができます。
- periods:変化率を計算する期間(デフォルトは1)
- fill_method:欠損値の補完方法(デフォルトは’pad’)
- limit:連続する欠損値の補完回数の上限(デフォルトはNone)
- freq:時系列データの頻度(デフォルトはNone)
例題:シンプルなデータセットでのpct_change()の使用
以下の例では、シンプルなデータセットを作成し、pct_change()関数を使ってパーセンテージ変化率を計算しています。
data = {'A': [100, 120, 150], 'B': [200, 220, 250]}
df = pd.DataFrame(data)
df_pct_change = df.pct_change()
print(df_pct_change)
# A B
# 0 NaN NaN
# 1 0.20 0.100000
# 2 0.25 0.136364
この例では、データフレームの各要素のパーセンテージ変化率が計算され、新しいデータフレーム(df_pct_change)に格納されます。
Pandasの活用例
株価データのパーセンテージ変化率の計算
Pandasを使って、株価データのパーセンテージ変化率を簡単に計算することができます。以下の例では、株価データを読み込み、pct_change()関数を適用しています。
import yfinance as yf
import datetime
start = datetime.datetime(2020, 1, 1)
end = datetime.datetime(2021, 1, 1)
stock_data = yf.download('AAPL', start=start, end=end)
stock_pct_change = stock_data['Adj Close'].pct_change()
この例では、Apple Inc.の株価データを取得し、調整後終値のパーセンテージ変化率を計算しています。
時系列データのパーセンテージ変化率の分析
時系列データの分析においても、pct_change()関数が役立ちます。以下の例では、月ごとの気温データのパーセンテージ変化率を計算しています。
temperature_data = {'Month': pd.date_range(start='2020-01', periods=12, freq='M'),
'Temperature': [30, 32, 35, 45, 55, 65, 70, 72, 68, 58, 48, 38]}
df_temperature = pd.DataFrame(temperature_data)
print(df_temperature)
df_temperature.set_index('Month', inplace=True)
print(df_temperature)
# Month
# 2020-01-31 30
# 2020-02-29 32
# 2020-03-31 35
# 2020-04-30 45
# 2020-05-31 55
# 2020-06-30 65
# 2020-07-31 70
# 2020-08-31 72
# 2020-09-30 68
# 2020-10-31 58
# 2020-11-30 48
# 2020-12-31 38
temperature_pct_change = df_temperature.pct_change()
print(temperature_pct_change)
# Temperature
# Month
# 2020-01-31 NaN
# 2020-02-29 0.066667
# 2020-03-31 0.093750
# 2020-04-30 0.285714
# 2020-05-31 0.222222
# 2020-06-30 0.181818
# 2020-07-31 0.076923
# 2020-08-31 0.028571
# 2020-09-30 -0.055556
# 2020-10-31 -0.147059
# 2020-11-30 -0.172414
# 2020-12-31 -0.208333
この例では、月ごとの気温データをデータフレームに格納し、pct_change()関数を適用しています。
複数列を持つデータフレームでのpct_change()の適用
複数列を持つデータフレームでも、pct_change()関数を使って簡単にパーセンテージ変化率を計算することができます。以下の例では、複数列のデータフレームにpct_change()関数を適用しています。
data = {'A': [100, 120, 150], 'B': [200, 220, 250], 'C': [300, 280, 260]}
df = pd.DataFrame(data)
print(df)
# A B C
# 0 100 200 300
# 1 120 220 280
# 2 150 250 260
df_pct_change = df.pct_change()
print(df_pct_change)
# A B C
# 0 NaN NaN NaN
# 1 0.20 0.100000 -0.066667
# 2 0.25 0.136364 -0.071429
この例では、データフレームの各列のパーセンテージ変化率が計算され、新しいデータフレーム(df_pct_change)に格納されます。
まとめ
本記事では、Pandasのpct_change()関数を使って、データフレームやシリーズのパーセンテージ変化率を効率的に計算する方法を解説しました。データ分析において、パーセンテージ変化率は重要な指標であり、株価データや経済指標の分析、売上データの傾向把握など、多くの分野で活用されています。今後のデータ解析にpct_change()を積極的に取り入れることで、より洗練された分析が可能になります。
Pandasのpct_change()関数を活用することで、データ解析スキルを向上させることができます。是非、今回学んだ知識を実践に活かし、データ分析の幅を広げてください。
![[Python]繰り返し処理(内包処理の基本的な使い方)](https://machine-learning-skill-up.com/knowledge/wp-content/uploads/2022/06/記事3_1.png)
![[Python]Pandasでスペースを簡単に削除!](https://machine-learning-skill-up.com/knowledge/wp-content/uploads/2023/10/1-65.jpg)


![[Python]Pandas locが遅い?効率アップのための代替手法を紹介](https://machine-learning-skill-up.com/knowledge/wp-content/uploads/2023/10/1-412.jpg)
