4

我正在使用 d3.js 库制作一个小图。

我正在使用 d3.csv() 调用 .csv 中的数字。五列工作正常。

但是根据 console.log(typeof d.Rate_10) ,尽管它们数字,但据称有两列充满了“NaN”

d3.csv("minerals.csv", function(data) 
{
    data.forEach(function(d) 
    {
        d.Value_Total_10 = d.Value_Total_10 // works
        d.Value_Total_11 = d.Value_Total_11 //works

        d.Commodity = d.Commodity   //works

        d.Volume_Total_10 = d.Volume_Total_10 // works
        d.Volume_total_11 = d.Volume_Total_11 // works

        d.Rate_10 = +d.Rate_10 // script is not recognizing these values as numbers.

        console.log(typeof d.Rate_10) //prints "number"
        console.log(d.Rate_10) // prints "NaN"

        d.Rate_11 = +d.Rate_11 // script is not recognizing these values as numbers.

        console.log(typeof d.Rate_11) //prints "number"
        console.log(d.Rate_11); //prints "NaN"

        ...

我的 .csv 是另存为 .csv 的 Excel。我的麻烦“率”列最初是计算列,但我手动重新输入它们作为尝试修复。没用。

我知道这与 float 或 int 或 IEEE 或其他东西有关,但我并不完全理解这一点,我的所有值都是简单的 'ol 数字到小数点后一位或两位。

我的 .csv 在这里: http: //greencracker.net/wp-content/uploads/2012/12/minerals.csv

是什么赋予了?我不明白我的工作列和我的 NaN 列之间的区别。

4

1 回答 1

0

刚刚遇到同样的问题。

我导入 d3.csv 的 csv 文件,一些数字返回 NaN。原来我的问题是 csv 文件。

我使用 excel 创建了它,在我导入的其中一列中,我在大约 3,000 行有大约 3 个单元格,它们的格式设置为“数字”。这意味着 excel 在数字中放置了一个逗号作为千位分隔符。重新格式化列,没有逗号或额外的格式。瞧

于 2015-08-29T03:11:07.347 回答