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

foundryts.nodes.FunctionNode

class foundryts.nodes.FunctionNode(children)

提供された変換関数の出力となる新しい time series に 1 つ以上の time series をトランスフォームするための遅延クエリコンテナ。

各 FunctionNode は別の FunctionNode にトランスフォームするか、最終的なSummarizerNodeに計算できます。

また、遅延 FunctionNode を FunctionNode.to_pandas() または FunctionNode.to_dataframe() を使ってデータフレームに解決することもでき、トランスフォームされた time series がデータフレームの形式で出力されます。

使用例

Copied!
1 2 3 4 5 6 7 8 9 10 >>> scaled = series.scale(1.5) # scaledはまだ評価されていないFunctionNodeです # scaledは他のFunctionNode操作と連結することができ、別の未評価のFunctionNodeを生成します >>> time_shifted = scaled.time_shift(1000) # time_shiftedをPandasデータフレームに変換すると、scaledとtime_shifted関数の出力で遅延クエリが評価されます >>> time_shifted.to_pandas() timestamp value 0 1970-01-01 00:00:00.000001100 0.000000 1 1970-01-01 00:00:00.000001200 inf 2 1970-01-01 00:00:00.000001300 4.712385 3 1970-01-01 00:00:02.147484647 1.500000

columns()

このノードを評価してpandasデータフレームを生成するときに生成されるpandas.DataFrameの列名を表す文字列のタプルを返します。

注意

ネストされたオブジェクトのキーは、ネストされたキーを.で結合したタプルにフラット化されます。

  • 返り値: 現在のノードが評価される結果のデータフレーム内の列名を含むタプル。
  • 返り値の型: Tuple[str]

