Polars 0.20.7版本map_groups与with_columns联用报错的替代方案咨询
替代解决方案:分组后反向填充空值
Polars 0.20.7版本对map_groups的调用规则进行了调整,导致原写法触发错误。推荐使用**窗口函数over**替代,这是Polars官方更推荐的向量化操作方式,性能更优且能直接配合with_columns使用:
df1 = df1.with_columns( pl.col("New Date").fill_null(strategy="backward").over("Product Number").alias("New Date1") )
代码说明
- 用
over("Product Number")指定分组维度,让fill_null按每个产品编号分组执行反向填充 - 直接在
with_columns中完成计算,无需额外的group_by+map_groups嵌套,代码更简洁高效
如果确实需要保留map_groups的写法(比如涉及更复杂的分组内逻辑),可以调整为如下形式(确保分组列以字符串传入,且返回的DataFrame结构与原表一致):
df1 = ( df1 .group_by("Product Number") .map_groups(lambda group: group.with_columns( group["New Date"].fill_null(strategy="backward").alias("New Date1") )) )
内容的提问来源于stack exchange,提问作者Vignesh
相关产品推荐
相关产品推荐

