行绑定Julia数据帧

问题描述 投票:9回答:3

如何将一个数据框附加到另一个数据框,类似于SQL qazxsw poi或R的qazxsw poi?

假设我有数据框unionrbind定义如下。

A

解决这个问题的一种方法如下:

B

虽然这有效,但对我来说感觉有些神奇。有没有更好或更惯用的方法来做到这一点?

append dataframe julia
3个回答
5
投票

数组连接A = DataFrame(x = [1, 2, 3], y = [4, 5, 6]) B = DataFrame(x = [4, 5, 6], y = [7, 8, 9]) 是将一个C = deepcopy(A) for i = 1:size(B, 1) push!(C, Array(B[i,:])) end 的行添加到另一个的最简单方法:

[A;B]

0
投票

你也可以用DataFrame将两个数据帧附加在一起。

如果你是数据帧是在一个数组中然后使用像这样的julia> A = DataFrame(x = [1, 2, 3], y = [4, 5, 6]); julia> B = DataFrame(x = [4, 5, 6], y = [7, 8, 9]); julia> [A;B] 6x2 DataFrames.DataFrame | Row | x | y | |-----|---|---| | 1 | 1 | 4 | | 2 | 2 | 5 | | 3 | 3 | 6 | | 4 | 4 | 7 | | 5 | 5 | 8 | | 6 | 6 | 9 | 的splat运算符(vcat(A,B))也可以工作


0
投票

我有同样的问题。事实证明,使用...函数有一种更有效的方法:

vcat(AB...)

这会修改原始数据框append!。如果要创建新数据框,可以执行以下操作:

append!(A,B)

注意这个解决方案比做A更有效。运行以下代码以观察内存分配。

C = deepcopy(A)
append!(C,B)

我分别找到(27个分配:2.063 KiB),(78个分配:5.750 KiB)和(8个分配:352个字节)。

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