我想结合2个类似的数据框。我已经检查了几个网站,但找不到我的问题的答案。

df1 = DataFrame({'A': ['A0', 'A1', 'A2', 'A3'],
                 'B': ['B0', 'B1', 'B2', 'B3'],
                 'C': ['C0', 'C1', 'C2', 'C3'],
               index=[0, 1, 2])
df2 = DataFrame({'A': ['A0', 'A1', 'A4', 'A3'],
                 'B': ['B0', 'B1', 'B4', 'B3'],
                 'D': ['D0', 'D1', 'D4', 'D3']},
               index=[0, 1, 2])


我希望有

    df3 = DataFrame({'A': ['A0', 'A1', 'A3'],
                     'B': ['B0', 'B1', 'B3'],
                     'C': ['C0', 'C1', 'C3'],
                     'D': ['D0', 'D1', 'D3'].
                     index=[0, 1, 2, 3])


本质上,我组合了2个数据帧,将列D添加到第一个数据帧。但是,我忽略了行C和D都没有值的行,例如行2和4。
我试过了append和concat,但它只给了我所有列和所有行彼此堆叠的方式。

谢谢!

最佳答案

只需执行默认的merge,这将对公共列执行内部联接:

In [80]:

df1.merge(df2)
Out[80]:
    A   B   C   D
0  A0  B0  C0  D0
1  A1  B1  C1  D1
2  A3  B3  C3  D3

10-07 14:25
查看更多