Допустим, я хочу составить список функций, т.е. aggs=['sum','std','mean','min','max']
то если у меня есть произвольный df
df=pl.DataFrame({'a':[1,2,3], 'b':[2,3,4]})
Я хочу иметь возможность сделать что-то вроде (это явно не работает)
df.with_columns([pl.col('a').x() for x in aggs])
Есть ли способ сделать это? aggs
не обязательно должен быть список строк, а просто самый простой способ напечатать мое намерение для целей этого вопроса. Кроме того, в нем должно быть место для .suffix()
Я знаю, что у меня может быть функция, которая имеет все аггинги в функции и принимает произвольные dfs в качестве параметра, что похоже на мой план резервного копирования, поэтому я надеюсь на что-то похожее на вышеизложенное.
Будет ли это работать для вас?
df.with_columns([getattr(pl.col("a"), x)().suffix("_" + x) for x in aggs])
shape: (3, 7)
┌─────┬─────┬───────┬───────┬────────┬───────┬───────┐
│ a ┆ b ┆ a_sum ┆ a_std ┆ a_mean ┆ a_min ┆ a_max │
│ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- │
│ i64 ┆ i64 ┆ i64 ┆ f64 ┆ f64 ┆ i64 ┆ i64 │
╞═════╪═════╪═══════╪═══════╪════════╪═══════╪═══════╡
│ 1 ┆ 2 ┆ 6 ┆ 1.0 ┆ 2.0 ┆ 1 ┆ 3 │
│ 2 ┆ 3 ┆ 6 ┆ 1.0 ┆ 2.0 ┆ 1 ┆ 3 │
│ 3 ┆ 4 ┆ 6 ┆ 1.0 ┆ 2.0 ┆ 1 ┆ 3 │
└─────┴─────┴───────┴───────┴────────┴───────┴───────┘