julia - 如何用 julia 创建输出 csv?
问题描述
我是 Julia 的新用户。我尝试为启动创建一个代码。
begin
using Pkg
Pkg.add("CSV")
Pkg.add("DataFrames")
using Statistics
using DataFrames
using CSV
using Dates
v=[1:12]
resultat=CSV.File("ResultatPropre.csv";header=true; delim=";")
println(resultat)
i=1
while i <= 12
a=now() ##Dates.millisecond
dt = CSV.read(resultat[i,1]*"_"*resultat[i,2]*"_"*resultat[i,3]*"_"*resultat[i,4]*"_1.csv")
x=resultat[i,6]
moy="MOYENNE"
if x==moy
for c in eachcol(dt)
println(mean(dt[:c]))
end
else
for c in eachcol(dt)
println(median(dt[:c]))
end
end
v[i]=now()-a
close(dt)
i = i + 1
end
CSV.write("OUT1.csv", DataFrame(hcat(resultat,v)), writeheader=false)
close(resultat)
end
我不知道这段代码是否正确,但我没有错误消息。文档 OUT1.CSV 为空。为什么?
对不起,如果你不明白我的英语不流利。谢谢你。
解决方案
与您之前的问题一样,这很难调试,因为它依赖于存储在本地计算机上的文件 - 如果您可以创建最小的工作示例来重现您遇到的错误,那么其他人最容易帮助您。
从您发布的内容来看,尽管您尝试执行的操作存在一个明显的问题:
resultat=CSV.File("ResultatPropre.csv";header=true; delim=";")
这将返回一个CSV.File
对象,而不是您可能期望的 DataFrame。考虑以下示例:
julia> using DataFrames, CSV
julia> CSV.write("out.csv", DataFrame(rand(5, 2))) # example data
"out.csv"
julia> resultat = CSV.File("out.csv")
5-element CSV.File{false}:
CSV.Row{false}: (x1 = 0.8579220366916582, x2 = 0.6209363986752581)
CSV.Row{false}: (x1 = 0.25341118271903995, x2 = 0.13828085618933872)
CSV.Row{false}: (x1 = 0.67532944746357, x2 = 0.7830459406731047)
CSV.Row{false}: (x1 = 0.268297279369758, x2 = 0.9701649420771219)
CSV.Row{false}: (x1 = 0.8369770803698637, x2 = 0.77439272213442)
hcat
resultat
考虑到您和您的v
向量稍后,这可能不是您所期望的。
但是,实际上会在您的代码中出错的行是:
close(dt)
此时,dt
是 a DataFrame
,因为您通过调用CSV.read
csv 文件创建了它,并且您正在调用close
此 DataFrame 上的函数。但是,close
DataFrames 不存在方法:
julia> close(DataFrame(rand(5,2)))
ERROR: MethodError: no method matching close(::DataFrame)
的结果CSV.read
是DataFrame
存储在内存中的,并且在对 DataFrame 执行操作后需要关闭的任何地方都没有“打开”文件句柄 -CSV.read
与调用open
然后迭代的某些文本文件不同。
推荐阅读
- sql - 返回具有多个值之一的行
- xcode - 公证应用程序时如何阻止 Xcode 崩溃?
- c# - 将包含数组/列表的 JSON 响应存储到数据库中
- c - 使用 SDL 表面进行像素操作?
- javascript - eslint-disable 不会抑制 unicorn/filename-case eslint 规则的错误
- python - 如何在 Python/Django 中使用 Allauth 重定向登录?
- html - 如何在窗口调整大小时固定元素
- bash - 使用 sed 提取文本文件以删除另一个文件中按行给出的后缀
- grant - 撤销临时表的权限
- python - 如何将 Numpy 数组列表保存到现有 csv 文件的列中?