Python 如何使用Pandas比较不同数据帧中的多个列

Python 如何使用Pandas比较不同数据帧中的多个列,python,pandas,Python,Pandas,我有两个数据帧,有6000行和20列。我想比较3列上的这两个数据帧,这样,如果值匹配,那么匹配的行将转到新的日期帧,如果值不匹配,那么它们将转到第二个新的数据帧。为此,我尝试使用if语句,但它给了我一个错误,即“序列的真值是不明确的。使用a.empty、a.bool()、a.item()、a.any()或a.all()”。我在线检查了所有内容以解决这个问题,但失败了 如果有任何帮助,我们将不胜感激。对于行匹配的数据帧,您可以通过内部连接(两个数据帧中匹配的行将进入新的数据帧)。下面是一些应该

我有两个数据帧,有6000行和20列。我想比较3列上的这两个数据帧,这样,如果值匹配,那么匹配的行将转到新的日期帧,如果值不匹配,那么它们将转到第二个新的数据帧。为此,我尝试使用if语句,但它给了我一个错误,即“序列的真值是不明确的。使用a.empty、a.bool()、a.item()、a.any()或a.all()”。我在线检查了所有内容以解决这个问题,但失败了


如果有任何帮助,我们将不胜感激。

对于行匹配的数据帧,您可以通过内部连接(两个数据帧中匹配的行将进入新的数据帧)。下面是一些应该有效的方法

joined_df_match=df1.merge(df2,how='internal',left_on=['col1','col2','col3',right_on=['col1','col2','col3'])

因为当它们不匹配时,可以使用外部联接


joined_df_non=df1.merge(df2,how='outer',left_on=['col1','col2','col3'],right_on=['col1','col2','col3'])

要获得包含三列中所有相等行的数据帧,需要在这三列上进行内部联接。看看