我试图找出列之间的匹配百分比,基于唯一的列值试图找到与其他特定列相关的匹配准确率百分比。
怎么可能做到?或者这不是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”列中的值。