尝试将变量写入数据库并保存为csv时,我发现像x = 1.2345这样的简单变量是以这种格式编写的:默认情况下,将{Any,Any}(“x”,1.234)配对到csv文件中。
在某些示例中(如https://www.geeksforgeeks.org/working-with-csv-files-in-julia/),写入数据时不包含类型信息。
下面是我的代码:
using DataFrames
using CSV
function pushDbVals!(df,names,vals)
if (length(names)!=length(vals))
error("length(names)!=length(vals): ", length(names),"!=", length(vals))
end
row = []
for d in vals
push!(row,d)
end
push!(df,row)
end
x = 1.234
dbNames = ["x"]
vals = Dict()
vals["x"] = x
println("x: ", x)
df = DataFrame([ name =>[] for name in dbNames])
pushDbVals!(df,dbNames,vals)
CSV.write("test.csv", df)
1条答案
按热度按时间zwghvu4y1#
原因是操作后的数据框不存储浮点数,而是存储对。请参阅:
您很可能需要以下内容:
正如你所看到的,DataFrames.jl已经支持将行推送到你最想要的 Dataframe 中。(请检查
DataFrame
的cols
和promote
kwargs,因为它们允许你根据你的需要微调push!
的行为)