2017-10-12 3 views
0

회사 이름이있는 열이있는 두 개의 CSV 파일이 있습니다. Python3과 pandas를 사용하여 이름을 비교하기 위해 병합했습니다.difflib가있는 열에서 비슷한 행을 찾는 방법은 무엇입니까?

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

동일한 열이있는 7 개의 행을 찾을 수 있습니다. 그러나이 파일에는 회사 이름이 있으며 일부 파일에는 항상 올바르게 입력되지 않습니다. 예 :

AGROPECUARIA INDIANA LTDA 
AGROPECUARIA INDINA LTDA 

AGROTRI AGROPECUARIA TRIANGULO LTDA 
AGROTRI AGROPECUARI TRIANGULO LTDA 

그래서 병합 파이썬

에서 유사한 값을 찾을 수없는 나는 다음 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 분 동안 가공을하지만 아무것도 반환하지 않았다. 뭔가 잘못? 나는 단지 결과를 보여주기 위해 필요한 생각

답변

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("-/-") 
관련 문제