如何使用Python和Fuzzy输出2个数据集之间另一列的匹配值的对应ID?

时间:2019-08-26 21:00:53

标签: python dataframe matching fuzzywuzzy

一个数据集(df1)具有名称,另一个数据集(df2)具有名称以及uniqueId。

任务是从df1收集与df2中的name列高度匹配的行,然后从df2返回该行的uniquieID

我尝试了for循环。 我已经尝试使用process.extractOne函数 但是我不知道如何提取该行的ID。

 import pandas as pd
    from fuzzywuzzy import process , fuzz 

    df1={'id':[1,2,3,99,5], 'df_1_name':['one','two','three','four','five']}
    df2={'df2_name':['one','two','three','four','six']}

    row=[]
    match_values=[]
    for value in df2.df_name:
        if fuzz.partial_token_sort_ratio ( value, df1.df1_name) > 80:
            print (value)
            values.append (value)
            print(fuzz.partial_token_sort_ratio(value,x))
            match_values.append(fuzz.partial_token_sort_ratio(value,x))

    output = pd.DataFrame({'Values':values,
                          'match_values':ratio})
    output

如何获取符合条件的值的相应ID#?

必填输出:

df3 = {' df2_name ' : ['one', 'two' , 'three' , 'four' ], 'ID':[ 1, 2, 3, 99 ]}

0 个答案:

没有答案