一个数据集(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 ]}