import pandas as pd def apply_trending_flag( df: pd.DataFrame, flag_name: str, is_trending_lambda, reference_column: str | None, ) -> None: flag_column = f'{flag_name}_flag' lift_column = f'{flag_name}_lift' df[flag_column] = df.apply(lambda row: 1 if is_trending_lambda(row) else 0, axis=1) df[lift_column] = df[reference_column] if reference_column else 0.0 def apply_trending_flags(df: pd.DataFrame, trending_flags: dict) -> None: for flag_name, value in trending_flags.items(): apply_trending_flag( df=df, flag_name=flag_name, is_trending_lambda=value['is_trending_lambda'], reference_column=value['lift_feature'], )