Aplique a correspondência difusa em uma coluna do quadro de dados e salve os resultados em uma nova coluna

Eu tenho dois quadros de dados, cada um com um número diferente de linhas. Abaixo estão algumas linhas de cada conjunto de dados

df1 =
     Company                                   City         State  ZIP
     FREDDIE LEES AMERICAN GOURMET SAUCE       St. Louis    MO     63101
     CITYARCHRIVER 2015 FOUNDATION             St. Louis    MO     63102
     GLAXOSMITHKLINE CONSUMER HEALTHCARE       St. Louis    MO     63102
     LACKEY SHEET METAL                        St. Louis    MO     63102

e

df2 = 
     FDA Company                    FDA City    FDA State   FDA ZIP
     LACKEY SHEET METAL             St. Louis   MO          63102
     PRIMUS STERILIZER COMPANY LLC  Great Bend  KS          67530
     HELGET GAS PRODUCTS INC        Omaha       NE          68127
     ORTHOQUEST LLC                 La Vista    NE          68128

Eu os juntei lado a lado usandocombined_data = pandas.concat([df1, df2], axis = 1). Meu próximo objetivo é comparar cada string emdf1['Company'] para cada string emdf2['FDA Company'] usando vários comandos correspondentes diferentesfuzzy wuzzy módulo e retorne o valor da melhor correspondência e seu nome. Eu quero armazenar isso em uma nova coluna. Por exemplo, se eu fiz ofuzz.ratio efuzz.token_sort_ratio emLACKY SHEET METAL nodf1['Company'] paradf2['FDA Company'] retornaria que a melhor correspondência foiLACKY SHEET METAL com uma pontuação de100 e isso seria salvo em uma nova coluna emcombined data. Os resultados pareceriam

combined_data =
     Company                                   City         State  ZIP      FDA Company                     FDA City    FDA State   FDA ZIP     fuzzy.token_sort_ratio    match    fuzzy.ratio         match
     FREDDIE LEES AMERICAN GOURMET SAUCE       St. Louis    MO     63101    LACKEY SHEET METAL              St. Louis   MO          63102       LACKEY SHEET METAL        100      LACKEY SHEET METAL  100
     CITYARCHRIVER 2015 FOUNDATION             St. Louis    MO     63102    PRIMUS STERILIZER COMPANY LLC   Great Bend  KS          67530
     GLAXOSMITHKLINE CONSUMER HEALTHCARE       St. Louis    MO     63102    HELGET GAS PRODUCTS INC         Omaha       NE          68127
     LACKEY SHEET METAL                        St. Louis    MO     63102    ORTHOQUEST LLC                  La Vista    NE          68128

Eu tentei fazer

combined_data['name_ratio'] = combined_data.apply(lambda x: fuzz.ratio(x['Company'], x['FDA Company']), axis = 1) 

Mas ocorreu um erro porque os comprimentos das colunas são diferentes.

Estou perplexo. Como eu posso conseguir isso?

questionAnswers(1)

yourAnswerToTheQuestion