小编J. *_*rez的帖子

在 Polars LazyFrame 上使用 pl.struct 时,在不同列上迭代应用 with_columns 时出现 KeyError

我对 with_columns 中的 Polars LazyFrame“Structs”(pl.struct)和“apply”(又名 map_elements)有以下问题

这里的想法是尝试将自定义逻辑应用于属于多个列的一组值

我已经能够使用 DataFrames 实现这一点;但是,当切换到 LazyFrames 时,每当我尝试访问由结构发送到函数的字典中的列时,就会引发 KeyError。我逐一循环列,以便应用不同的函数(在其他地方映射到它们的名称,但在下面的示例中,为了简单起见,我将仅使用相同的函数)

  • 工作数据框架实施
my_df = pl.DataFrame(
    {
        "foo": ["a", "b", "c", "d"], 
        "bar": ["w", "x", "y", "z"], 
        "notes": ["1", "2", "3", "4"]
    }
)

print(my_df)

cols_to_validate = ("foo", "bar")

def validate_stuff(value, notes):
    # Any custom logic
    if value not in ["a", "b", "x"]:
        return f"FAILED {value} - PREVIOUS ({notes})"
    else:
        return notes

for col in cols_to_validate:
    my_df = my_df.with_columns(
        pl.struct([col, "notes"]).map_elements(
            lambda row: validate_stuff(row[col], row["notes"])
        ).alias("notes")
    )

print(my_df)
Run Code Online (Sandbox Code Playgroud)
  • 损坏的 …

python dataframe keyerror python-polars lazyframe

2
推荐指数
1
解决办法
84
查看次数

标签 统计

dataframe ×1

keyerror ×1

lazyframe ×1

python ×1

python-polars ×1