@@ -393,3 +393,41 @@ def global_explain(
393393 return bpd .read_gbq_query (sql )
394394 else :
395395 return session .read_gbq_query (sql )
396+
397+
398+ @log_adapter .method_logger (custom_base_name = "bigquery_ml" )
399+ def transform (
400+ model : Union [bigframes .ml .base .BaseEstimator , str , pd .Series ],
401+ input_ : Union [pd .DataFrame , dataframe .DataFrame , str ],
402+ ) -> dataframe .DataFrame :
403+ """
404+ Transforms input data using a BigQuery ML model.
405+
406+ See the `BigQuery ML TRANSFORM function syntax
407+ <https://docs.cloud.google.com/bigquery/docs/reference/standard-sql/bigqueryml-syntax-transform>`_
408+ for additional reference.
409+
410+ Args:
411+ model (bigframes.ml.base.BaseEstimator or str):
412+ The model to use for transformation.
413+ input_ (Union[bigframes.pandas.DataFrame, str]):
414+ The DataFrame or query to use for transformation.
415+
416+ Returns:
417+ bigframes.pandas.DataFrame:
418+ The transformed data.
419+ """
420+ import bigframes .pandas as bpd
421+
422+ model_name , session = _get_model_name_and_session (model , input_ )
423+ table_sql = _to_sql (input_ )
424+
425+ sql = bigframes .core .sql .ml .transform (
426+ model_name = model_name ,
427+ table = table_sql ,
428+ )
429+
430+ if session is None :
431+ return bpd .read_gbq_query (sql )
432+ else :
433+ return session .read_gbq_query (sql )
0 commit comments