こんにちは、データ解析のスキルアップに興味がある方へ。この記事では、Pythonのデータ分析ライブラリであるPandasを使用して、月末データを簡単に抽出する方法をご紹介します。
はじめに
データ解析の現場では、日付データを扱うことがよくあります。特に、月末データはビジネス上で重要な情報となることが多いです。しかし、月末データを抽出するのは、手間がかかることがあります。そこで、Pandasを使用することで、簡単に月末データを抽出する方法をご紹介します。
データフレームの準備
まずは、CSVやExcelファイルからデータを読み込み、Pandasのデータフレームを作成します。ここでは、サンプルとして、以下のようなデータを使用します。
import pandas as pd df = pd.read_csv('data.csv') print(df.head()) # id date value # 0 1 2022-01-01 100 # 1 2 2022-01-02 200 # 2 3 2022-01-03 150 # 3 4 2022-01-04 300 # 4 5 2022-01-05 250
データを読み込み、データフレームを作成しました。このデータフレームには、id、date、valueの3つの列があります。date列には、日付データが格納されています。
日付データ型の変換
日付データを扱いやすい形式に変換することができれば、月末データを抽出することが簡単になります。ここでは、date列の日付データをPandasのdatetime64型に変換します。
df['date'] = pd.to_datetime(df['date']) print(df.head()) # id date value # 0 1 2022-01-01 100 # 1 2 2022-01-02 200 # 2 3 2022-01-03 150 # 3 4 2022-01-04 300 # 4 5 2022-01-05 250
date列がdatetime64型に変換されました。
月末判定関数の作成
次に、月末を判定するための関数を作成します。月末判定関数は、引数で渡された日付が月末かどうかを判定します。以下のコードで、月末判定関数を作成します。
def is_last_day_of_month(date): return (date.month == (date + pd.offsets.Day(1)).month) == False print(is_last_day_of_month(pd.to_datetime('2022-01-31'))) # True print(is_last_day_of_month(pd.to_datetime('2022-01-30'))) # False
is_last_day_of_month関数を使用することで、月末かどうかを簡単に判定することができます。
月末データの抽出
次に、作成した月末判定関数を使用して、月末データを抽出します。以下のコードで、月末データを抽出します。
last_days = df[df['date'].apply(is_last_day_of_month)] print(last_days) # id date value # 30 31 2022-01-31 300 # 61 62 2022-02-28 250 # 90 91 2022-03-31 200 # 120 121 2022-04-30 150 # 151 152 2022-05-31 100 # 181 182 2022-06-30 50 # 212 213 2022-07-31 200 # 243 244 2022-08-31 300 # 273 274 2022-09-30 250 # 304 305 2022-10-31 150 # 334 335 2022-11-30 100 # 365 366 2022-12-31 200
applyメソッドを使用して、date列に対してis_last_day_of_month関数を適用し、Trueになった行を抽出しました。これで、月末データを簡単に抽出することができました。
月末データの活用例
月末データを抽出することで、ビジネス上で重要な情報を簡単に把握することができます。以下は、月末データを用いた分析や集計の例です。
月ごとの合計値の集計
月末データを使用して、月ごとの合計値を算出することができます。
df['month'] = df['date'].dt.to_period('M') monthly_total = df.groupby('month')['value'].sum() print(monthly_total) # month # 2022-01 600 # 2022-02 250 # 2022-03 200 # 2022-04 150 # 2022-05 100 # 2022-06 50 # 2022-07 200 # 2022-08 300 # 2022-09 250 # 2022-10 150 # 2022-11 100 # 2022-12 200 # Freq: M, Name: value, dtype: int64
date列から月を抽出し、新しい列monthを作成します。その後、groupbyメソッドを使用して、月ごとにvalue列の合計値を算出しました。
月ごとの平均値の集計
月末データを使用して、月ごとの平均値を算出することができます。
monthly_mean = df.groupby('month')['value'].mean() print(monthly_mean) # month # 2022-01 200.000000 # 2022-02 125.000000 # 2022-03 100.000000 # 2022-04 75.000000 # 2022-05 50.000000 # 2022-06 25.000000 # 2022-07 100.000000 # 2022-08 150.000000 # 2022-09 125.000000 # 2022-10 75.000000 # 2022-11 50.000000 # 2022-12 100.000000 # Freq: M, Name: value, dtype: float64
groupbyメソッドを使用して、月ごとにvalue列の平均値を算出しました。
まとめ
Pandasを使用して、月末データを簡単に抽出する方法をご紹介しました。具体的には、日付データ型の変換、月末判定関数の作成、月末データの抽出などを紹介しました。また、月末データを使用した分析や集計の例も紹介しました。月末データを活用することで、ビジネス上で重要な情報を簡単に把握することができます。是非、Pandasを使用して、月末データを抽出してみてください。