bigframes.ml.compose.SQLScalarColumnTransformer#

classbigframes.ml.compose.SQLScalarColumnTransformer(sql:str,target_column:str='transformed_{0}')[source]#

Wrapper for plain SQL code contained in a ColumnTransformer.

Create a single column transformer in plain sql.This transformer can only be used inside ColumnTransformer.

When creating an instance ‘{0}’ can be used as placeholderfor the column to transform:

SQLScalarColumnTransformer(“{0}+1”)

The default target column gets the prefix ‘transformed_’but can also be changed when creating an instance:

SQLScalarColumnTransformer(“{0}+1”, “inc_{0}”)

Examples:

>>>frombigframes.ml.composeimportColumnTransformer,SQLScalarColumnTransformer>>>importbigframes.pandasasbpd
>>>df=bpd.DataFrame({'name':["James",None,"Mary"],'city':["New York","Boston",None]})>>>col_trans=ColumnTransformer([...("strlen",...SQLScalarColumnTransformer("CASE WHEN{0} IS NULL THEN 15 ELSE LENGTH({0}) END"),...['name','city']),...])>>>col_trans=col_trans.fit(df)>>>df_transformed=col_trans.transform(df)>>>df_transformed   transformed_name  transformed_city0                 5                 81                15                 62                 4                15[3 rows x 2 columns]

SQLScalarColumnTransformer can be combined with other transformers, like StandardScaler:

>>>col_trans=ColumnTransformer([...("identity",SQLScalarColumnTransformer("{0}",target_column="{0}"),["col1","col5"]),...("increment",SQLScalarColumnTransformer("{0}+1",target_column="inc_{0}"),"col2"),...("stdscale",preprocessing.StandardScaler(),"col3"),...# ......])

Methods

__init__(sql[, target_column])