2017-10-12 103 views
2

请,我有两个CSV文件与公司名称列。 随着Python3和熊猫我做了一个合并来比较名称:如何用Python搜索相似的列?

compara1 = pd.merge(
    dividas_dep, funrural, 
    left_on='Nome_Devedor', 
    right_on='Razao_Social') 

但是这些文件有不总是正确的某些文件类型的公司名称。例如:

AGROPECUARIA INDIANA LTDA 
AGROPECUARIA INDINA LTDA 

AGROTRI AGROPECUARIA TRIANGULO LTDA 
AGROTRI AGROPECUARI TRIANGULO LTDA 

因此合并没有找到相似的价值观 在Python是它可以搜索很高的相似性?请注意,'Nome_Devedor'中的行在'Razao_Social'中具有很大的相似性 是否有指示?

回答

1

你可以使用这个库比较字符串:

from difflib import SequenceMatcher 

def similar(a, b): 
    threshold = 0.8 
    return (SequenceMatcher(None, a, b).ratio() > threshold) 

这个函数返回true,用绳子类似于达到一定的阈值。您可以迭代两个文件中未考虑的字符串以完成匹配。

+0

谢谢 我的Python是3.6.2 当我尝试安装此消息出现: –

+0

PIP安装difflib 收集difflib 找不到满足要求difflib(从版本:)版本 没有匹配的分布发现difflib –

+1

我认为它应该是内置的。你尝试没有安装? – farbiondriven