【发布时间】:2021-12-16 00:04:29
【问题描述】:
我正在对地址进行一些模糊匹配,并以高分进行过滤。如果该分数存在于我的数据集中,那么我想调用另一个函数来查看数据并检查是否有与之关联的销售/电话。
我想最终返回一个符合该函数标准的值列表。在调试时,我可以看到“sales_and_calls_test”功能有效。我看到这些值被附加到我的列表中,但是,当我进行下一次迭代时,我看到我的调试手表中的列表从一个值更改为“名称错误:名称“call_list + sales_list”未定义
有人可以查看我的语法并告诉我我缺少什么吗?谢谢!
这是我的代码:
def sales_and_calls_test(v_sales, v_calls):
calls_list = []
sales_list = []
if v_sales > 1:
print(v_sales, v._1)
sales_list.append(v_sales)
if v_calls > 1:
print(v_calls, v._1)
calls_list.append(v_calls)
return calls_list, sales_list
for v in match_table.itertuples():
#print(v)
if not string_len_test(l.Address_1, v.Address_2):
lev_score = lev(l.Address_1, v.Address_2)
fuzz_score = fuzz.token_sort_ratio(l.Address_1, v.Address_2)
if fuzz_score >= 90:
sales_and_calls_test(v._6, v._7)
#print(lev_score, fuzz_score)
else:
if fuzz_score == 87:
print('close', v.Address, l.Address_2, v._1, v._6, v._7, v._8)
print(lev_score, fuzz_score)
else:
continue
##*** side note does anyone know why after I perform itertuples()
## that some of my column's change from their names to _number?
【问题讨论】:
-
你的缩进在最后一个
if/else上很不稳定,我没有看到任何for循环,所以我不确定你在说什么“下一次迭代”。您能否包括完整的异常消息,包括堆栈跟踪? -
你是不是不小心写了
call_list,而你的意思是calls_list? -
还有 v_6 而不是 v._6?
-
由于您没有包含完整的异常/堆栈跟踪,我认为没有任何人可以提供帮助。我在这里看不到任何可能引发您所描述的错误的代码。
-
@aero8991 当你说它显示
Name Error: name "call_list + sales_list is not defined时,它实际上显示的是完全相同的东西吗?如果是的话,那就是打字错误,请改正(一定是calls_list)。如果没有,看看它是否显示Name Error: name "calls_list + sales_list is not defined
标签: python pandas if-statement fuzzywuzzy