我有一个数组X,我想转换为数据帧。根据网络推荐,我尝试转换为数据框并收到以下错误。
julia> y=convert(DataFrame,x)
ERROR:
{转换{1}}
当我尝试has no method matching convert(::Type{DataFrame}, ::Array{Float64,2})
in convert at base.jl:13
时,转换有效,但我得到一个投诉,即转换已弃用。
DataFrame(x)
我是否应该注意另一种保持代码一致的方法?
编辑: 朱莉娅0.3.2, DataFrames 0.5.10 OSX 10.9.5
julia> DataFrame(x)
WARNING: DataFrame(::Matrix, ::Vector)) is deprecated, use convert(DataFrame, Matrix) instead in DataFrame at /Users/Matthew/.julia/v0.3/DataFrames/src/deprecated.jl:54 (repeats 2 times)
答案 0 :(得分:3)
这对我有用:
julia> using DataFrames
julia> x = rand(4, 4)
4x4 Array{Float64,2}:
0.790912 0.0367989 0.425089 0.670121
0.243605 0.62487 0.582498 0.302063
0.785159 0.0083891 0.881153 0.353925
0.618127 0.827093 0.577815 0.488565
julia> convert(DataFrame, x)
4x4 DataFrame
| Row | x1 | x2 | x3 | x4 |
|-----|----------|-----------|----------|----------|
| 1 | 0.790912 | 0.0367989 | 0.425089 | 0.670121 |
| 2 | 0.243605 | 0.62487 | 0.582498 | 0.302063 |
| 3 | 0.785159 | 0.0083891 | 0.881153 | 0.353925 |
| 4 | 0.618127 | 0.827093 | 0.577815 | 0.488565 |
你在尝试不同的东西吗?
如果这不起作用,请尝试发布更多代码,我们可以为您提供更好的帮助。
答案 1 :(得分:3)
# convert a Matrix{Any} with a header row of col name strings to a DataFrame
# e.g. mat2df(["a" "b" "c"; 1 2 3; 4 5 6])
mat2df(mat) = convert(DataFrame,Dict(mat[1,:],
[mat[2:end,i] for i in 1:size(mat,2)]))
# convert a Matrix{Any} (mat) and a list of col name strings (headerstrings)
# to a DataFrame, e.g. matnms2df([1 2 3;4 5 6], ["a","b","c"])
matnms2df(mat, headerstrs) = convert(DataFrame,
Dict(zip(headerstrs,[mat[:,i] for i in 1:size(mat,2)])))
答案 2 :(得分:2)
我多次被同一个问题困惑,并最终意识到问题通常与数组的格式有关,并且很容易通过在转换之前转换数组来解决。
简而言之,我建议:
getPackageName()
答案 3 :(得分:0)
因此,我在网上找到了这个,说实话感觉很傻。
using CSV
WhatIWant = DataFrame(WhatIHave)
这是从R指南改编而成的,但效果如此好