我有df1和df2。我想使用fuzzywuzzy将df1中的A列与df2中的A列相匹配,并根据一定的比率匹配返回df2的B列中的ID。在
例如:
df1如下所示:
姓名
莎莉卖贝壳
df2如下所示:
姓名|身份证
Sally slls sshells公司| 28904
我要做的是比较df1中A列中的所有内容,在df2的A列中找到匹配项,并从df2的B列返回ID。在
我希望能够设定模糊比率的标准。例如:我只希望它在比率大于50时返回一个ID。在
我的当前代码:
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'])
if test > 50:
print df1['A'][i]==df2['B']
首先谢谢你的问题,我以前从来没有用过模糊模糊。。。在
这是我对你问题的看法。在
在这里,我尝试在2个数据帧中匹配名称列,我将只显示得分大于50的结果。在
然后我将对这些结果进行concat(或替换列),在没有匹配项的地方添加空白值。。。。显然你可能想也可能不想这么做。在
当这是运行时,你应该看到这样的输出。在
^{pr2}$显然,我只显示中间结果,这样我就可以证明值匹配子句是有效的。在
然后,我对元组列表进行排序(因为它们是按score和value顺序存储的),取最后一个(您可以反向排序并将最上面的值取给您),然后从元组中获取第二个元素([1])。在
这应该适用于任何2个字符串列,但我还没有测试过。在
相关问题 更多 >
编程相关推荐