Julia 是否使用预先分配的内存向数据帧添加行?

Julia 是否使用预先分配的内存向数据帧添加行?,julia,Julia,假设我有一个预大小的数据帧,我想给每一行赋值。(前推!和附加!退出游戏) 上面的代码显示了如何对每个迭代行逐个单元格地执行该操作 是否有一种解决方案可以在每次迭代中一次添加整个行? 因为 引发错误的类型异常。要访问行,语法是[row,:],而不仅仅是row 此外,您还需要首先将该行转换为数据帧 for n in 1:10 df[n,:] = DataFrame([n "random text2"]) end 您可以使用自己的函数轻松设置行: julia> function set

假设我有一个预大小的数据帧,我想给每一行赋值。(前推!和附加!退出游戏)

上面的代码显示了如何对每个迭代行逐个单元格地执行该操作

是否有一种解决方案可以在每次迭代中一次添加整个行? 因为


引发错误的类型异常。

要访问行,语法是
[row,:]
,而不仅仅是row

此外,您还需要首先将该行转换为数据帧

for n in 1:10
    df[n,:] = DataFrame([n "random text2"])
end

您可以使用自己的函数轻松设置行:

julia> function setrow!(df, rowi, val)                                                                                                      
           for j in eachindex(val)  
               df[rowi, j] = val[j] 
           end                      
           df                                                                                                                       
       end                          
setrow! (generic function with 1 method)

julia> setrow!(df, 1, [1, "a"])
10×2 DataFrames.DataFrame
│ Row │ id              │ value    │
├─────┼─────────────────┼──────────┤
│ 1   │ 1               │ "a"      │
│ 2   │ 140525709817424 │ "#undef" │
│ 3   │ 140525709817488 │ "#undef" │
│ 4   │ 140525709817072 │ "#undef" │
│ 5   │ 140525709817104 │ "#undef" │
│ 6   │ 140525709817136 │ "#undef" │
│ 7   │ 140525709817168 │ "#undef" │
│ 8   │ 140525709817200 │ "#undef" │
│ 9   │ 140525709817232 │ "#undef" │
│ 10  │ 0               │ "#undef" │
理想情况下,您可以使用广播分配语法:

df[2, :] .= [2, "b"]

但这似乎没有实现(可能是出于好的原因,我不确定)。

使用此解决方案时,需要注意数据帧中的列顺序。
julia> function setrow!(df, rowi, val)                                                                                                      
           for j in eachindex(val)  
               df[rowi, j] = val[j] 
           end                      
           df                                                                                                                       
       end                          
setrow! (generic function with 1 method)

julia> setrow!(df, 1, [1, "a"])
10×2 DataFrames.DataFrame
│ Row │ id              │ value    │
├─────┼─────────────────┼──────────┤
│ 1   │ 1               │ "a"      │
│ 2   │ 140525709817424 │ "#undef" │
│ 3   │ 140525709817488 │ "#undef" │
│ 4   │ 140525709817072 │ "#undef" │
│ 5   │ 140525709817104 │ "#undef" │
│ 6   │ 140525709817136 │ "#undef" │
│ 7   │ 140525709817168 │ "#undef" │
│ 8   │ 140525709817200 │ "#undef" │
│ 9   │ 140525709817232 │ "#undef" │
│ 10  │ 0               │ "#undef" │
df[2, :] .= [2, "b"]