【问题标题】:Returning corresponding row based on fuzzywuzzy ratio根据fuzzywuzzy比率返回对应的行
【发布时间】:2017-02-27 19:16:29
【问题描述】:

我正在使用模糊模糊来比较两个不同数据框中的两列。我想在 df2 中的同一行但不同列中检索相应的值。例如:

如果 df1 A 列中的 i 与 df2 A 列的匹配率超过 50,我想检索 df2 B 列中的对应值。

我当前的代码:

import pandas as pd
import numpy as np
from fuzzywuzzy import fuzz
from fuzzywuzzy import process
df1=pd.read_csv('C:\\Users\\nkurdob\\Desktop\\Sheet1.csv')
df2=pd.read_csv('C:\\Users\\nkurdob\\Desktop\\Sheet2.csv')


for i in range(len(df1)):
    em = df1['A'][i]
    test = fuzz.partial_ratio(em, df2['A']) 
    while test > 50:
        print df1['Fund Name'][i]==df2['B']

这进入了一个永无止境的输出——我每次都必须停止它。有谁知道如何根据一定的匹配率检索 df2 中的对应行?

谢谢 纳扎尔

【问题讨论】:

    标签: python pandas fuzzy fuzzywuzzy


    【解决方案1】:

    while 替换为if

    您已经运行了 partial_ratio 函数并获得了名为 test 的静态结果。如果它 > 50,那么在代码的那部分中它将永远 > 50,从而导致无限循环。

    【讨论】:

    • 您知道如何根据特定的比率结果带回相应的行吗?
    猜你喜欢
    • 1970-01-01
    • 2021-09-25
    • 1970-01-01
    • 1970-01-01
    • 2019-08-29
    • 2015-10-23
    • 2018-01-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多