【问题标题】:Danfo.js : read .tsv files with readCSV() / read_csv()?Danfo.js:使用 read_csv() 读取 .tsv 文件?
【发布时间】:2021-05-31 17:00:04
【问题描述】:

在 node.js 环境中使用 Danfo.js,读取 .csv 文件非常简单,如the official example:所示

const dfd = require("danfojs-node")

dfd.read_csv("file:///home/Desktop/user_names.csv")
  .then(df => {
  
   df.head().print()

  }).catch(err=>{
     console.log(err);
  })

但是,我找不到读取 .tsv 文件的方法。

有没有办法用 Danfo.js 读取制表符分隔的文件?

source 我找到以下评论:

 * @param {config} (Optional). A CSV Config object that contains configurations
 *     for reading and decoding from CSV file(s).

但我是来自 R/Python 的 javascript 新手,不知道从那里做什么。

【问题讨论】:

  • danfo.js 显然是 tfjs 后端的包装器。在 tensorflow/js 文档中,我找到了原始函数的参考:js.tensorflow.org/api/latest/#data.csv 如何通过 Danfo.js 传递这些参数?

标签: javascript node.js tensorflow.js danfojs


【解决方案1】:

这里是如何 read_csv 一个 tsv:

dfd.read_csv("file.csv", configs={delimiter:'\t'} )

Danfo.js documentation 说:

参数:configs:对象,可选 支持的参数是: ... csvConfigs:其他支持的 Tensorflow csvConfig 参数。见https://js.tensorflow.org/api/latest/#data.csv

然后that page 说:

csvConfig object optional: ... delimiter (string) 用于解析输入文件每一行的字符串。

这意味着您包含在tf.data.csv() 中的csvConfig 中的参数也可以包含在read_csv() 中的configs 中,例如,如果这样有效:

tf.data.csv(x,csvConfig={y:z})

那么这也将起作用:

dfd.read_csv(x,configs={y:z})

PS:有没有其他人注意到 Danfo.js read_csv 非常慢? dfd.read_csv 一个 23MB 的 tsv 需要 9 秒。 dfd.read_json 将其降低到仍然无法使用的慢 7 秒。将此与 0.015 秒相比,使用 apache-arrow js 读取相同数据的 22MB apache 箭头文件。当代码运行缓慢时,几乎就像谷歌受益;)

【讨论】:

    【解决方案2】:

    由于它只是tfjs实现的包装器,tfjs中还没有实现读取tsv文件,也许你可以考虑

    • 将选项卡替换为列和
    • 使用 csv 阅读器

    【讨论】:

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