朱莉娅问题阅读相对较大的csv文件

时间:2018-12-20 20:52:38

标签: julia

使用Julia 1.0.0 我有一个75列和约700,000行的csv文件。直到昨天,我的代码仍在几秒钟内读取并转换为DataFrame。

RawDat = CSV.read("filename.csv", header=true, rows_for_type_detect=500, 
missingstring="", categorical=false, types=dictm)

几天前,我安装了JLD.jl,它触发了多个软件包进行更新。我可能已经几个月没有更新我的软件包,包括CSV和DataFrames。自更新以来,我无法再读取相同的CSV文件。该代码将挂起20分钟以上,并且没有任何反应。

我尝试使用CSV.File,因为似乎已弃用CSV.read。这会读取文件,但我仍然无法将其转换为DataFrame。

RawDat = CSV.File("filename.csv", header=1, missingstring="", 
          categorical=false, types=dictm) 

可以,但是如果我尝试

RawDat1 = DataFrame(RawDat)

它挂起,没有任何反应。同样,如果我尝试

RawDat = CSV.File("filename.csv", header=1, missingstring="", 
          categorical=false, types=dictm) |> DataFrame

无法读取文件。

有人可以帮助我了解为什么会这样,以及如何将这个csv文件读入DataTable吗?我有很多使用DataTable功能处理此文件的下游代码。

编辑

我相信我已经弄清楚了,然后发布,以防其他人遇到类似问题。我能够一次将文件转换为DataFrame一列。速度很快,但总的来说,我认为这应该自动完成,而不需要额外的代码行。到目前为止,这是可行的:

datcols = Tables.columns(RawDat)
MyDF = DataFrame()
kcs = keys(datcols)
for ci in kcs
    MyDF[ci] = datcols[ci]
end

0 个答案:

没有答案