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

nodejs-polars报错:无法找到列'Actual',请求技术支持

问题解决:nodejs-polars过滤时报错unable to find column "Actual"

问题原因

报错的核心原因是Polars将你传入的字符串"Actual"解析为了列名,而非用于比较的字面量值,所以会去查找名为"Actual"的列,自然找不到就抛出错误。

解决方案

用pl.lit()包裹所有需要作为常量值比较的字符串,明确告知Polars这是固定值而非列引用。另外建议替换apply为Polars原生的字符串处理方法,性能更优。

修改后的代码:

"use strict";

const pl = require("nodejs-polars");
const fs = require("fs");

async function main() {
  const fileContent = fs.readFileSync("./polars.csv");
  let df = await pl.readCSV(fileContent.toString());
  
  // 先确认列名是否正确,可临时添加这行排查
  // console.log("DataFrame列名:", df.columns);
  
  let filteredDf = df
    .filter(
      pl.col("Forecast indicator").eq(pl.lit("Actual"))
      .and(pl.col("Segment").eq(pl.lit("Consumer")))
      .and(pl.col("Month of Order Date").eq(pl.lit("February 2022")))
    )
    .select(pl.col("Sales").str.replace("$", ""));

  console.log("filteredDf: ", filteredDf);
}

main();

额外排查建议

如果修改后仍有问题,先打印df.columns确认DataFrame实际的列名:

  • 检查列名是否有前后空格(比如CSV中列名是" Forecast indicator "而非"Forecast indicator")
  • 确认列名拼写完全一致(大小写、空格都要匹配)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 17:27:18