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
相关产品推荐
相关产品推荐

