导入CSV数据时解析带日期的标题行

鲍曼

我正在使用d3导入CSV文件以进行数据可视化。我的CSV文件包含需要转换为日期的标题行,以及需要转换为整数的数据:

ISBN,2019-08,2019-09,2019-10
9782749205465,107,488,218
9789423069313,95,87,186

我可以使用以下方法导入CSV文件并将数据解析为整数:

d3.csv("/assets/2019-20-download-stats.csv").then(function (data) {
  data.forEach(function(d) {
    d.ISBN = +d.ISBN;
    d['201908'] = +d['201908'];
    d['201909'] = +d['201909'];
    d['201910'] = +d['201910'];
  });
});

但是标题行是输出数组中的所有字符串,例如:

{
  "201908": 107,
  "201909": 488,
  "201910": 218,
  "ISBN": 9782749205465,
}

导入数据时如何格式化标题行?

杰拉尔多·富塔多

这几乎可以肯定是一个XY问题我看不到任何情况,您的数据应具有以日期为键的对象。最重要的是,请注意以下事实:如果将日期对象作为对象的键传递,JavaScript会自动将日期对象转换为字符串如果您(无论出于何种原因)确实希望将日期作为键,则应使用Map

话虽如此,这就是您应该做的:在行转换功能(代码中没有任何内容)中,检查日期...

if (!isNaN(new Date(key).getTime()))

...,如果找到一个,则用于new Date生成密钥:

foo[new Date(key)] = +d[key]

这是一个使用示例d3.csvParse(与您完全一样d3.csv):

const csv = `ISBN,2019-08,2019-09,2019-10
9782749205465,107,488,218
9789423069313,95,87,186`;

const data = d3.csvParse(csv, row);

function row(d) {
  const newObject = {};
  for (var key in d) {
    if (!isNaN(new Date(key).getTime())) {
      newObject[new Date(key)] = +d[key]
    } else {
      newObject[key] = +d[key]
    }
  };
  return newObject;
};

console.log(data)
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/5.7.0/d3.min.js"></script>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在 Matlab 中使用 sprintf 从 csv 文件(带标题)导入数据

导入Access 2010时,使用带分隔符的文本文件的第二行作为标题行。

在SAS中导入CSV数据时如何设置正确的日期格式?

Python Pandas-阅读带注释标题行的csv

解析不一致的数据时,“发现”标题行的最佳方法是什么?

读取CSV时跳过标题行

在 db2 中使用 Ingest Utility 从 csv 加载数据时跳过标题行

用pandas加载CSV数据时,第一行被误认为是标题

解析日期时获取奇怪的数据

CSV导入熊猫时跳过行

使用php导入csv时跳过行

导入CSV时选择指定的行

将CSV导入PowerPivot时跳过行

将csv导入pandas数据框时未读取所有行

导入数据期间解析日期格式的最佳方法

跳过第一行并将第二行用作熊猫中标头的原始标题数据时无法读取csv

导入CSV到MySQL时,日期字段值是错误的

使用.csv将数据导入PostgreSQL时出现问题(csv中大于5万行)

当结尾处的行不属于.csv数据时,Univocity解析器如何正确读取.csv文件的数据?

解析BigQuery的导入CSV时如何查找问题

导入CSV数据时删除数据框中的级别

elasticsearch - 使用 logstash 日期导入 csv 未解析为日期时间类型

当标题位于页面下方时,解析带有标题的CSV文件

当行名称在R中带有ñ或重音符号时,如何从csv或xlsx文件导入数据?

BCP从SQL导出到CSV文件,元数据,标题行

ReactJS:解析CSV日期

read.csv 导入数据时更改字符

将csv导入python数据框时排除列

将 csv 文件导入 panda 数据框时出错