【发布时间】:2022-01-15 10:10:55
【问题描述】:
我正在比较 2 个数据帧,我想查看名称是否与地址匹配,然后提取唯一 ID。否则,继续并搜索最佳匹配。 (我为那部分使用模糊匹配器)
我正在探索 itertools,想知道使用 itertools.zip_longest 选项是否可以同时比较 2 个项目。而不是使用 2 个 for 循环(例如 x in df1.itertuples: do something... for y in df2.itertuples: do something)会这样吗?
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 语句。我可以并排访问这两个项目,但是我将如何循环访问这些项目以进行检查?
现在我得到:“ TypeError: 'NoneType' 对象不可下标"
for yy in result:
if yy[0][1]== yy[1][1]:
print(yy) ......
【问题讨论】:
标签: python pandas dataframe loops itertools