如何使用data-forge将JS中的两个数据框连接在一起?

时间:2019-12-02 17:48:43

标签: javascript data-manipulation data-forge

我正在尝试使用data-forge来连接两个数据框,但是我得到了一个空的合并数据框:

const a = new DataFrame([{ A: 10, b: 1 }, { A: 20, b: 2 }, { A: 30, b: 3 }]);
const b = new DataFrame([{ A: 10, c:11 }, { A: 20, c:22 }, { A: 30, c:33 }]);
const ab = a.join(
  b,
  left => left.A,
  right => right.A,
  (left, right) => {
    return { A: left.A, b: left.b, c: right.c };
  }
);
// {content: null}

1 个答案:

答案 0 :(得分:1)

我相信您的加入符合预期。我怀疑您获得{content: null}的原因是您console.log正在ab,但是由于data-forge的懒惰评估,它无法解决内容。如果您使用.toString()方法,它会强制完成惰性评估。试试这个:

    const a = new dataForge.DataFrame([
      { A: 10, b: 1 },
      { A: 20, b: 2 },
      { A: 30, b: 3 },
    ]);
    const b = new dataForge.DataFrame([
      { A: 10, c: 11 },
      { A: 20, c: 22 },
      { A: 30, c: 33 },
    ]);
    const ab = a.join(
      b,
      (left) => left.A,
      (right) => right.A,
      (left, right) => {
        return { A: left.A, b: left.b, c: right.c };
      },
    );

    console.log(ab);
    // DataFrame { configFn: [Function], content: null }
    console.log(ab.toString());
    // __index__  A   b  c
    // ---------  --  -  --
    // 0          10  1  11
    // 1          20  2  22
    // 2          30  3  33