如何解决我如何与 SequenceMatcher
我使用 SequenceMatcher 比率来匹配具有最佳比率的两个数据帧。
我想先检查 A 和 AA 的分数是否良好,然后检查 B 之间的分数是否为 BB 再检查 C 和 CC 之间的分数是否良好,然后我添加该行
A B C
0 pizza ze 3
1 polo fe 5
2 ninja fi NaN
AA BB CC
0 za ze NaN
1 po ka 8
2 fe fe 6
3 pizza fi 3
4 polo ko 5
5 ninja 3 pizza
我想要这样的数据框:
A B C AA BB CC score
0 pizza ze 3 pizza ze 3 100
1 polo fe 5 polo ko 5 75
2 ninja fi NaN ninja 3 pizza 30
我试过这个功能,但它不起作用:
from difflib import SequenceMatcher
def similar(a,b):
ratio = SequenceMatcher(None,a,b).ratio()
return ratio
order = []
score = []
for index,row in df1.iterrows():
maxima = [similar(row['A'],j) for j in df2['AA']]
best_ratio = max(maxima)
if best_ratio > 0.9:
maxima2 = [similar(row['B'],j) for j in df2['BB']]
best_ratio2 = max(maxima2)
if best_ratio2 > 0.9:
maxima3 = [similar(row['C'],j) for j in
df2['CC']]
best_ratio = max(maxima3)
best_row = np.argmax(maxima3)
order.append(best_row)
score.append(best_ratio)
df2 = df2.iloc[order].reset_index()
merge = pd.concat([df1,df2],axis=1)
解决方法
最好是使用tf idf来找到最佳比例。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。