python读取两个excel “A”和“B”,的某"c"列,进行相似度匹配,相似度高的“B”附加到“A”中
时间: 2023-10-03 08:08:14 浏览: 71
这可以通过使用`pandas`库来实现。以下是一个简单的示例代码,可以读取两个Excel文件,将它们的"C"列进行相似度匹配,并将匹配度高的行从"B"文件附加到"A"文件中的新列"D"中。
```python
import pandas as pd
from difflib import SequenceMatcher
# 读取Excel文件
df_a = pd.read_excel("A.xlsx")
df_b = pd.read_excel("B.xlsx")
# 定义相似度函数
def similarity(a, b):
return SequenceMatcher(None, a, b).ratio()
# 为B文件的每一行找到与A文件C列最相似的行
matches = []
for index_b, row_b in df_b.iterrows():
max_similarity = 0
max_index = -1
for index_a, row_a in df_a.iterrows():
sim = similarity(row_a['C'], row_b['C'])
if sim > max_similarity:
max_similarity = sim
max_index = index_a
matches.append((index_b, max_index, max_similarity))
# 将匹配度高的行从B文件附加到A文件中
for match in matches:
index_b, index_a, similarity = match
if index_a != -1:
df_a.at[index_a, 'D'] = df_b.at[index_b, 'B']
# 保存结果到新的Excel文件
df_a.to_excel("A_with_B.xlsx", index=False)
```
在这里,我们使用`SequenceMatcher`类来计算两个字符串之间的相似度。然后,我们遍历"B"文件的每一行,并在"A"文件的"C"列中查找最相似的行。找到匹配项后,我们将匹配度高的行从"B"文件附加到"A"文件中的新列"D"中。最后,我们将结果保存到一个新的Excel文件中。
阅读全文