【发布时间】:2020-05-29 12:16:19
【问题描述】:
问题:我在一列中有记录,例如。 Bulambuli和Bulambuli区基本相同。
解决方案:我试图在同一列中搜索一种模糊匹配,发现 -Pandas replace strings with fuzzy match in the same column:
import difflib
import pandas as pd
df = pd.DataFrame({'district' : pd.Series(['Bulambuli', 'Kampla', 'Uttah' ,'Bulambuli district'])})
names = df['district']
def fuzzy_replace(x, names):
aliases = difflib.get_close_matches(x, names)
closest = pd.Series(aliases).mode()
closest = aliases[0] if closest.empty else closest[0]
df['district'].replace(aliases, closest, True)
df["district"].apply(lambda x: fuzzy_replace(x, df['district']))
你有过类似的问题吗?你会建议我如何处理它?
【问题讨论】: