当前位置: 代码迷 >> JavaScript >> 导入 CSV 后如何修改列标题?
  详细解决方案

导入 CSV 后如何修改列标题?

热度:59   发布时间:2023-06-03 17:46:22.0

我正在尝试使用 d3.csv() 导入一个 csv 文件,如下所示:

d3.csv("mydata.csv", function(d) { 
console.log(d.columns);
}

这将输出“时间”、“速率”、“id”。 在将此数据加入 topojson 文件之前,我想更改程序中的第一个和最后一个列标题名称。 有什么办法可以做到这一点吗?

该属性columns只是由d3.csv在数据数组中创建的一个属性:

 const csv = `foo,bar,baz 12,14,13 2,16,4 17,42,10`; const data = d3.csvParse(csv); console.log(data.columns);
 <script src="https://cdnjs.cloudflare.com/ajax/libs/d3/5.7.0/d3.min.js"></script>

你可以用它做任何你想做的事:

 const csv = `foo,bar,baz 12,14,13 2,16,4 17,42,10`; const data = d3.csvParse(csv); data.columns[0] = "I'm a new value!"; console.log(data.columns);
 <script src="https://cdnjs.cloudflare.com/ajax/libs/d3/5.7.0/d3.min.js"></script>

你甚至可以完全摆脱它:

 const csv = `foo,bar,baz 12,14,13 2,16,4 17,42,10`; const data = d3.csvParse(csv); data.columns.length = 0; console.log(data.columns);
 <script src="https://cdnjs.cloudflare.com/ajax/libs/d3/5.7.0/d3.min.js"></script>

这里真正的问题是:你为什么要修改它? 该属性包含 CSV 文件中的所有标题,如 API 所述:

返回的数组还公开一个columns属性,其中包含按输入顺序排列的列名。

因此, columns属性对于按原样访问数据数组非常有用。 话虽如此,更改该属性毫无意义,因为您不再拥有标头名称,并且代码中的事情可能会进一步中断。 因此,如果要更改标题名称,我相信更改 CSV 文件本身是一个更好的选择。

  相关解决方案