【发布时间】:2021-07-06 23:50:09
【问题描述】:
通过使用模糊字符串匹配来寻找两列值之间的最高准确率。
我有 2 个数据帧,我试图在两个数据帧的特定列值之间使用模糊匹配。
假设 df1 有 5 行,df2 有 4 行,我想选择 df1 的每一行的值并匹配 df2 的每一行并找到最高精度。假设 df1 中的 Row1 已经与 df2 中的所有行进行了比较,因此无论 df2 中的哪一行具有最高的准确度,我们都将其视为输出。 df1 中的每一行都需要考虑相同的内容。
输入数据:
数据框1
id_number company_name match_acc
IN2231D AXN pvt Ltd
UK654IN Aviva Intl Ltd
SL1432H Ship Incorporations
LK0678G Oppo Mobiles pvt ltd
NG5678J Nokia Inc
Dataframe2
identity_no Pincode company_name
IN2231 110030 AXN pvt Ltd
UK654IN 897653 Aviva Intl Ltd
SL1432 07658 Ship Incorporations
LK0678G 120988 Oppo Mobiles Pvt Ltd
希望找到最高准确率百分比并提交 match_acc 列中的值。
我目前使用的代码:
df1 = pd.read_excel(open(r'input.xlsx', 'rb'), sheet_name='sheet1')
df2 = pd.read_excel(open(r'input.xlsx', 'rb'), sheet_name='sheet2')
from fuzzywuzzy import fuzz
for index, row in df1.iterrows():
df1['match_acc']= fuzz.partial_ratio(df1['id_number'], df2['identity_no'])
print(df1['match_acc'])
我一直在用Fuzzywuzzy,如果还有其他方法请指教。
任何建议。
【问题讨论】:
-
@EzerK - 谢谢,但这对我没有帮助,因为我正在寻找准确率
标签: python pandas fuzzywuzzy