javascript - D3 尝试更改 csv 导入的数据

标签 javascript csv d3.js

我正在导入一个不太干净的 CSV 文件,其中有一些我必须跳过的行,并且我已经能够使用过滤器成功完成此操作。 但是,许多字段包含不需要的字符,我无法成功删除它们。

数据带有额外的字符和空格:

Amount:"$286.28"
CheckDate:" 12/31/15"

这就是我正在尝试的:

d3.csv("DATA2015.csv", function(csv) {
    csv.CheckDate = csv.CheckDate.substring(1);
    csv.Amount = +csv.Amount.substring(1);
    csv.Fee=+csv.Fee;
    csv = csv.filter(function(row) {
        return row['Amount'] != '';
    })
    console.log(csv[0]);
    console.log(csv[1]);
    console.log(csv[2]);
    console.log(csv[3]);
    console.log(csv[4]);
});

我收到了未捕获的类型错误:无法读取 substring(1) 行上未定义的属性“子字符串”。

非常感谢任何想法。

最佳答案

我可能过于简单化了,但是 csv 不是一个数组吗? 因此运行 csv.CheckDate.substring(1) 是没有意义的。相反,您需要循环遍历数组的每个成员和 row.CheckDate.substring(1) 等。

考虑到这一点,请尝试以下操作:

d3.csv("DATA2015.csv", function(csv) {
  csv.forEach(function(row) {
    row.CheckDate = row.CheckDate.substring(1);
    row.Amount = +row.Amount.substring(1);
    row.Fee = +row.Fee;
  });

  csv = csv.filter(function(row) {
    return row.Amount !== '';
  });

  console.log(csv[0]);
  console.log(csv[1]);
  console.log(csv[2]);
  console.log(csv[3]);
  console.log(csv[4]);
});

关于javascript - D3 尝试更改 csv 导入的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37363977/

相关文章:

python - 按 1 分钟对大量 GPS 数据进行分组

ios - NSDate 在 CoreData 中被保存为时间戳

javascript - 如何将erb页面元素传递给rails中的javascript

d3.js 类似仪表的弧初始化和转换

javascript - 如何对D3饼图实现点击功能

javascript - 为什么 "for (let i..."中的 i 有时表现得像 block 作用域,但其他时候却不然

javascript - 我如何比较以前在 javascript 中有界的函数?

javascript - 使用地理定位在引导模式中加载 map ,标记未居中

javascript - WordPress 阻止注册 ES6/ESNext Uncaught SyntaxError : Unexpected token <

python - 从协程接收器写入 csv 文件...如何避免关闭文件错误?