DataFrameの時系列データのリサンプリング

時系列データは、1秒や1時間など一定の間隔のデータが多いです。 この時間の間隔を変更することをリサンプリングと呼びます。 リサンプリングする理由は、データを圧縮してサイズを小さくしたい、別のデータと結合するために揃えるなど、いろいろあります。

DataFrame.resampleメソッドでリサンプリングすることができます。 第1引数のruleで時間間隔を指定できます。

主なruleの指定方法

指定方法

内容

区切り位置

AS

年初

A

年末

MS

月初

M

月末

W

日曜

D

0時

H

0分

T

0秒

S

resampleメソッドの返り値は、新しい時間間隔で集約されたオブジェクトになっており、扱うためには、平均を取るなどの処理が必要になります。

主な処理

主な処理

内容

min

最小

max

最大

sum

合計

mean

平均

first

最初の値

interpolate

補間

DataFrame.resample('W').mean()[列名]とするとリサンプリング後の該当列の平均になります。 また、DataFrame.resample('W')[列名].mean()DataFrame[列名].resample('W').mean()など、柔軟に扱うこともできます。 わかりやすい使い方をするといいでしょう。

また、欠損値があるデータをリサンプリングすると、平均を取るなどの処理で欠損値でなくなることもありますが、データの精度が落ちることになるので注意が必要です。

リサンプリングは時間間隔を細かくすることもできますが、その場合は、interpolateで線形補間すると良いでしょう。 interpolateのオプションで2次補間('quadratic')や3次補間('cubic')などもできますが、大きく変動することもあります。

さらに詳しくは、pandas.DataFrame.resampleを参照ください。