代码之家  ›  专栏  ›  技术社区  ›  Morpheu5

连接Julia数据帧,添加分类列

  •  1
  • Morpheu5  · 技术社区  · 7 年前

    假设我有以下内容

    a = DataFrame(x = [1,2,3,4], y = [10,20,30,40])
    b = DataFrame(x = [1,2,3,4], y = [50,60,70,80])
    

    [a;b] 用一个额外的分类列来获得如下内容?

    8×3 DataFrames.DataFrame
    │ Row │ x │ y  │ c │
    ├─────┼───┼────┼───┤
    │ 1   │ 1 │ 10 │ 1 │
    │ 2   │ 2 │ 20 │ 1 │
    │ 3   │ 3 │ 30 │ 1 │
    │ 4   │ 4 │ 40 │ 1 │
    │ 5   │ 1 │ 50 │ 2 │
    │ 6   │ 2 │ 60 │ 2 │
    │ 7   │ 3 │ 70 │ 2 │
    │ 8   │ 4 │ 80 │ 2 │
    

    对于两个数据帧,类似于

    using DataFramesMeta
    [@transform(a, c = 1); @transform(b, c = 2)]
    

    行得通,但如果我有多个呢 DataFrame s

    1 回复  |  直到 7 年前
        1
  •  1
  •   Liso    7 年前

    你可以用 enumerate 如果要从数组中创建结果 DataFrame s、 例如:

    l = [a,b]
    vcat([transform(x,c=i) for (i,x) in enumerate(l)])