问题描述
在带有 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);
})
有没有办法使用 Danfo.js 读取制表符分隔的文件?
* @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'} )
参数: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 阅读器