首页 > 解决方案 > 将两个 Pandas 列与另一个 DataFrame 进行比较

问题描述

我有一个主数据框df1,它具有唯一的列组合('a''b'

df1:
a   b
A   1 
B   4 
K   5

我想使用这些组合来比较df2,遍历每一列并返回TrueFalse基于组合是否df2匹配df1.

 df2:
a   b   c
A   1   TRUE
B   4   TRUE
K   1   FALSE 

例如 K, 1 中的第 3 行与(K,5)df2中的 K 值不匹配。df1仅供参考,行数会更大df2

非常感谢你的帮助。

标签: pythonpandasdataframe

解决方案


使用DataFrame.mergewithindicator参数,然后按both值比较布尔列:

df3 = df2.merge(df1, on=['a','b'], how='left',indicator='c')
df3['c'] = df3['c'].eq('both')

print (df3)
   a  b      c
0  A  1   True
1  B  4   True
2  K  1  False

推荐阅读