如何将 JuMP 值的数组添加到数据框中的列
How to add an array from JuMP values to a colum in a dataframe
我有这个数组,需要基于它创建一个数据框
getvalue.(W)
1-dimensional DenseAxisArray{Float64,1,...} with index sets:
Dimension 1, 0:6
And data, a 7-element Array{Float64,1}:
80.0
65.0
65.0
65.0
65.0
65.0
65.0
我在尝试时遇到这个错误
df=DataFrame(W=getvalue.(W)[1:6])
KeyError: key 1:6 not found
您需要在 DenseAxisArray
上执行 collect
。
正在重新创建您的数据:
julia> using JuMP, DataFrames
julia> vv = JuMP.Containers.DenseAxisArray([80.,65.,65.,65.,65.,65.,65.], 0:6)
1-dimensional DenseAxisArray{Float64,1,...} with index sets:
Dimension 1, 0:6
And data, a 7-element Array{Float64,1}:
80.0
65.0
65.0
65.0
65.0
65.0
65.0
将数据放入 DataFrame:
julia> DataFrame(vv=collect(vv)[1:6])
6×1 DataFrame
│ Row │ vv │
│ │ Float64 │
├─────┼─────────┤
│ 1 │ 80.0 │
│ 2 │ 65.0 │
│ 3 │ 65.0 │
│ 4 │ 65.0 │
│ 5 │ 65.0 │
│ 6 │ 65.0 │
如果您的 vv
很大,您还可以使用稍长的代码来节省收集它的时间和内存(结果将是相同的):
DataFrame(vv=[vv[CartesianIndex(i)] for i in 1:6])
我有这个数组,需要基于它创建一个数据框
getvalue.(W)
1-dimensional DenseAxisArray{Float64,1,...} with index sets:
Dimension 1, 0:6
And data, a 7-element Array{Float64,1}:
80.0
65.0
65.0
65.0
65.0
65.0
65.0
我在尝试时遇到这个错误
df=DataFrame(W=getvalue.(W)[1:6])
KeyError: key 1:6 not found
您需要在 DenseAxisArray
上执行 collect
。
正在重新创建您的数据:
julia> using JuMP, DataFrames
julia> vv = JuMP.Containers.DenseAxisArray([80.,65.,65.,65.,65.,65.,65.], 0:6)
1-dimensional DenseAxisArray{Float64,1,...} with index sets:
Dimension 1, 0:6
And data, a 7-element Array{Float64,1}:
80.0
65.0
65.0
65.0
65.0
65.0
65.0
将数据放入 DataFrame:
julia> DataFrame(vv=collect(vv)[1:6])
6×1 DataFrame
│ Row │ vv │
│ │ Float64 │
├─────┼─────────┤
│ 1 │ 80.0 │
│ 2 │ 65.0 │
│ 3 │ 65.0 │
│ 4 │ 65.0 │
│ 5 │ 65.0 │
│ 6 │ 65.0 │
如果您的 vv
很大,您还可以使用稍长的代码来节省收集它的时间和内存(结果将是相同的):
DataFrame(vv=[vv[CartesianIndex(i)] for i in 1:6])