Dataframes.jl 左连接等效于数组



有没有这样一个包可以左联接数组,就像dataframes.jl左联接数据帧一样?

如果你有复杂的记录作为你的数组,最好只使用 DataFrames.jl。将数组放入数据帧中,然后联接,然后使用 Array 构造函数提取。

如果你确切地知道左连接的逻辑将永远是什么,你应该能够有效地使用列表理解。但是,在通用左联接的逻辑级别,最好使用数据帧。

julia> using DataFrames
julia> names = DataFrame(ID = [20, 40], Name = ["John Doe", "Jane Doe"])
2×2 DataFrames.DataFrame
│ Row │ ID │ Name     │
├─────┼────┼──────────┤
│ 1   │ 20 │ John Doe │
│ 2   │ 40 │ Jane Doe │
julia> jobs = DataFrame(ID = [20, 40], Job = ["Lawyer", "Doctor"])
2×2 DataFrames.DataFrame
│ Row │ ID │ Job    │
├─────┼────┼────────┤
│ 1   │ 20 │ Lawyer │
│ 2   │ 40 │ Doctor │
julia> arr = Array(join(names, jobs, on = :ID, kind = :left))
2×3 Array{Any,2}:
20  "John Doe"  "Lawyer"
40  "Jane Doe"  "Doctor"

..或

julia> n = Array(names)
2×2 Array{Any,2}:
20  "John Doe"
40  "Jane Doe"
julia> j = Array(jobs)
2×2 Array{Any,2}:
20  "Lawyer"
40  "Doctor"
julia> [ [n[i,2], j[i,2]] for i in 1:size(n)[1] if n[i,1] == j[i,1]]
2-element Array{Array{String,1},1}:
String["John Doe", "Lawyer"]
String["Jane Doe", "Doctor"]

最新更新