Danfo.js:使用 read_csv() 读取 .tsv 文件?

问题描述

在带有 Danfo.js 的 node.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 新手,不知道从那里开始做什么。

解决方法

这里是如何读取_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 对象可选:... delimiter (string) 用于解析输入文件每一行的字符串。

这意味着您包含在 csvConfig 中的 tf.data.csv() 中的参数也可以包含在 configs 中的 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 秒。将此与使用 apache-arrow js 读取相同数据的 22MB apache 箭头文件的 0.015 秒进行比较。当代码运行缓慢时,这几乎就像 google 受益一样 ;)

,

由于它只是一个包装 arount tfjs 实现和读取 tsv 文件尚未在 tfjs 中实现,也许你可以考虑

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