dataframe - 在 Julia 中,如果某些列不同,我如何组合多个数据框?

标签 dataframe julia

我有具有相似但不完全相等的列键的无序数据框。例如。:

DataFrame.   Columns
Dataframe 1: A, B, C
Dataframe 2: A, B, C
Dataframe 3: A, B, C, D
Dataframe 4: A, C, D
我想让它们堆叠/连接/附加。我不在乎如何为缺少给定列的数据框填充缺失的数据。
也就是说,我想要一个数据框:
DataFrame combined: A, B, C, D

最佳答案

如果你想要 vectical 串联,请执行以下操作:

julia> dfs = [DataFrame(permutedims(1:n), :auto) for n in 1:5]
5-element Vector{DataFrame}:
 1×1 DataFrame
 Row │ x1
     │ Int64
─────┼───────
   1 │     1
 1×2 DataFrame
 Row │ x1     x2
     │ Int64  Int64
─────┼──────────────
   1 │     1      2
 1×3 DataFrame
 Row │ x1     x2     x3
     │ Int64  Int64  Int64
─────┼─────────────────────
   1 │     1      2      3
 1×4 DataFrame
 Row │ x1     x2     x3     x4
     │ Int64  Int64  Int64  Int64
─────┼────────────────────────────
   1 │     1      2      3      4
 1×5 DataFrame
 Row │ x1     x2     x3     x4     x5
     │ Int64  Int64  Int64  Int64  Int64
─────┼───────────────────────────────────
   1 │     1      2      3      4      5

julia> vcat(dfs[1], dfs[2], dfs[3], dfs[4], dfs[5], cols=:union)
5×5 DataFrame
 Row │ x1     x2       x3       x4       x5
     │ Int64  Int64?   Int64?   Int64?   Int64?
─────┼───────────────────────────────────────────
   1 │     1  missing  missing  missing  missing
   2 │     1        2  missing  missing  missing
   3 │     1        2        3  missing  missing
   4 │     1        2        3        4  missing
   5 │     1        2        3        4        5
如果你想追加做:
julia> dfs = [DataFrame(permutedims(1:n), :auto) for n in 1:5]
5-element Vector{DataFrame}:
 1×1 DataFrame
 Row │ x1
     │ Int64
─────┼───────
   1 │     1
 1×2 DataFrame
 Row │ x1     x2
     │ Int64  Int64
─────┼──────────────
   1 │     1      2
 1×3 DataFrame
 Row │ x1     x2     x3
     │ Int64  Int64  Int64
─────┼─────────────────────
   1 │     1      2      3
 1×4 DataFrame
 Row │ x1     x2     x3     x4
     │ Int64  Int64  Int64  Int64
─────┼────────────────────────────
   1 │     1      2      3      4
 1×5 DataFrame
 Row │ x1     x2     x3     x4     x5
     │ Int64  Int64  Int64  Int64  Int64
─────┼───────────────────────────────────
   1 │     1      2      3      4      5

julia> append!(dfs[1], dfs[2], cols=:union)
2×2 DataFrame
 Row │ x1     x2
     │ Int64  Int64?
─────┼────────────────
   1 │     1  missing
   2 │     1        2

julia> append!(dfs[1], dfs[3], cols=:union)
3×3 DataFrame
 Row │ x1     x2       x3
     │ Int64  Int64?   Int64?
─────┼─────────────────────────
   1 │     1  missing  missing
   2 │     1        2  missing
   3 │     1        2        3

julia> append!(dfs[1], dfs[4], cols=:union)
4×4 DataFrame
 Row │ x1     x2       x3       x4
     │ Int64  Int64?   Int64?   Int64?
─────┼──────────────────────────────────
   1 │     1  missing  missing  missing
   2 │     1        2  missing  missing
   3 │     1        2        3  missing
   4 │     1        2        3        4

julia> append!(dfs[1], dfs[5], cols=:union)
5×5 DataFrame
 Row │ x1     x2       x3       x4       x5
     │ Int64  Int64?   Int64?   Int64?   Int64?
─────┼───────────────────────────────────────────
   1 │     1  missing  missing  missing  missing
   2 │     1        2  missing  missing  missing
   3 │     1        2        3  missing  missing
   4 │     1        2        3        4  missing
   5 │     1        2        3        4        5

julia> dfs[1]
5×5 DataFrame
 Row │ x1     x2       x3       x4       x5
     │ Int64  Int64?   Int64?   Int64?   Int64?
─────┼───────────────────────────────────────────
   1 │     1  missing  missing  missing  missing
   2 │     1        2  missing  missing  missing
   3 │     1        2        3  missing  missing
   4 │     1        2        3        4  missing
   5 │     1        2        3        4        5

关于dataframe - 在 Julia 中,如果某些列不同,我如何组合多个数据框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67453522/

相关文章:

python - Pandas:使用正则表达式清理包含单引号和括号的字符串列?

scala - Spark scala 中数据帧行内容的条件

python - 根据特定条件将数据帧一列中的所有行转置为多列

julia - 使用 JULIA RCall 包将 NA 传递给 R

constants - 用 Julia 评估非理性

julia - Julia 的转换规则遇到一些问题

python组合26个不同时间戳和相同列的数据帧

python - “子集”不适用于 drop_duplicates pandas 数据框

julia - 访问 AST 以获取 Julia 中的泛型函数

machine-learning - 与尺寸的点积误差