注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
クエリのデータフレーム結果にユーザー定義関数を呼び出す関数を返します。
ユーザー定義関数 (UDF) は特別な time series 機能であり、クエリの結果としてデータフレームを返す際にカスタム Python コードを実行できます。UDF はすべてのクエリ結果の最終データフレームに適用されます。
pandas.DataFrame
], Any]) – 適用するユーザー定義関数。func
が pandas.DataFrame
を返す場合の結果データフレームの列名のリスト
(デフォルトは入力データフレームの元の列名)。func
が pandas.DataFrame
を返す場合の結果データフレームの列タイプのリスト
(デフォルトは入力データフレームの元の列タイプ)。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形式で表示されます。