行绑定Julia数据帧
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了行绑定Julia数据帧相关的知识,希望对你有一定的参考价值。
如何将一个数据框附加到另一个数据框,类似于SQL qazxsw poi或R的qazxsw poi?
假设我有数据框union
和rbind
定义如下。
A
解决这个问题的一种方法如下:
B
虽然这有效,但对我来说感觉有些神奇。有没有更好或更惯用的方法来做到这一点?
数组连接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]
你也可以用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)
)也可以工作
我有同样的问题。事实证明,使用...
函数有一种更有效的方法:
vcat(AB...)
这会修改原始数据框append!
。如果要创建新数据框,可以执行以下操作:
append!(A,B)
注意这个解决方案比做A
更有效。运行以下代码以观察内存分配。
C = deepcopy(A)
append!(C,B)
我分别找到(27个分配:2.063 KiB),(78个分配:5.750 KiB)和(8个分配:352个字节)。
以上是关于行绑定Julia数据帧的主要内容,如果未能解决你的问题,请参考以下文章