1

我希望 JuliaDB.loadtable() 读取 CSV(实际上是一堆 CSV,但为简单起见,我们只尝试一个),其中所有列都被解析为字符串。

这是我尝试过的:

using CSV
using DataFrames
using JuliaDB

df1 = DataFrame(
    [['a', 'b', 'c'], [1, 2, 3]],
    ["name", "id"]
)

CSV.write("df1.csv", df1)

# This works, but if I have 10+ columns it would get unwieldy
df1 = loadtable("df1.csv"; colparsers=Dict(:name=>String, :id=>String),)

# This doesn't work
df1 = loadtable("df1.csv"; colparsers=String,)
# MethodError: no method matching iterate(::Type{String})

以下是它在 R 中的实现方式:

df1 = read.csv("df1.csv", colClasses = "character")
4

1 回答 1

0

如果您知道列数(或者只是它的上限),您可以使用类型,我应该认为(来自CSV.jl文档):

types:用于列类型的 Vector 或 Dict 类型;a Dict 可以映射列索引Int,或命名Symbol 或String 为一列键入,即Dict(1=>Float64) 将第一列设置为Float64,Dict(:column1=>Float64) 将设置名为column1 的列到 Float64 并且 Dict("column1"=>Float64) 将 column1 设置为 Float64;如果提供了 Vector,则它必须与标题中提供或检测到的列数匹配

于 2020-06-06T04:16:28.990 回答