df1['B'] = float('nan')
pos = 0
for i in range(len(df1)):
for j in range(len(df2)):
if df1['A'][i].lower() in df2['B'][j].lower():
df1['B'].iloc[pos] = df2['B'][j]
pos+=1
break
df1.dropna(axis=0)
import pandas as pd
from fuzzywuzzy import fuzz
matched_entities = []
for row in df1.index:
name1 = vendor_df.get_value(row,"A")
for columns in df2.index:
name2=df2.get_value(columns,"B")
matched_token=fuzz.partial_ratio(name1,name2)
if matched_token> 80:
matched_vendors.append([A,B])
df_partial_ratio = pd.DataFrame(columns=['A', 'B'], data=matched_entities)
试试这个
输出
^{pr2}$你可以这样做。首先,定义一个与“标准化”文本匹配的查找函数,例如小写:
然后将此函数应用于DF2:
^{pr2}$这会给你:
尝试
Fuzzywuzzy
:如果}。这两种方法可以通过将上述一行代码改为以下代码来实现:
^{pr2}$fuzz.partial_ratio
不起作用,请尝试fuzz.ratio
或{或者
相关问题 更多 >
编程相关推荐