我有以下数据框:
df = pd.DataFrame(
{'id': [1, 2, 3, 4, 5, 6],
'fruits': ['apple', 'apples', 'orange', 'apple tree', 'oranges', 'mango']
})
id fruits
0 1 apple
1 2 apples
2 3 orange
3 4 apple tree
4 5 oranges
5 6 mango
我希望在列中找到模糊字符串fruits
并得到一个新的数据帧,如下所示,其ratio_score高于80。
如何在 Python 中使用 fuzzywuzzy 包做到这一点?谢谢。请注意ratio_score
是作为示例组成的一系列值。
我的解决方案:
df.loc[:,'fruits_copy'] = df['fruits']
df['ratio_score'] = df[['fruits', 'fruits_copy']].apply(lambda row: fuzz.ratio(row['fruits'], row['fruits_copy']), axis=1)
预期结果:
id fruits matched_id matched_fruits ratio_score
0 1 apple 2 apples 95
1 1 apple 4 apple tree 85
2 2 apples 4 apple tree 80
3 3 orange 5 oranges 95
4 6 mango
相关参考:
使用 python 模糊匹配已排序的列及其自身
在数据框列中应用模糊匹配并将结果保存在新列中
如何在Python中模糊匹配数组列中的项目?
使用 fuzzywuzzy 在数据框中创建一列匹配结果