gpt4 book ai didi

Pandas 和模糊匹配

转载 作者:行者123 更新时间:2023-12-01 15:50:06 27 4
gpt4 key购买 nike

目前我有两个数据框。我正在尝试使用 fuzzywuzzy 的 process.extractOne 函数来模糊匹配客户名称。当我在示例数据上运行以下脚本时,我得到了良好的结果并且没有错误,但是当我在我当前的数据帧上运行以下脚本时,我得到了属性和类型错误。出于安全原因,我无法提供数据,但如果有人能根据所提供的脚本弄清楚为什么我会收到错误,我将非常感激。

names2 = list(dftr3['Common Name'])
names3 = dict(zip(names2,names2))
def get_fuzz_match(row):
match = process.extractOne(row['CLIENT_NAME'],choices = n3.keys(),score_cutoff = 80)
if match:
return n3[match[0]]
return np.nan
dfmi4['Match Name'] = dfmi4.apply(get_fuzz_match, axis=1)

我知道没有一些示例会使故障排除变得更加困难,因此我会回答任何问题并编辑帖子以帮助完成此过程。具体报错是:

1.AttributeError: 'dict_keys' 对象没有属性 'items'

2.TypeError: 预期的字符串或缓冲区

最佳答案

AttributeError 是直截了当的,我认为是意料之中的。 Fuzzywuzzy 的 process.extract 函数完成了 process.extractOne 中的大部分实际工作,它使用 try:... except: 子句来确定是将 choices 参数处理为类字典还是类列表。我认为您看到了异常,因为在 except: 子句期间引发了 TypeError。

TypeError 很难确定,但我怀疑它出现在 StringProcessor 类中的某处,在 processor 模块中使用,再次由 extract< 调用,它使用多个字符串方法并且不捕获异常。因此,您的 apply 调用似乎传递的不是字符串。是否可能有任何空单元格?

关于 Pandas 和模糊匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34686780/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com