合并熊猫数据框,并保留合并标准不匹配的行

时间:2020-08-03 20:45:48

标签: python pandas

我有以下两个数据框:

h6

我现在想通过列df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2'],'B': ['B0', 'B1', 'B2']}) df2 = pd.DataFrame({'A': ['A0', 'A1', 'A3'],'B': ['B0', 'B1', 'B2']}) 中的条目合并这两个数据帧。但是我不想保留匹配的行,但不要保留彼此不匹配的行。

这意味着,我想获得一个新的数据框,如下所示:

'A'

我该怎么办?

非常感谢!

2 个答案:

答案 0 :(得分:1)

使用isin尝试一下:

df2.loc[~df1.A.isin(df2.A)]

    A   B
2   A3  B2

答案 1 :(得分:1)

与外部联接合并会给您类似的结果:

df1.merge(df2, how = 'outer', on = 'A', indicator = True)
    A  B_x  B_y      _merge
0  A0   B0   B0        both
1  A1   B1   B1        both
2  A2   B2  NaN   left_only
3  A3  NaN   B2  right_only

可以用query过滤:

df1.merge(df2, how = 'outer', on = 'A', indicator = True).query("_merge != 'both'")
    A  B_x  B_y      _merge
2  A2   B2  NaN   left_only
3  A3  NaN   B2  right_only

请注意indicator = True创建的列_merge适合过滤行。