我正在导入一个不太干净的 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/