Python 将模糊过程提取结果添加到df中

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

我有一个没有正确对齐的公司名称列表。 数据集看起来像

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= 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谷歌100
1谷歌100
2谷歌公司谷歌90

3 google.inc google 90

感谢您回答我的问题,但我真的不知道如何应用这个“df=pd.DataFrame”({“Name”:[“google”,“google.inc”]})”作为名称栏,我有超过200000个值。这只是一个例子。您可以拥有任意多的值—这无关紧要—解决方案是相同的。我看不到您的数据帧,所以我必须创建一个简单的示例;)谢谢,它起作用了。。只是问题是“limit=3”没有任何效果,代码仍然提供所有可能的匹配。。。