Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dataframe 如何将数组从跳转值添加到数据帧中的列_Dataframe_Julia_Julia Jump - Fatal编程技术网

Dataframe 如何将数组从跳转值添加到数据帧中的列

Dataframe 如何将数组从跳转值添加到数据帧中的列,dataframe,julia,julia-jump,Dataframe,Julia,Julia Jump,我有这个数组,需要在此基础上创建一个数据帧 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]) Ke

我有这个数组,需要在此基础上创建一个数据帧

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上执行收集操作

重新创建数据:

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
将数据放入数据帧:

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])
您需要在DenseAxisArray上执行收集操作

重新创建数据:

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
将数据放入数据帧:

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])

DataFrames.jl没有问题,getvalue.W[1:6]-请检查如何正确索引到DenseAxisArray。在多个位置发布时,请提供链接:DataFrames.jl没有问题,getvalue.W[1:6]有问题-请检查如何正确索引到您的DenseAxisArray。在多个位置发布时,请提供链接: