Dataframe 在Julia中加入数据帧

Dataframe 在Julia中加入数据帧,dataframe,join,concatenation,julia,Dataframe,Join,Concatenation,Julia,我正在使用DataFrames.jl的v7.0,我想知道这是否是一种连接两个DataFrames的方法,这样两个DataFrames共享的所有列都连接在一起,而两个DataFrames之间不通用的列则标记为缺失 join()。 如果没有完全相同的列名,vcat函数似乎无法连接DataFrames 下面是我的意思的一个例子 我想合并 df1 = DataFrame( A = [1, 1000, 10000, 100000], B = [1,2,3,4], D = ["N",

我正在使用DataFrames.jl的v7.0,我想知道这是否是一种连接两个
DataFrame
s的方法,这样两个
DataFrame
s共享的所有列都连接在一起,而两个
DataFrame
s之间不通用的列则标记为缺失

join()。
如果没有完全相同的列名,
vcat
函数似乎无法连接
DataFrame
s

下面是我的意思的一个例子

我想合并

df1 = DataFrame(
    A = [1, 1000, 10000, 100000],
    B = [1,2,3,4],
    D = ["N", "M", "I", "J"])
df2 = DataFrame(
    A = [1,2],
    B = repeat(1:2, inner=1),
    C = ["hi","CE"])
以一种让我

df3 = DataFrame(
    A = [1,1000,10000,100000, 2],
    B = [1,2,3,4,2],
    C = ["hi", missing, missing, missing, "CE"],
    D = ["N", "M", "I", "J", missing]) 

我想用大的
数据帧来实现这一点,因此手动添加键是不可行的。

我在Julia v0.6.2和DataFrames.jl v0.11.7中实现了这一点:

join(df1, df2, kind = :outer, on = intersect(names(df1), names(df2)))
我的输出:

5×4 DataFrames.DataFrame
│ Row │ A      │ B │ D       │ C       │
├─────┼────────┼───┼─────────┼─────────┤
│ 1   │ 1      │ 1 │ N       │ hi      │
│ 2   │ 1000   │ 2 │ M       │ missing │
│ 3   │ 10000  │ 3 │ I       │ missing │
│ 4   │ 100000 │ 4 │ J       │ missing │
│ 5   │ 2      │ 2 │ missing │ CE      │

由于它同时引用了
df1
df2
的列名,因此应该免除您手动命名键的责任。

听起来您需要完全联接。请问为什么
join()
不适合你?另外,您使用的是什么版本的Julia?Julia 1.0.1和DataFrame 0.14.1中接收到完全相同的输出
参数错误:不支持数据帧的连接函数。使用innerjoin、leftjoin、rightjoin、outerjoin、semijoin、antijoin或crossjoin
@PatrickT这篇文章已经有2.5年的历史了。Julia从那时起发生了重大变化(最新版本是v1.6.1)。函数调用可能已更改,但基本操作仍然是外部连接。您是否考虑更新您的答案?