使用python pandas通过一组列来检查一个框架是否包含在另一个框架中不存在的记录

v7pvogib  于 6个月前  发布在  Python
关注(0)|答案(2)|浏览(95)

如果我有两个pandas,它们分别是df1和df2,它们是相同的列:A,B,C,D我如何检查df2在A,B列中是否有记录,而这些记录在df2的A,B列中不存在
Oracle SQL等价物是:

select A, B from df2 
   minus 
   select A, B from df1

字符串

sdnqo3pr

sdnqo3pr1#

这将只把那些只存在于df2中的记录放在'final' df中

final=df1.merge(df2[['A','B']],on=['A','B'],how='right',indicator=True)
final=final.loc[final['_merge']=='right_only']
print(final)

字符串

odopli94

odopli942#

下面是从df2中减去df1的另一种方法:

df1 = pd.DataFrame({'A': [1, 2, 3], 'B': ['Alice', 'Bob', 'Charlie']})
df2 = pd.DataFrame({'A': [1, 2, 3, 4], 'B': ['Alice', 'Bob', 'Charlie', 'Sue']})

pd.concat([df1,df1,df2]).drop_duplicates(keep=False)

   A    B
3  4  Sue

字符串

相关问题