1

在带有 Danfo.js 的 node.js 环境中,读取 .csv 文件非常容易,如官方示例所示:

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 读取制表符分隔的文件?

源代码中,我找到了以下评论:

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

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

4

2 回答 2

2

以下是如何 read_csv 一个 tsv:

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

Danfo.js 文档说:

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

然后那个页面说:

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

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

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 箭头文件。当代码运行缓慢时,几乎就像谷歌受益一样;)

于 2021-04-07T18:02:44.600 回答
0

由于它只是 tfjs 实现的包装器,并且读取 tsv 文件尚未在 tfjs 中实现,也许您可​​以考虑

  • 用列替换选项卡和
  • 使用 csv 阅读器
于 2021-03-03T08:32:59.120 回答