附加 fuzzywuzzy 过程提取结果到 df
appending of fuzzywuzzy process extract result into df
我有一份未正确对齐的公司名称列表。
数据集看起来像
df[Name]= [Google, google, Google.inc, Google Inc., Google.com]
我有大约 500,000 行,应该以最佳方式更正名称。
我的代码如下所示:
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]})
我的成绩是
matched_token 是
[[('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 Google google 100
1 Google google 100
2 google.inc google 90
3 google.inc google 90
我有一份未正确对齐的公司名称列表。 数据集看起来像
df[Name]= [Google, google, Google.inc, Google Inc., Google.com]
我有大约 500,000 行,应该以最佳方式更正名称。
我的代码如下所示:
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]})
我的成绩是 matched_token 是
[[('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 Google google 100
1 Google google 100
2 google.inc google 90
3 google.inc google 90