Создавайте столбцы в Polars с помощью цикла «когда-то-иначе»Python

Программы на Python
Anonymous
Создавайте столбцы в Polars с помощью цикла «когда-то-иначе»

Сообщение Anonymous »

Как сократить функцию, используя цикл for с типом суперпромо (ТВ, YouTube, Баннеры) в выражении «когда-то»?

Код: Выделить всё

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

Вернуться в «Python»