Pythonで日付データを時系列で分析する

売上データやアクセスログ、センサーデータなど、多くの業務データには日付や時刻の情報が含まれています。これらのデータを時系列で分析することで、売上の推移や利用状況の変化、季節ごとの傾向などを把握できます。

Pythonでは、Pandasライブラリを利用することで日付データを簡単に扱うことができます。日付型への変換や期間ごとの集計、グラフによる可視化など、多くの機能が用意されています。

本記事では、Pandasを使った日付データの時系列分析の基本的な方法について解説します。

サンプルデータを作成する

まずは日付付きのデータを作成します。

import pandas as pd

df = pd.DataFrame({
    "日付": [
        "2025-01-01",
        "2025-01-02",
        "2025-01-03",
        "2025-01-04"
    ],
    "売上": [1000, 1200, 900, 1500]
})

print(df)

この状態では日付は文字列として扱われています。

日付型へ変換する

時系列分析を行うためにdatetime型へ変換します。

df["日付"] = pd.to_datetime(df["日付"])

print(df.dtypes)

日付データとして認識されることで、さまざまな日時処理が可能になります。

日付をインデックスに設定する

時系列分析では日付をインデックスに設定することが一般的です。

df.set_index("日付", inplace=True)

print(df)

これにより日付を基準とした集計や分析が行いやすくなります。

月単位で集計する

resample()を利用すると期間ごとの集計が可能です。

monthly_sales = df.resample("M").sum()

print(monthly_sales)

月ごとの売上合計を簡単に算出できます。

移動平均を計算する

短期的な変動を平滑化するために移動平均を利用できます。

df["移動平均"] = (
    df["売上"]
    .rolling(window=3)
    .mean()
)

print(df)

売上推移のトレンドを把握する際に役立ちます。

グラフで時系列データを可視化する

Matplotlibを利用して売上推移をグラフ表示できます。

import matplotlib.pyplot as plt

df["売上"].plot()

plt.title("Sales Trend")
plt.xlabel("Date")
plt.ylabel("Sales")

plt.show()

グラフ化することでデータの変化を直感的に把握できます。

まとめ

PythonのPandasを利用すると、日付データの変換や期間集計、移動平均の計算などを簡単に実装できます。時系列分析は売上予測や業務改善、アクセス解析など幅広い分野で活用される重要な技術です。まずは日付型への変換と基本的な集計方法を習得し、実践的なデータ分析に活かしていきましょう。