ComputeError: named columns are not allowed in `list.eval`; consider using `element` or `col("")`
Это привело меня к: https://github.com/pola-rs/polars/issues/7210
Где предлагается использовать group_by, что привело меня кother_try. Мне интересно, возможно, я неправильно понял это предложение, или есть другой способ? Возможно, что-то использует что-то вроде того, как здесь используется «оператор моржа»?
first_try = df.with_columns( extracted=pl.col("s") .list.eval( pl.when(pl.element().struct.field("x").eq(pl.col("selector"))) .then(pl.element().struct.field("y")) .otherwise(None) ) .list.drop_nulls() ) print(first_try) # error: ComputeError: named columns are not allowed in `list.eval`; consider using `element` or `col("")`
other_try = df.join( df.explode("s") .filter(pl.col("s").struct.field("x").eq(pl.col("selector"))) .with_columns(extracted=pl.col("s").struct.field("y")) .group_by("id") .agg(pl.col("extracted")), on="id", ) print(other_try) # shape: (2, 4) # ┌───────┬─────────────────────────────┬──────────┬────────────┐ # │ id ┆ s ┆ selector ┆ extracted │ # │ --- ┆ --- ┆ --- ┆ --- │ # │ str ┆ list[struct[2]] ┆ i64 ┆ list[str] │ # ╞═══════╪═════════════════════════════╪══════════╪════════════╡ # │ alpha ┆ [{0,"a"}, {1,"b"}, {0,"c"}] ┆ 0 ┆ ["a", "c"] │ # │ beta ┆ [{0,"b"}, {1,"a"}, {1,"c"}] ┆ 1 ┆ ["a", "c"] │ # └───────┴─────────────────────────────┴──────────┴────────────┘ [/code] [code]first_try[/code] не работает, аother_try работает. Ошибка с first_try: [code]ComputeError: named columns are not allowed in `list.eval`; consider using `element` or `col("")` [/code] Это привело меня к: https://github.com/pola-rs/polars/issues/7210 Где предлагается использовать group_by, что привело меня кother_try. Мне интересно, возможно, я неправильно понял это предложение, или есть другой способ? Возможно, что-то использует что-то вроде того, как здесь используется «оператор моржа»?