在 Julia 中将数组导出到 CSV 文件

Posted

技术标签:

【中文标题】在 Julia 中将数组导出到 CSV 文件【英文标题】:Export an array to a CSV file in Julia 【发布时间】:2019-03-24 19:26:31 【问题描述】:

给定一个 (2d) 数组 A 如何使用 Julia 将其导出为 CSV 文件?

回到旧版本,我会写

writecsv( "FileName.csv",  A);

这会将数组 A 转储到给定文件中。但是,这在 >= 1.0 版本中不起作用。经过一番谷歌搜索,我也尝试使用 CSV 模块做

f = open("test.csv", "a+");
CSV.write(f, A; delim = ',')

但这会引发错误

ERROR: ArgumentError: no default `Tables.rows` implementation for type: ArrayInt64,2

(我的数组 A 是 Int64 类型)。

对于这个最琐碎的问题,有人有可行的解决方案吗?

【问题讨论】:

【参考方案1】:

需要加载DelimitedFiles模块,现在只支持writedlm功能。

因此,为了将数组写入 CSV 文件,请使用:

julia> using DelimitedFiles

julia> writedlm( "FileName.csv",  A, ',')

要使用 CSV.jl 包获得相同的结果,请使用:

julia> using CSV, Tables

julia> CSV.write("FileName.csv",  Tables.table(A), writeheader=false)

因为Matrix 不支持Tables.jl 接口,所以你需要用Tables.table 包装它。

【讨论】:

不确定这是否总是需要,但请注意您可能必须添加 :auto 参数,如 DataFrame(A, :auto)。 Bogumił,这是较新的做法吗?谢谢。引用:“Matrix 中的DataFrame 构造函数需要传递 :auto 作为第二个参数来自动生成列名:DataFrame(matrix, :auto) 是的,现在需要:auto。我用当前推荐的做法更新了答案 - Tables.table 不会复制。

以上是关于在 Julia 中将数组导出到 CSV 文件的主要内容,如果未能解决你的问题,请参考以下文章

在android中将房间数据库导出到csv文件

如何在SSRS中将报告导出到.CSV?

在C#中将CSV文件导出到DataGridview

在 SQL Server 2008 中将查询结果导出到 .csv 文件

如何:在 MySQL 工作台中将记录集导出为分号分隔的 csv 文件?

如何在Laravel中将子数组元素导出为ex cel