I have CSV data which looks something like:
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
d3.csv("data/testnh.csv", function(data) { console.log(data); }
Thanks!
Use d3.text to load the data, and then d3.csvParseRows to parse it. For example:
d3.text("data/testnh.csv", function(text) { console.log(d3.csvParseRows(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.csvParseRows(text).map(function(row) { return row.map(function(value) { return +value; }); }); console.log(data); });
Since Bostock's answer in 2012, d3.csv.parseRows allows for an optional accessor function, which enables his answer to be expressed more concisely:
d3.text("data/testnh.csv", function(text) { var data = d3.csv.parseRows(text, function(d) { return d.map(Number); }); // Now do something with data });
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With