同时比较 2 个数据帧 - 2 个 itertuples?

compare 2 dataframes simultaneously - 2 itertuples?

我正在比较 2 个数据帧,我想看看名称是否与地址匹配,然后提取唯一 ID。否则,继续搜索最佳匹配。 (我对该部分使用了模糊匹配器)

我正在探索 itertools 并想知道使用 itertools.zip_longest 选项是否可以同时比较两个项目。而不是使用 2 个 for 循环(例如 df1.itertuples 中的 x:做某事... df2.itertuples 中的 y:做某事)这样的事情会起作用吗?

result = itertools.zip_longest(df1.itertuples(), df2.itertuples())

这是我的 2 个数据帧 -

Here's my DF1:

         NAME          ADDRESS       CUSTOMER_SUPPLIER_NUMBER      Sales  Calls  Target
0        OFFICE 1        123 road               2222277            84    170     265
1        OFFICE 2        15  lane               2222289            7     167     288
2        OFFICE 3        3 highway              1111111            1       2     286
3        OFFICE 4        2 street               1111171            95    193    299
4        OFFICE 5        1 place                1111191            9     193    298
DF2:
             NAME       ADDRESS        CUSTOMER_SUPPLIER_NUMBER          UNIQUE ID     
0        OFFICE 1        123 road             2222277                       014168     
1        OFFICE 2        15 lane              2222289                       131989          
2        OFFICE 3        3 highway            1111111                       149863            
3        OFFICE 4        2 street             1111171                       198664        
4        OFFICE 5        1 place             1111191                        198499
5        OFFICE 6        zzzz rd              165198                        198791
6        OFFICE 7        5z st                 19844                        298791      
7        OFFICE 8        34 hwy               981818                        398791
8        OFFICE 9        81290 rd             899811                        498791
9        OFFICE 10        59 rd               699161                        598791
10      OFFICE  11        5141 bldvd          33211                         698791

然后执行一个for循环并做一些if语句的比较。我可以并排访问这两个项目,但是我如何循环遍历这些项目来进行检查?

现在我收到:“ 类型错误:'NoneType' 对象不可订阅

for yy in  result:
     if yy[0][1]== yy[1][1]:
         print(yy) ......

如果您的 headers 在两个 df 中相同,只需应用合并:

dfmerge=pd.merge(df1,df2)

输出应该是: