Pandasで時系列データを効率的に扱う方法

この記事では、PythonのPandasライブラリを用いて時系列データを効率的に扱う方法について解説します。具体的なコード例とその解説、さらに応用例を含めています。

目次

はじめに

Pandasは、Pythonでデータ解析を行うための強力なライブラリです。特に時系列データに関しては、多くの便利な機能を提供しています。この記事では基本的な時系列データの操作から応用テクニックまでを網羅します。

基本的な操作

時系列データの読み込み

まずはCSVファイルから時系列データを読み込む基本的な方法を見てみましょう。

# Pandasのインポート
import pandas as pd

# CSVファイルからデータを読み込む
df = pd.read_csv('time_series_data.csv', parse_dates=['date'])

このコードでは、`parse_dates`オプションを用いて、`date`列を日付型として読み込んでいます。

データの選択

日付を指定してデータを選択する基本的な操作について解説します。

# 2023年10月16日のデータを選択
selected_data = df[df['date'] == '2023-10-16']

この例では、`date`列が`2023-10-16`と一致する行を選択しています。

応用テクニック

リサンプリング

時系列データを一定の周期で集計する方法を見てみましょう。

# 月ごとにデータを集計
monthly_data = df.resample('M', on='date').sum()

`resample`メソッドを使用して、月ごとにデータを集計しています。

時系列データのシフト

過去や未来のデータと比較するために、データを時間的にシフトする方法です。

# 1日後のデータと比較するためにシフト
df['shifted_data'] = df['data'].shift(-1)

`shift`メソッドを使用して、1日後のデータと現在のデータを比較できるようにしています。

応用例

移動平均の計算

過去n日間の移動平均を計算する方法です。

# 過去7日間の移動平均を計算
df['7_day_avg'] = df['data'].rolling(window=7).mean()

`rolling`メソッドと`mean`メソッドを用いて、過去7日間の移動平均を計算しています。

データの正規化

時系列データを一定の範囲内に収める正規化の方法です。

# Min-Maxスケーリングでデータを正規化
df['normalized_data'] = (df['data'] - df['data'].min()) / (df['data'].max() - df['data'].min())

Min-Maxスケーリングを用いて、データを0と1の間に正規化しています。

まとめ

Pandasを使用することで、時系列データの読み込みから高度な操作まで非常に効率的に行うことができます。この記事で紹介したテクニックを活用して、より高度な時系列データ分析に挑戦してみてください。

コメント

コメントする

目次