You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在非流式模式下从Polars LazyFrame移除include_file_paths列

解决Polars非流式模式下file_path列无法移除的问题

问题根源

Polars在非流式模式下,scan_csv的include_file_paths参数是在查询执行的最后一步才把file_path列插入结果的。而你调用的drop("file_path")是在逻辑查询计划阶段执行的——这时候计划里根本还没这个列,所以drop操作相当于没起作用,最终结果自然还带着它。而流式模式的执行流程不一样,drop能正确作用到已添加的列上,所以能成功移除。

可行解决方案

方案1:collect之后再drop

既然非流式下file_path是collect阶段才加上的,那先把数据捞成DataFrame,再删列就行:

print(lf.collect().drop("file_path"))

方案2:手动添加file_path列

不用include_file_paths参数,自己用with_columns加列,这样逻辑计划里会明确有这个列,drop操作就能生效:

lf = pl.scan_csv(f.name).with_columns(pl.lit(f.name).alias("file_path"))
print(lf.drop("file_path").collect())

方案3:直接指定要保留的列

绕开drop操作,直接select你需要的列:

print(lf.select("a", "b", "c").collect())

内容的提问来源于stack exchange,提问作者Muhammad D Vikar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 14:07:07