Copied!
1 2 3 4 5 6 7 >>> series_node = foundryts.functions.points(((100, 0.0), (200, 1.0)) >>> series_node.columns() ("timestamp", "value") # カラム名を表示 ("timestamp":タイムスタンプ, "value":値) >>> stats_node = series_node.statistics(start=0, end=100, window_size=None) >>> stats_node.columns() ("count", "smallest_point.timestamp", "start_timestamp", "latest_point.timestamp", "mean", "earliest_point.timestamp", "largest_point.timestamp", "end_timestamp") # 統計情報のカラム名を表示

cumulative_aggregate(*args, **kwargs)

foundryts.functions.cumulative_aggregate()を参照してください。

derivative()

foundryts.functions.derivative()を参照してください。

distribution(start=None, end=None, bins=None, start_value=None, end_value=None)

foundryts.functions.distribution()を参照してください。

dsl(program, return_type, labels=None, before='nearest', internal='linear', after='nearest')

foundryts.functions.dsl()を参照してください。

first_point()

foundryts.functions.first_point()を参照してください。

integral(method='LINEAR')

foundryts.functions.integral()を参照してください。

interpolate(before=None, internal=None, after=None, frequency=None, rename_columns_by=None, static_column_name=None)

foundryts.functions.interpolate()を参照してください。

last_point()

foundryts.functions.last_point()を参照してください。

mean(children)

foundryts.functions.mean()を参照してください。

periodic_aggregate(*args, **kwargs)

foundryts.functions.periodic_aggregate()を参照してください。

rolling_aggregate(*args, **kwargs)

foundryts.functions.rolling_aggregate()を参照してください。

scale(factor)

foundryts.functions.scale()を参照してください。

scatter(start_timestamp, end_timestamp, first_interpolation, second_interpolation, regression_fit)

foundryts.functions.scatter()を参照してください。

property series_ids

このノードとその子ノードで使用されるすべてのseries識別子。

skip_nonfinite()

foundryts.functions.skip_nonfinite()を参照してください。

statistics(start=None, end=None, window=None, **kwargs)

foundryts.functions.statistics()を参照してください。

sum(children)

foundryts.functions.sum()を参照してください。

time_extent()

foundryts.functions.time_extent()を参照してください。

time_range(start=None, end=None)

foundryts.functions.time_range()を参照してください。

time_shift(duration)

foundryts.functions.time_shift()を参照してください。

to_dataframe(fts=None)

このノードをpyspark.sql.DataFrameに評価します。

PySpark DataFrameは分散データ処理と並列化されたトランスフォームを可能にします。たとえば、生のseriesのすべてのポイントを読み込む際や、複数のFunctionNodeまたはSummarizerNodeを一緒に評価する際に便利です。

  • パラメーター: fts (foundryts.FoundryTS , オプション) – クエリを実行するために使用される FoundryTS セッション(指定されていない場合は新しいセッションが作成されます)。
  • 戻り値: ノードが評価されたPySpark DataFrameの出力。
  • 戻り値の型: pyspark.sql.DataFrame

Copied!
1 2 3 4 5 6 7 8 9 10 11 12 >>> series_node = F.points( ... (100, 0.0), (200, float("inf")), (300, 3.14159), (2147483647, 1.0), name="series" ... ) >>> series_node.to_dataframe().show() +-------------------------------+---------+ | timestamp | value | +-------------------------------+---------+ | 1970-01-01 00:00:00.000000100 | 0.0 | | 1970-01-01 00:00:00.000000200 | Infinity| | 1970-01-01 00:00:00.000000300 | 3.14159 | | 1970-01-01 00:00:02.147483647 | 1.0 | +-------------------------------+---------+

このコードでは、F.points 関数を使って時系列データのノードを作成しています。各タプルは (タイムスタンプ, 値) のペアを表し、タイムスタンプは整数として指定されています。次に、作成したノードをデータフレームに変換し、show() メソッドを使用して表示しています。

  • timestamp: UNIXエポック(1970年1月1日)からのナノ秒単位のタイムスタンプ
  • value: 各タイムスタンプに対応する数値データ

特に、float("inf") は無限大を表し、2147483647 のタイムスタンプは、整数の最大値に近い大きな値です。

to_pandas(fts=None)

このノードをpandas.DataFrameに評価します。

これは、生またはトランスフォームされたtime seriesデータをpandas.DataFrameにロードし、pandas.DataFrameによって提供される操作を使用してトランスフォームを実行するのに役立ちます。

  • パラメーター: fts (foundryts.FoundryTS , オプション) – クエリを実行するために使用されるFoundryTSセッション(指定されていない場合は新しいセッションが作成されます)。
  • 戻り値: ノードの出力がPandasのデータフレームに評価されます。
  • 戻り値の型: pd.DataFrame

Copied!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 >>> series = F.points( ... (100, 0.0), (200, float("inf")), (300, 3.14159), (2147483647, 1.0), name="series" ... ) # F.points 関数を使用してデータポイントを作成しています。 # 各タプルの最初の値はタイムスタンプ(ナノ秒単位)で、2番目の値はその時点の値です。 # たとえば、(100, 0.0) はタイムスタンプが100ナノ秒で値が0.0を意味します。 >>> series.to_pandas() # to_pandas() メソッドを使って、このデータを Pandas の DataFrame に変換しています。 timestamp value 0 1970-01-01 00:00:00.000000100 0.00000 1 1970-01-01 00:00:00.000000200 inf 2 1970-01-01 00:00:00.000000300 3.14159 3 1970-01-01 00:00:02.147483647 1.00000 # 出力された DataFrame には、タイムスタンプが日時形式で表示され、対応する値が表示されます。 # float("inf") は無限大を示します。

types()

pandas.DataFrame の列の型を表すタプルを返します。これは、このノードを評価して pandas dataframe を生成した場合のものです。

  • 戻り値: 現在のノードが評価されて得られる dataframe の列の型を含むタプル。
  • 戻り値の型: Tuple[Type]

Copied!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 >>> node = foundryts.functions.points() >>> node.types() (<class 'int'>, <class 'float'>) # points() メソッドによって生成されるノードの型は、整数型と浮動小数点型です。 >>> stats_node = node.statistics(start=0, end=100, window_size=None) >>> stats_node.types() (<class 'int'>, <class 'pandas._libs.tslibs.timestamps.Timestamp'>, <class 'float'>, <class 'pandas._libs.tslibs.timestamps.Timestamp'>, <class 'pandas._libs.tslibs.timestamps.Timestamp'>, <class 'float'>, <class 'pandas._libs.tslibs.timestamps.Timestamp'>, <class 'float'>, <class 'float'>, <class 'pandas._libs.tslibs.timestamps.Timestamp'>, <class 'float'>, <class 'pandas._libs.tslibs.timestamps.Timestamp'>) # statistics() メソッドによって生成されるノードの型は、複数のタイムスタンプ型と数値型(整数と浮動小数点型)が含まれています。 # このメソッドは、指定された範囲内での統計情報を取得するために使用されます。

udf(func, columns=None, types=None)

foundryts.functions.udf() を参照してください

unit_conversion(from_unit, to_unit)

foundryts.functions.unit_conversion() を参照してください

value_shift(delta)

foundryts.functions.value_shift() を参照してください

where(true=None, false=None)

foundryts.functions.where() を参照してください