我有以下数据帧
df1=
col1 col2 col3 value
A B AB 5
B C AB 4
C D AB 3
D E AB 12
df2=
col1 col2 col3 value
A B AB 3
C D AB 1
Z E BC 2
我需要一个新的df3,它的行在df1中存在,但在df2中不存在。类似地,我还需要一个df4,它的行在df2中,但不在df1中
df3= //Rows which in Df1 but not in df2
col1 col2 col3 value
B C AB 5
D E AB 12
df4= //Rows which are in df2 but not in df1
col1 col2 col3 value
Z E BC 2
请注意,我们可以忽略列“value”,但是col1 col2 col3应该匹配才能被视为匹配
如果我使用indicator=true进行合并
mdf1=pd.merge(df1, df2, how='outer', indicator=True)
mdf1=
col1 col2 col3 value _merge
0 A B AB 5 left_only
1 B C AB 4 left_only
2 C D AB 3 left_only
3 D E AB 12 left_only
4 A B AB 3 right_only
5 C D AB 1 right_only
6 Z E BC 2 right_only
您可以看到,在mdf1行中,编号0和4、2和5相同,但由于值不同而不匹配。我想在合并时忽略值列,但我想在结果数据帧中忽略该列
这就是我所需要的mdf
col1 col2 col3 value _merge
0 B C AB 4 left_only
1 D E AB 12 left_only
2 Z E BC 2 right_only
在您的解决方案中,有必要删除
value
列:相关问题 更多 >
编程相关推荐