Dataframe 为什么XLSX创建的数据帧的列类型始终为any类型

Dataframe 为什么XLSX创建的数据帧的列类型始终为any类型,dataframe,julia,xlsx,Dataframe,Julia,Xlsx,我在excel中有一些变量,我想把它们上传到Julia并估计一个线性模型。我的变量由实数组成,但是XLSX创建的数据帧中的每一列都是任意类型的 我想知道是否有一种方法可以让XLSX为每一列指定正确的类型 谢谢你我不知道在读者中是否可能,但以下是在后处理中实现这一点的方法: julia> df = DataFrame(a=Any[1,2], b=Any[1,missing], c=Any[1.0,2.0], d=Any[1.0,missing]) 2×4 DataFrame Row │ a

我在excel中有一些变量,我想把它们上传到Julia并估计一个线性模型。我的变量由实数组成,但是XLSX创建的数据帧中的每一列都是任意类型的

我想知道是否有一种方法可以让XLSX为每一列指定正确的类型


谢谢你

我不知道在读者中是否可能,但以下是在后处理中实现这一点的方法:

julia> df = DataFrame(a=Any[1,2], b=Any[1,missing], c=Any[1.0,2.0], d=Any[1.0,missing])
2×4 DataFrame
 Row │ a    b        c    d
     │ Any  Any      Any  Any
─────┼────────────────────────────
   1 │ 1    1        1.0  1.0
   2 │ 2    missing  2.0  missing

julia> transform!(df, names(df) .=> ByRow(identity), renamecols=false)
2×4 DataFrame
 Row │ a      b        c        d
     │ Int64  Int64?   Float64  Float64?
─────┼────────────────────────────────────
   1 │     1        1      1.0        1.0
   2 │     2  missing      2.0  missing

只需使用
infere\u eltypes=true
以下是一个示例:

julia> DataFrame(XLSX.readtable("file.xlsx",1;infer_eltypes=true)...)
3×3 DataFrame
│ Row │ col1  │ col2    │ col3   │
│     │ Int64 │ Float64 │ String │
├─────┼───────┼─────────┼────────┤
│ 1   │ 1     │ 4.5     │ txt1   │
│ 2   │ 2     │ 5.5     │ txt2   │
│ 3   │ 3     │ 6.7     │ txt3   │