Python 将模糊过程提取结果添加到df中
我有一个没有正确对齐的公司名称列表。 数据集看起来像 df[Name]=[Google,Google,Google.inc,Google inc.,Google.com] 我有大约500000行,名称应该以最好的方式更正 我的代码如下所示:Python 将模糊过程提取结果添加到df中,python,pandas,fuzzywuzzy,Python,Pandas,Fuzzywuzzy,我有一个没有正确对齐的公司名称列表。 数据集看起来像 df[Name]=[Google,Google,Google.inc,Google inc.,Google.com] 我有大约500000行,名称应该以最好的方式更正 我的代码如下所示: from fuzzywuzzy import fuzz from fuzzywuzzy import process import pandas as pd get_match = [] for row in df.index: name1= d
from fuzzywuzzy import fuzz
from fuzzywuzzy import process
import pandas as pd
get_match = []
for row in df.index:
name1= df.get_value(row,"Name")
for columns in df2.index:
name2=df2.get_value(columns,"Name")
matched_token=[process.extract(x, name2, limit=3) for x in name1]
get_match.append([matched_token, name1, name2])
df_maneet = pd.DataFrame({'Ratio': [i[0] for i in get_match], 'name1': [i[1] for i in get_match], 'name2':[i[2] for i in get_match]})
我的成绩
匹配的令牌是
[[('google',100,0),('Sxyzdgg',48,9),('ggigsk',45,2)]]
但我想在df中附加结果,并看到如下结果
我想我在matched.token行中运行了一些错误,但无法找出原因
提前感谢也许此代码将帮助您:
import pandas as pd
df = pd.DataFrame({"Name" : ["Google","google.inc"]})
df2 = pd.DataFrame({"Name" : ["google","google"]})
from fuzzywuzzy import fuzz
from fuzzywuzzy import process
get_match = []
for row in df.index:
name1 = []
name1.append(df.get_value(row,"Name"))
for columns in df2.index:
name2 = []
name2.append(df2.get_value(columns,"Name") )
matched_token=[process.extract(x, name2, limit=3)[0][1] for x in name1]
get_match.append([matched_token, name1[0], name2[0]])
df_maneet = pd.DataFrame({'name1': [i[1] for i in get_match], 'name2':[i[2] for i in get_match], 'Ratio': [i[0][0] for i in get_match]})
最终数据帧:
name1 name2 Ratio
0谷歌1001谷歌100
2谷歌公司谷歌90
3 google.inc google 90感谢您回答我的问题,但我真的不知道如何应用这个“df=pd.DataFrame”({“Name”:[“google”,“google.inc”]})”作为名称栏,我有超过200000个值。这只是一个例子。您可以拥有任意多的值—这无关紧要—解决方案是相同的。我看不到您的数据帧,所以我必须创建一个简单的示例;)谢谢,它起作用了。。只是问题是“limit=3”没有任何效果,代码仍然提供所有可能的匹配。。。