用向量扩展数据框

问题描述 投票:0回答:1

假设我有一个数据框

a
和一个向量
y

a = DataFrame(t = [0; 0], x = [1, 2])
y = [0.1, 0.2, 0.3]

如何将这两者结合起来以实现如下所示的效果,优先使用

DataFramesMeta.jl

 Row │ t        x     
     │ Float64  Int64 
─────┼────────────────
   1 │     0.1      1
   2 │     0.2      1
   3 │     0.3      1
   4 │     0.1      2
   5 │     0.2      2
   6 │     0.3      2
dataframe julia
1个回答
0
投票

你并不真的需要DataFramesMeta;一个简单的连接就可以了。通过创建两个仅包含一个不同元素的

t
列,连接就成为笛卡尔积。

julia> a = DataFrame(t = [0; 0], x = [1, 2])
2×2 DataFrame
 Row │ t      x     
     │ Int64  Int64 
─────┼──────────────
   1 │     0      1
   2 │     0      2

julia> b = DataFrame(t = 0, y = y)
3×2 DataFrame
 Row │ t      y       
     │ Int64  Float64 
─────┼────────────────
   1 │     0      0.1
   2 │     0      0.2
   3 │     0      0.3

julia> select(leftjoin(b, a, on=:t), :y => :t, :x)
6×2 DataFrame
 Row │ t        x      
     │ Float64  Int64? 
─────┼─────────────────
   1 │     0.1       1
   2 │     0.2       1
   3 │     0.3       1
   4 │     0.1       2
   5 │     0.2       2
   6 │     0.3       2

© www.soinside.com 2019 - 2024. All rights reserved.