Код: Выделить всё
def add_promo_means(data: pl.DataFrame) -> pl.DataFrame:
return data.with_columns(
[
pl.when(pl.col("is_TV_superpromo") == 1)
.then(pl.col(f"mean_promo_quantity_with_TV_0_{week_offset}_promo_weeks"))
.when(pl.col("is_YouTube_superpromo") == 1)
.then(pl.col(f"mean_promo_quantity_with_YouTube_0_{week_offset}_promo_weeks"))
.when(pl.col("is_Banners_superpromo") == 1)
.then(pl.col(f"mean_promo_quantity_with_Banners_0_{week_offset}_promo_weeks"))
.otherwise(pl.col(f"mean_promo_quantity_without_superpromo_0_{week_offset}_promo_weeks"))
.alias(f"mean_promo_sales_0_{week_offset}_promo_weeks")
for week_offset in range(1, 4)
]
)
Код: Выделить всё
def add_promo_means(data: pl.DataFrame) -> pl.DataFrame:
return data.with_columns(
[
pl.when(pl.col("is_TV_super_promo") == 1)
.then(pl.col(f"promo_sales_from_{superpromo}"))
.otherwise(pl.col(f"promo_sales"))
.alias(f"mean_promo_sales")
for superpromo in ['TV', 'YouTube', 'Banners' ]
]
)
Подробнее здесь: https://stackoverflow.com/questions/781 ... g-for-loop