dataframe - 具有特定列类型的 Julia 数据框

标签 dataframe julia

我想制作一个大小为 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/

相关文章:

arrays - Julia 字符数组转字符串

hash - Julia:不可变的复合类型

julia - Julia 中使用 Plots.jl 的多个直方图

R 在数据框列上应用用户定义函数

python - 选择 usecols 参数将 Excel 文件导入 Pandas 时出错

python - Pandas - 从转换后的数据帧中检索原始数据帧

python - Pandas - 将匹配的列值与行对齐

Julia 执行速度

plot - 如何将标记添加到Plots.jl图的图例中?

python - 如何创建具有多个自定义索引名称的新 pandas 数据框?