行绑定Julia数据帧

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了行绑定Julia数据帧相关的知识,希望对你有一定的参考价值。

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

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

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数据帧的主要内容,如果未能解决你的问题,请参考以下文章

在Julia / Juno中显示数据帧

Julia:将 GIF 帧转换为 PNG

如何读取 ods 文档(例如 LibreOffice calc)并将其转换为 Julia 数据帧?

用于片段着色器的 OpenGL GLSL 绑定采样器

行绑定数据帧并保持唯一 ID 递增

Kotlin Android Studio - setContenView - 绑定(片段)