Node.js Polars无pl.element()时如何实现列表元素行计算?
Polars Node.js 替代 pl.element() 实现数组过滤逻辑
核心替代方案
在Node.js的Polars绑定中,没有pl.element()的情况下,可直接用无参数的pl.col()替代——在arr.eval()的作用域内,它会自动指向当前处理的数组元素,等价于Python中pl.element()的功能。对应你需要的过滤逻辑,代码可写为:
const filterVoteByLoser = (loser) => pl.col("vote").arr.eval(pl.col().filter(pl.col().neq(loser))).alias("vote");
逻辑说明
arr.eval()内部的pl.col()无需指定列名,默认绑定当前数组元素,和Python里pl.element()的作用完全一致neq(loser)对应Python中的!= loser,实现过滤掉指定候选人的功能- 最后用
alias("vote")保留原列名,和原逻辑对齐
完整使用示例
以下是在DataFrame中调用该逻辑的实际场景:
import pl from "node-polars"; // 构造模拟选举选票数据 const electionDf = pl.DataFrame({ vote: [["Alice", "Bob", "Charlie"], ["Bob", "Alice", "Charlie"], ["Charlie", "Alice", "Bob"]] }); // 定义淘汰候选人的函数 const eliminateCandidate = (df, loser) => df.withColumns(filterVoteByLoser(loser)); // 示例:淘汰候选人Charlie const updatedDf = eliminateCandidate(electionDf, "Charlie"); console.log(updatedDf.toString());
内容的提问来源于stack exchange,提问作者Sam Schick
相关产品推荐
相关产品推荐

