在julia中将带标签的数据帧转换为数组
我有Julia中带有标题的数据帧,但我需要将其转换为数组进行一些过滤,有一些人建议使用类似的帖子 使用: 若要从dataframe获取数组,但此方法不适用于带有标头的dataframe,有什么建议吗 数据帧格式:在julia中将带标签的数据帧转换为数组,julia,Julia,我有Julia中带有标题的数据帧,但我需要将其转换为数组进行一些过滤,有一些人建议使用类似的帖子 使用: 若要从dataframe获取数组,但此方法不适用于带有标头的dataframe,有什么建议吗 数据帧格式: FP | C1 | Cz | C2 .... * | * | * | * .... . | . | . | . .... . | . | . | . .... . | . | . | . .... 您是否尝试过转换(矩阵,虹膜[:,1:3])? e、
FP | C1 | Cz | C2 ....
* | * | * | * ....
. | . | . | . ....
. | . | . | . ....
. | . | . | . ....
您是否尝试过转换(矩阵,虹膜[:,1:3])? e、 g
公认的答案很好地回答了上述问题 但是,如果您希望将数据帧转换为数组的唯一原因是对其进行过滤,那么可能需要研究可用于直接过滤数据帧对象的方法。有关一些示例,请参见和
(如果这比回答更适合评论,请提前道歉,因为这里的声誉还不足以评论。)这在Julia 0.7及以上版本中不起作用。相反,请尝试
Matrix(df)
并查看教程。关于convert
方法的更新,现在,convert(::Type{Array},df::AbstractDataFrame)
被弃用,取而代之的是:
using DataFrames
convert(Matrix, df)
这相当于矩阵(df)前一种解决方案不起作用尝试矩阵(df,[:,1:3])完美!:-)很乐意帮忙。注意:如果您有Null/NA值,您可以给convert第三个参数来替换它们(因为它们在数组中是不允许的),例如
convert(数组,iris[1:3],0.)
。对于Julia 1.0,它现在提示将其更改为convert(矩阵,
,而不是convert(数组,
)。
julia> using DataFrames
julia> df = DataFrame(a = 1:4, b = 1:4, c = randn(4), d = randn(4))
4×4 DataFrame
│ Row │ a │ b │ c │ d │
│ │ Int64 │ Int64 │ Float64 │ Float64 │
├─────┼───────┼───────┼──────────┼────────────┤
│ 1 │ 1 │ 1 │ 1.72172 │ -0.377729 │
│ 2 │ 2 │ 2 │ 0.206415 │ -0.266014 │
│ 3 │ 3 │ 3 │ 1.03785 │ -0.0317582 │
│ 4 │ 4 │ 4 │ 0.632473 │ -0.409014 │
julia> convert(Matrix, df[:,1:3])
4×3 Array{Float64,2}:
1.0 1.0 1.72172
2.0 2.0 0.206415
3.0 3.0 1.03785
4.0 4.0 0.632473
using DataFrames
convert(Matrix, df)