我想制作一个大小为 N*K
的 DataFrame ,我希望某些列是 Float64
,其他列为 Int64
。是否有一种特定的方法来定义 DataFrame 来允许我做到这一点?
这是我目前的方法:
df = convert(DataFrame, zeros(Float64, (N, K)))
df[:,K-2] = convert(Array{Int64,1}, df[:,K-2])
df[:,K-1] = convert(Array{Int64,1}, df[:,K-1])
最佳答案
您可以连接两个 DataFrame:
julia> hcat(DataFrame(Float64, 3, 5), DataFrame(Int64, 3, 3))
3×8 DataFrames.DataFrame
│ Row │ x1 │ x2 │ x3 │ x4 │ x5 │ x1_1 │ x2_1 │ x3_1 │
├─────┼────┼────┼────┼────┼────┼──────┼──────┼──────┤
│ 1 │ NA │ NA │ NA │ NA │ NA │ NA │ NA │ NA │
│ 2 │ NA │ NA │ NA │ NA │ NA │ NA │ NA │ NA │
│ 3 │ NA │ NA │ NA │ NA │ NA │ NA │ NA │ NA │
DataFrame
构造函数还采用类型向量作为参数:
julia> DataFrame([Float64, Float64, Int64, Int64], [Symbol("x$i") for i in 1:4], 3)
3×4 DataFrames.DataFrame
│ Row │ x1 │ x2 │ x3 │ x4 │
├─────┼────┼────┼────┼────┤
│ 1 │ NA │ NA │ NA │ NA │
│ 2 │ NA │ NA │ NA │ NA │
│ 3 │ NA │ NA │ NA │ NA │
您可以使用串联构造适当的类型向量:
julia> [repeat([Float64]; outer=4); repeat([Int64]; outer=2)]
6-element Array{DataType,1}:
Float64
Float64
Float64
Float64
Int64
Int64
关于dataframe - 具有特定列类型的 Julia 数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40375627/