【问题标题】:Huge CSV data to display in ChartJS巨大的 CSV 数据显示在 ChartJS
【发布时间】:2020-07-11 11:26:16
【问题描述】:

我有一个包含这样数据的 CSV 文件 -

time,a,b,c,d,e,f,g
2020-06-18 14:59:34.585143,2,0,0,2,1,1,0
2020-06-18 14:59:38.302183,2,0,0,2,1,0,1
..
..
2020-06-18 15:04:11.529016,1,0,0,1,0,0,0
2020-06-18 15:04:11.874480,1,0,0,1,0,0,0
2020-06-18 15:04:12.213976,1,0,0,1,0,0,0

我正在使用node-csv 包阅读它并将其发送到基于Angular 的前端,以便稍后使用ChartJS 在图表上绘制。

由于数据的密度(每秒),图表看起来很难看。

我希望对 CSV 中的数据进行四舍五入,这应该是-

  1. 从最近一次输入的最后 6 小时开始。
  2. 应将 CSV 中的 a、b、c、d... 的相应值汇总到 30 分钟。

【问题讨论】:

  • 这是一个过滤问题。解决方案是查找最近 6 小时内的所有记录并提供服务。 csv 文件处于读取静态的位置。这意味着您希望将该数据转换为 JSON 或数组表示。从那里它只是使用 array.map 语句来查找数据时间在 6 小时视图内的所有项目。 node-csv 可以用 JSON 或 Array 表示数据吗?您可能需要在 map 语句中编写正则表达式。

标签: node.js angular csv node-csv-parse


【解决方案1】:

我认为您需要创建一个自定义解析器,例如 this answer

然后从 DateTime 值创建一个键,使其每 30 分钟四舍五入一次,例如“2020-06-18 14:59:34.585143”到键“202006181430”,参见this answer 中的示例。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多