CSV.write()不会保留任何值

时间:2019-10-07 22:04:30

标签: julia

我正在尝试将Julia数据框导出为CSV,并且其中不包含任何值。为了简化起见,假设我具有以下数据框:

using DataFrames, CSV

df = DataFrame(A = [nothing,2,3], B = [4,5,nothing])

当我尝试导出时,出现以下错误:

df |> CSV.write("df.csv")

ArgumentError: `nothing` should not be printed; use `show`, `repr`, or custom output instead.

我应该将虚无值转换为其他缺失值吗?如果是这样,我该如何编码?

2 个答案:

答案 0 :(得分:4)

您可以使用something函数将nothing转换为您想要的任何内容(例如missing),如下所示:

something.(df, missing) |> CSV.write("aaa.txt")

给出here的当前设计背后不支持nothing的理由。

答案 1 :(得分:2)

我更喜欢CSV transform参数的语法:

CSV.write("filename.csv", df, transform=(col, val) -> something(val, missing))

From the CSV.write documentation

将此作为单独的答案发布,希望在我遗漏重要内容时区分评论并进行澄清。