【发布时间】:2018-09-23 21:03:59
【问题描述】:
我是R 用户,对Julia 非常感兴趣。我没有计算机科学背景。我只是尝试使用以下命令读取Juno 中的“csv”文件:
using CSV
using DataFrames
df = CSV.read(joinpath(Pkg.dir("DataFrames"),
"path/to/database.csv"));
并收到以下错误消息
CSV.CSVError('error parsing a 'Int64' value on column 26, row 289; encountered '.'"
in read at CSV/src/Source.jl:294
in #read#29 at CSV/src/Source.jl:299
in stream! at DataStreams/src/DataStreams.jl:145
in stream!#5 at DataStreams/src/DataStreams.jl:151
in stream! at DataStreams/src/DataStreams.jl:187
in streamto! at DataStreams/src/DataStreams.jl:173
in streamfrom at CSV/src/Source.jl:195
in paresefield at CSV/src/paresefield.jl:107
in paresefield at CSV/src/paresefield.jl:127
in checknullend at CSV/src/paresefield.jl:56
我查看数据框中指示的条目:第287行、第288行分别是30、33(似乎是Integer类型),第289行是30.445(类型为float)。
问题是DataFrames 用Int 填充列并在看到Float 时停止吗?
在此先感谢
【问题讨论】:
-
你会做一个MCVE吗?我想亲眼看看。
-
非常感谢您的回答@rickhg12hs。我只是尝试创建一个 MCVE,但这个理论不起作用(从 MCVE 导入数据并没有问题,从 csv 中输入
30, 31, 32, 22.51234)。但事实仍然是,这是在 Julia 指示的行中遇到的模式。因为它是一个研究数据库,我不能把它放在互联网上抱歉。因此,我删除了问题的最后一个短语。 -
例如,
io = IOBuffer("1,2,3,4\n5,6,7,8\n9,10,11,12\n13,14.2,15,16");df=CSV.read(io, datarow=1)适合我。 -
出于好奇,如果你尝试
df = CSV.read(joinpath(Pkg.dir("DataFrames"), "path/to/database.csv"), datarow=289)会发生什么? -
有如下错误输出:
function joinpath does not accept keyword arguments [1] kwfunc(::Any) at ./boot.jl:237 [2] eval(::Module, ::Any) at ./boot.jl:235 [3] eval(::Any) at ./boot.jl:234 [4] macro expansion at /Applications/JuliaPro-0.6.2.2.app/Contents/Resources/pkgs-0.6.2.2/v0.6/Atom/src/repl.jl:117 [inlined][5] anonymous at ./:?