我是一个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
时停止了问题吗?
非常感谢
答案 0 :(得分:2)
问题在于浮动发生在数据集中为时已晚。默认情况下,CSV.jl使用等于rows_for_type_detect
的{{1}}值。这意味着仅前100行用于确定输出中的列类型。将100
中的rows_for_type_detect
关键字参数设置为例如CSV.read
,一切都应该正常工作。
或者,您可以传递300
关键字参数来手动设置列类型(在这种情况下,适合于此列的types
)。