处理熊猫数据框中的多个相似实体

时间:2018-08-03 11:15:30

标签: python pandas dataframe fuzzywuzzy

我有一个带有“名称”列的数据框。存在多个相似条目,但存在一些不一致之处。我想将它们合并为一个。我是数据分析的入门者,并且开始了解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键和值。

这是怎么了?还有其他有效的方法来检查列中所有类似类型的条目吗?

0 个答案:

没有答案