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

Polars报错ValueError: could not convert value 'Unknown' as a Literal原因咨询

Polars聚合报错原因及修复

错误根源

这个ValueError: could not convert value 'Unknown' as a Literal错误是Polars旧版本的API兼容性问题:

  • 在0.17.x及更早的Polars版本中,agg方法里的聚合函数(如pl.mean())对传入的表达式类型推导逻辑存在限制,无法正确识别(pl.col('var') == 'x').cast(pl.Int8)这种动态转换后的列类型,会将其标记为Unknown类型,进而触发类型转换失败的错误。

修复方案

有两种可行的解决方式:

  1. 升级Polars版本:将Polars升级到0.18.0及以上版本,你原来的代码可以直接正常运行——新版本优化了表达式的类型推导逻辑,支持这种嵌套写法。
  2. 适配旧版本的写法:如果暂时无法升级,改用以下两种写法之一:
    • 写法一:直接利用布尔列的mean()方法(Polars会自动将布尔值视为1/0计算均值)
      df.group_by('group').agg(
          pl.col('var').eq('x').mean()
      )
      
    • 写法二:手动计算求和除以总数,绕过类型推导问题
      df.group_by('group').agg(
          (pl.col('var') == 'x').sum() / pl.count()
      )
      

内容的提问来源于stack exchange,提问作者dfried

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 14:59:55