我想创建一个大小为N*K
的数据框,我希望有些列为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])
答案 0 :(得分:3)
您可以连接两个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