在朱莉娅(Julia)中,您可以组合数据框架:
d1 = DataFrame(A=1:10)
d2 = DataFrame(A=11:20)
d3 = [d1; d2]
但是,这似乎将D1,D2复制到D3中。我不想复制它们。如果您对D1进行了修改,则不会反映在D3中。
任何人都知道如何通过参考而不是通过值组合它们,以便如果修改了D1,则更改反映了D3?
谢谢!
在数组类型术语中,您想要的是d1
和d2
是d3
中数据的视图。数据框也是可能的:
julia> using DataFrames
julia> d3 = DataFrame(A=1:20);
julia> d1 = view(d3,1:10);
julia> d2 = view(d3,11:20);
julia> d1[1:3,:]
3×1 DataFrames.DataFrame
│ Row │ A │
├─────┼───┤
│ 1 │ 1 │
│ 2 │ 2 │
│ 3 │ 3 │
julia> d3[1:3,:]
3×1 DataFrames.DataFrame
│ Row │ A │
├─────┼───┤
│ 1 │ 1 │
│ 2 │ 2 │
│ 3 │ 3 │
julia> d1[1,:A] = 999
999
julia> d3[1:3,:]
3×1 DataFrames.DataFrame
│ Row │ A │
├─────┼─────┤
│ 1 │ 999 │
│ 2 │ 2 │
│ 3 │ 3 │
当然,您可能需要首先创建d1
和d2
,然后将它们组合到d3
,但这需要复制操作(以使记忆中的列连续)。之后,您可以生成视图(并将其分配给d1
和d2
)。可能建议使用不同的变量来进行视图,因为更改d1
和d2
的类型可能会导致类型稳定(朱莉亚(Julia)不好)。