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

foundryts.functions.udf

foundryts.functions.udf(func, columns=None, types=None)

クエリのデータフレーム結果にユーザー定義関数を呼び出す関数を返します。

ユーザー定義関数 (UDF) は特別な time series 機能であり、クエリの結果としてデータフレームを返す際にカスタム Python コードを実行できます。UDF はすべてのクエリ結果の最終データフレームに適用されます。

  • パラメーター:
    • func (Callable[[pandas.DataFrame], Any]) – 適用するユーザー定義関数。
    • columns (List [str ] , optional) – funcpandas.DataFrame を返す場合の結果データフレームの列名のリスト (デフォルトは入力データフレームの元の列名)。
    • types (List *[*Any ] , optional) – funcpandas.DataFrame を返す場合の結果データフレームの列タイプのリスト (デフォルトは入力データフレームの元の列タイプ)。
  • 戻り値: 入力 :py`pandas.DataFrame` に UDF を適用した結果。
  • 戻り値の型: Any
See Also

dsl()

例文

Copied!
1 2 3 4 5 6 7 8 9 10 11 12 >>> series = F.points((0, 0.0), (100, 100.0), (140, 140.0), (200, 200.0), name="series") # F.points関数を使用して、ポイントの集合を定義しています。各タプルは(timestamp, value)の形式です。 # ここでは4つのポイントが定義されています。 >>> series.to_pandas() # 定義したポイントの集合をPandasのデータフレーム形式に変換しています。 timestamp value 0 1970-01-01 00:00:00.000000000 0.0 1 1970-01-01 00:00:00.000000100 100.0 2 1970-01-01 00:00:00.000000140 140.0 3 1970-01-01 00:00:00.000000200 200.0 # 出力されたデータフレームは、timestampとvalueの2つのカラムを持ちます。 # timestampはナノ秒単位の時間を表しており、valueは対応する値を示しています。
Copied!
1 2 3 4 5 6 7 8 9 10 11 12 >>> def double(df: pandas.DataFrame) -> pandas.DataFrame: ... df["value"] *= 2 # DataFrameの"value"列の値を2倍にする ... return df >>> doubled_series = F.udf(double, ["timestamp", "value"], [int, float])(series) # F.udfを使って、関数doubleをUDF(ユーザー定義関数)として適用。列名と型を指定。 >>> doubled_series.to_pandas() # UDFを適用した結果をPandasのDataFrameに変換して出力 timestamp value 0 1970-01-01 00:00:00.000000000 0.0 1 1970-01-01 00:00:00.000000100 200.0 2 1970-01-01 00:00:00.000000140 280.0 3 1970-01-01 00:00:00.000000200 400.0

このコードは、データフレームの"value"列の全ての値を2倍にする関数doubleを定義し、その関数をユーザー定義関数(UDF)として適用しています。結果のデータフレームがPandas形式で表示されます。