by0 by0 - 6 months ago 53
Javascript Question

read csv/tsv with no header line in D3

I have CSV data which looks something like:

Data



1,1,10
1,2,50
1,3,5
etc...


And I am trying to read in the data. However, my initial data does not contain a header row (as seen above) so it is taking the first data row to be the header (1,1,10). Is there anyway around this. I want to set the header names after I read the data

Javascript



d3.csv("data/testnh.csv", function(data) {
console.log(data);
}


Thanks!

Answer

Use d3.text to load the data, and then d3.csv.parseRows to parse it. For example:

d3.text("data/testnh.csv", function(text) {
  console.log(d3.csv.parseRows(text));
});

You'll probably also want to convert your columns to numbers, because they'll be strings by default. Assume they are all numbers, you could say:

d3.text("data/testnh.csv", function(text) {
  var data = d3.csv.parseRows(text).map(function(row) {
    return row.map(function(value) {
      return +value;
    });
  });
  console.log(data);
});
Comments