【问题标题】:How to find similar rows in columns with difflib?如何使用 difflib 在列中查找相似的行?
【发布时间】:2017-10-12 23:29:57
【问题描述】:

请,我有两个包含公司名称列的 CSV 文件。使用 Python3 和 pandas 我进行了合并以比较名称:

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 中找不到相似的值

然后我使用了 difflib:

from difflib import SequenceMatcher

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


for i, row in dividas_dep.iterrows():
    a = (row['Nome_Devedor'])
    for i, row in funrural.iterrows():
        b = (row['Razao_Social'])
        similar(a, b)

处理了大约 5 分钟,但没有返回任何内容。有什么问题吗?

【问题讨论】:

    标签: python


    【解决方案1】:

    我认为它只需要显示结果,我现在意识到:

    def similar(a, b):
        threshold = 0.8
        s = SequenceMatcher(None, a, b).ratio() > threshold
        print(s)
        return s
    
    
    for i, row in dividas_dep.iterrows():
        a = (row['Nome_Devedor'])
        for i, row in funrural.iterrows():
            b = (row['Razao_Social'])
            similar(a, b)
            print(a)
            print(b)
            print("-/-")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-16
      • 1970-01-01
      • 2017-07-01
      • 2021-07-20
      • 2010-10-06
      • 2020-06-29
      • 1970-01-01
      • 2018-07-13
      相关资源
      最近更新 更多