注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。

foundryts.functions.rolling_aggregate

foundryts.functions.rolling_aggregate(aggregate, window)

単一の時系列について、ローリングウィンドウ内の値を集計する関数を返します。

ローリングウィンドウは、現在のタイムスタンプ(この値を含む)を終点とし、 指定した期間(ウィンドウサイズ)にわたる、移動するデータポイントの部分集合です。新しいデータポイントが追加されると、 指定した期間の範囲外になった古いポイントはウィンドウから外れます。

ローリングウィンドウは、時系列分析でデータの平滑化、トレンドの検出、ノイズの低減に よく使用されます。

サポートされている集計関数:

集計関数説明
minウィンドウ内の最小値。
maxウィンドウ内の最大値。
countウィンドウ内のポイントの件数。
sumウィンドウ内の値の合計。
productウィンドウ内の値の積。
meanウィンドウ内の値の平均。
standard_deviationウィンドウ内の値の標準偏差。
differenceウィンドウ内の最初のポイントの値と最後のポイントの
値の差で、ウィンドウ内の相対的な変化を
示します。
percent_changeウィンドウ内の最初のポイントの値から最後の
ポイントの値への変化率(パーセント)で、ウィンドウ内の相対的な
変化率を示します。
firstウィンドウ内の最初の値。
lastウィンドウ内の最後の値。
time_weighted("average")各値が有効な期間で重み付けした、ウィンドウ内の値の時間加重平均。積分方法と境界の補間オプションについては、time_weighted() を参照してください。
time_weighted("integral")ウィンドウ内の曲線下の面積。積分方法と境界の補間オプションについては、time_weighted() を参照してください。
  • パラメーター:
    • aggregate (str または time_weighted() が返す値) – 適用する集計。上記の集計関数テーブルの値のいずれかを使用します。
    • window (str | int | datetime.timedelta | pandas.Timedelta) – ローリングウィンドウの期間。この期間によって、任意の時点で評価される ポイントの数が決まります。たとえば、5ms や 5e6 です。
  • 戻り値: 単一の時系列を入力として受け取り、ローリングウィンドウ内の各ポイントについて 指定された集計を計算する関数。
  • 戻り値の型: (FunctionNode) -> FunctionNode

Dataframe スキーマ

列名データ型説明
timestamppandas.Timestampポイントのタイムスタンプ
valueUnion[float, str]ポイントの値
注

この関数は数値の時系列にのみ適用できます。

例

Copied!
1 2 3 >>> series = F.points( ... (2, 10.0), (5, 20.0), (6, 30.0), (7, 40.0), (8, 50.0), (12, 60.0), name="series" ... )
Copied!
1 2 3 4 5 6 7 8 >>> series.to_pandas() timestamp value 0 1970-01-01 00:00:00.000000002 10.0 1 1970-01-01 00:00:00.000000005 20.0 2 1970-01-01 00:00:00.000000006 30.0 3 1970-01-01 00:00:00.000000007 40.0 4 1970-01-01 00:00:00.000000008 50.0 5 1970-01-01 00:00:00.000000012 60.0
Copied!
1 2 3 4 5 6 7 8 9 >>> rolling_difference = F.rolling_aggregate("difference", "3ns")(series) >>> rolling_difference.to_pandas() timestamp value 0 1970-01-01 00:00:00.000000002 0.0 1 1970-01-01 00:00:00.000000005 0.0 2 1970-01-01 00:00:00.000000006 10.0 3 1970-01-01 00:00:00.000000007 20.0 4 1970-01-01 00:00:00.000000008 20.0 5 1970-01-01 00:00:00.000000012 0.0
Copied!
1 2 3 4 5 6 7 8 9 >>> rolling_percentage_change = F.rolling_aggregate("percent_change", "3ns")(series) >>> rolling_percentage_change.to_pandas() timestamp value 0 1970-01-01 00:00:00.000000002 0.000000 1 1970-01-01 00:00:00.000000005 0.000000 2 1970-01-01 00:00:00.000000006 0.500000 3 1970-01-01 00:00:00.000000007 1.000000 4 1970-01-01 00:00:00.000000008 0.666667 5 1970-01-01 00:00:00.000000012 0.000000