Python的fuzzywuzzy与openpyxl的结合使用(逐行解释,适合小白)
from fuzzywuzzy import fuzz
from openpyxl import load_workbook
# 加载Excel文件
workbook = load_workbook('example.xlsx')
sheet = workbook.active
# 初始化一个空列表来存储结果
results = []
# 遍历每一行
for row in sheet.iter_rows(min_row=2, values_only=True):
# 使用fuzzywuzzy的fuzz.ratio计算相似度
similarity = fuzz.ratio(row[0], "需要匹配的字符串")
# 如果相似度超过阈值,例如70,将这一行和相似度添加到结果列表
if similarity > 70:
results.append((row, similarity))
# 打印结果
for result in results:
print(f"相似度: {result[1]}%, 数据: {result[0]}")
# 保存结果到新的Excel文件
new_workbook = Workbook()
new_sheet = new_workbook.active
for i, (row, score) in enumerate(results):
new_sheet.append(row)
new_sheet[f'A{i+2}'].value = f'{score}%'
new_workbook.save('results.xlsx')
这段代码首先加载了一个名为example.xlsx
的Excel文件,然后遍历除了标题之外的所有行。对于每一行,使用fuzz.ratio
函数计算该行的第一列与给定字符串的相似度。如果相似度超过70%,则将该行和相似度百分比存储在results
列表中。最后,它将结果保存到一个新的Excel文件results.xlsx
中,并在每个匹配行的相应单元格中注明了相似度百分比。
评论已关闭