2017-10-12 15 views
0

会社名の列を持つ2つのCSVファイルがあります。 Python3とpandasを使って、名前を比較するためにマージしました。difflibを使って同様の行を列で見つける方法は?

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

等しい列の7つの行が見つかりました。しかし、これらのファイルには、会社名の一部が正しく入力されていない場合があります。例:

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分間処理したが、何も返しませんでした:

AGROPECUARIA INDIANA LTDA 
AGROPECUARIA INDINA LTDA 

AGROTRI AGROPECUARIA TRIANGULO LTDA 
AGROTRI AGROPECUARI TRIANGULO LTDA 

だから、マージが、私はその後、difflibを使用Pythonの

で同様の値を見つけることができません。何か問題でも?私はそれが唯一の結果を表示するために必要だと思う

答えて

0

は、私が今実現:

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("-/-") 
関連する問題