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

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