Skip to content

Commit

Permalink
Update CSV to JSON script to handle null values properly.
Browse files Browse the repository at this point in the history
  • Loading branch information
baus committed May 16, 2018
1 parent 8170f56 commit 3dc4a40
Showing 1 changed file with 19 additions and 16 deletions.
35 changes: 19 additions & 16 deletions util/convertcsvtojson.js
@@ -1,26 +1,29 @@
var fs = require('fs');
var babyparse = require('babyparse');

// Data from: https://www.treasury.gov/resource-center/data-chart-center/interest-rates/Pages/TextView.aspx?data=yield
const fs = require('fs');
const babyparse = require('babyparse');

parsed = babyparse.parseFiles('yields.csv');

rows = parsed.data;
const parsed = babyparse.parseFiles('yields.csv');
const rows = parsed.data;

// Data from: https://www.treasury.gov/resource-center/data-chart-center/interest-rates/Pages/TextView.aspx?data=yield
function isNumber(number) {
return number !== null && !isNaN(number);
}

var outArray = [];
var prevArray = [];
var curArray = [];
for (var i = 0; i < 11; ++i) {
prevArray.push(NaN);
const outArray = [];
let prevArray = [];
let curArray = [];
for (let i = 0; i < 11; ++i) {
prevArray.push(null);
}
for (let row of rows) {
var date = new Date(row[0]);
let date = new Date(row[0]);
date = new Date(date.getTime() - date.getTimezoneOffset() * 60 * 1000);
var dateArray = [];
const dateArray = [];
dateArray.push(date.getTime());
i = 0;
for (var col of row.slice(1, row.length)) {
let i = 0;
for (let col of row.slice(1, row.length)) {
let yieldArray = [];
if (col === 'N/A') {
yieldArray.push(null);
Expand All @@ -30,7 +33,7 @@ for (let row of rows) {
yieldArray.push(parseFloat(col));
curArray.push(parseFloat(col));
}
if (!isNaN(prevArray[i]) && !isNaN(curArray[i])) {
if (isNumber(prevArray[i]) && isNumber(curArray[i])) {
yieldArray.push(Number((curArray[i] - prevArray[i]).toFixed(2)));
yieldArray.push(Number((((curArray[i] - prevArray[i]) / prevArray[i]) * 100.0).toFixed(2)));
}
Expand All @@ -46,7 +49,7 @@ for (let row of rows) {
outArray.push(dateArray);
}

fs.writeFile("yields.json", JSON.stringify(outArray), function (err) {
fs.writeFile("yields.json", JSON.stringify(outArray), (err) => {
if (err) {
return console.log(err);
}
Expand Down

0 comments on commit 3dc4a40

Please sign in to comment.