如何找到列值Python之间的匹配百分比

时间:2021-04-01 20:42:18

标签: python pandas dataframe

我试图找出列之间的匹配百分比,基于唯一的列值试图找到与其他特定列相关的匹配准确率百分比。

怎么可能做到?或者这不是python中的常见做法?但是我发现在大多数情况下通过使用模糊匹配来执行匹配。

Sheet 1

identity_no  address            Pincode   company_name

 IN2231      Delhi, Indi        110030    AXN pvt Ltd
 UK654       London, Uk         897653    Aviva Intl Ltd
 SL1432      Colombo, Srilanka  07658     Ship Incorporations
 LK0678      Libya, Sns         5674332   Oppo Mobiles pvt ltd

工作表 2

identity_no  address            Pincode   company_name

 IN2231      Delhi, India       110030    AXN pvt Ltd
 UK654       London, Uk         897653    Aviva Intl Ltd
 SL1432      Colombo, Srilanka  07658     Ship Incorporations

预期输出:

identity_no  address            Pincode   company_name               match_percent
    
     IN2231      Delhi, Indi        110030    AXN pvt Ltd                
     UK654       London, Uk         897653    Aviva Intl Ltd
     SL1432      Colombo, Srilanka  07658     Ship Incorporations
     LK0678      Libya, Sns         5674332   Oppo Mobiles pvt ltd

这里有两个不同的 Excel 工作表,其中工作表 1 是输入数据,工作表 2 是主数据集,我们必须将 工作表 1 中的 ['address', 'Pincode', 'company_name'] 与工作表 2 匹配 并使用 identity_no 找到匹配百分比。

df = pd.read_excel(open(r'input.xlsx', 'rb'), sheet_name='sheet1')
df2 = pd.read_excel(open(r'master_data.xlsx', 'rb'), sheet_name='sheet2')

from difflib import SequenceMatcher
lst = df2[['identity_no','address', 'Pincode', 'company_name']]

def closest(s):
    highest = 0
    result = ''
    for i in lst:
        temp = SequenceMatcher(None, s, i).ratio() #Similarity Ratio
        if temp > highest:
            highest = temp
            result = i
    return result

我没有找到正确的方法来查找匹配百分比并提交“match_percent”列中的值。

0 个答案:

没有答案
相关问题