我有一个带有“名称”列的数据框。存在多个相似条目,但存在一些不一致之处。我想将它们合并为一个。我是数据分析的入门者,并且开始了解Fuzzywuzzy模块。我以下面的方式尝试了
names = list(data['Name'].unique())
def replace_matches(df, column, matching_string, min_ratio = 90):
strings = df[column].unique()
for i in matching_string:
matches = fuzzywuzzy.process.extract(i, strings, limit= 5, scorer=fuzzywuzzy.fuzz.token_sort_ratio)
close_matches = [matches[0] for matches in matches if matches[1] >= min_ratio]
matched_rows = df[column].isin(close_matches)
df.loc[matched_rows, column] = matching_string
return df
我正在调用以下函数:
replace_matches(df = data, column = 'Name', matching_string = names)
但是它给出了ValueError:使用可迭代项进行设置时必须具有相同的len键和值。
这是怎么了?还有其他有效的方法来检查列中所有类似类型的条目吗?