对于要分组为一组的客户端,我有类似的名称,例如:| 一种集管|| --------------|| schwabstsoct2022|| 施瓦布茨|| schwabregionaloct2022|| Schwabregional2|| Flagstar-2022|| Flagstar-2021|有些有一个字符,我可以用来分隔字符串,然后分类它,但有些没有,所以有一个行之间的相似性得分,我可以用来快速分类它,并有另一列的输出。谢谢!
camsedfj1#
我希望我理解了你的问题。要查找相似度得分,您可以使用difflib内置模块:
difflib
from difflib import SequenceMatcher def similar(a, b): return SequenceMatcher(None, a, b).ratio() for s1 in df['A header']: df[s1] = [similar(s1, s2) for s2 in df['A header']] print(df)
图纸:
A header schwabstsoct2022 schwabsts schwabregionaloct2022 schwabregional2 flagstar-2022 flagstar-2021 0 schwabstsoct2022 1.000000 0.720000 0.702703 0.516129 0.482759 0.413793 1 schwabsts 0.720000 1.000000 0.466667 0.500000 0.272727 0.272727 2 schwabregionaloct2022 0.702703 0.466667 1.000000 0.833333 0.352941 0.294118 3 schwabregional2 0.516129 0.500000 0.833333 1.000000 0.142857 0.142857 4 flagstar-2022 0.482759 0.272727 0.411765 0.285714 1.000000 0.923077 5 flagstar-2021 0.413793 0.272727 0.352941 0.285714 0.923077 1.000000
1条答案
按热度按时间camsedfj1#
我希望我理解了你的问题。要查找相似度得分,您可以使用
difflib
内置模块:图纸: