为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

阿晨1998 2023-04-25 15:22:02
我有这两个数据框:df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2'],'B': ['B0', 'B1', 'B2']}) df2 = pd.DataFrame({'A': ['A0', 'A1', 'A3'],'B': ['B0', 'B1', 'B2']})我现在想通过列中的条目合并这两个数据框'A'。但我不想保留匹配的行,而是保留彼此不匹配的行。这意味着,我想要一个看起来像这样的新数据框:df_new = pd.DataFrame({'A':['A3'], 'B':['B2']})我怎么能这样做?
查看完整描述

2 回答

?
猛跑小猪

TA贡献1858条经验 获得超8个赞

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


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适合过滤行的列。


查看完整回答
反对 回复 2023-04-25
?
Smart猫小萌

TA贡献1911条经验 获得超7个赞

试试这个,使用isin:


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


    A   B

2   A3  B2


查看完整回答
反对 回复 2023-04-25
  • 2 回答
  • 0 关注
  • 120 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信