我有这两个数据框: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适合过滤行的列。
添加回答
举报
0/150
提交
取消