【问题标题】:pandas and fuzzywuzzy match percentage not turning correctpandas 和fuzzywuzzy 匹配百分比不正确
【发布时间】:2016-04-18 18:06:23
【问题描述】:

我正在尝试使用fuzzywuzzy 列进行列匹配。

我的代码是:

merged_file['ratio']=fuzz.ratio(merged_file.iloc[:,7], merged_file.iloc[:,33])

无论我尝试从 1 列匹配到另一列,但每列的比率始终相同。 例如

上面应该是 0, 100, 100 和 0, 100, 100

【问题讨论】:

    标签: python pandas fuzzywuzzy


    【解决方案1】:

    试试这个:

    merged_file['ratio'] = [fuzz.ratio(a, b) 
                            for a, b in zip(merged_file.iloc[:,7], merged_file.iloc[:,33])]
    

    它使用列表推导来计算两列中每对变量的 fuzz.ratio。 ab 只是临时变量,它们只存在于列表理解本身的范围内。

    【讨论】:

    • 您在两列中迭代对。 col1 = [1, 2, 3] col2 = [4, 5, 6], [(a, b) for a, b in zip(col1, col2)] 将返回 [(1, 4), (2, 5), (3, 6)]
    • merged_file['ratio']=[fuzz.ratio('Sold To Customer', 'Account Name')for 'Sold To Customer', 'Account Name' in zip(merged_file.iloc[: ,7],merged_file.iloc[:,33])]
    • 无引号。它们是临时变量。你可以这样做:merged_file['ratio']=[fuzz.ratio(sold_to, account_name) for sold_to, account_name in zip(merged_file.iloc[:,7], merged_file.iloc[:,33])]
    • 它说不能分配给文字
    • 它有效,但我不太了解分配给临时变量。谢谢你的帮助。我会阅读更多关于临时变量的使用
    猜你喜欢
    • 1970-01-01
    • 2021-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多