我想实现名称匹配逻辑,其中我在A列中获取值,并尝试在B列中找到类似的匹配
例如:
A栏中的“莎莉在海边卖贝壳”可以与 B栏“莎莉海贝-海滨”
基本上我想以不同的方式重新排列A列字符串,直到在B列中找到匹配项
我希望它能准确地搜索字符串,如果没有完全匹配,就开始删除字符串末尾的单词(即“Sally seals By the”,然后“Sally seals By”,然后“Sally seals By”,然后“Sally seals seals”)等,直到找到匹配项为止。我还想尝试不同的拼写变体,因为“Seashore”可以是B列中的“Sea”
这是我当前(不工作)的脚本:
df1=pd.read_csv('C:\\Users\\nkurdob\\Desktop\\Sheet1.csv')
df2=pd.read_csv('C:\\Users\\nkurdob\\Desktop\\Sheet2.csv')
l1=[]
def word(l,c):
m=len(l)
for k in range(0,m):
if(l[k] in c):
ret=0
else:
ret=1
return ret
for i in range(160,1562):
print(i)
search1=df1['A'][i]
print(search1)
s2=search1.lower()
words=s2.split()
for j in range(0,325411):
n=len(df2['A'][j])
[j]).ratio())
if(search1 in df2['A'][j] or s2 in df2['A'][j] or words[0]+words[1] in df2['A'][j] or words[0]+words[1]+words[2] in df2['A'][j]):
print(df2['ID'][j])
break
我尝试过使用fuzzyfuzzy,但是它返回了一些错误的匹配,这破坏了脚本的要点。你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