Fuzzy Match
Input, Output
Input
Output
Example Use Cases
Example Input Table
A
B
Example Code
#import Libraries
import pandas as pd
import difflib
# Function to perform fuzzy matching
def fuzzy_match(list1, list2, threshold=0.5): # Lowering the threshold to 0.5
matches = []
for item in list1:
match = difflib.get_close_matches(item, list2, n=1, cutoff=threshold)
if match:
similarity = difflib.SequenceMatcher(None, item, match[0]).ratio() * 100
matches.append((item, match[0], similarity))
return matches
#Convert list of dictionaries to pandas dataframe
tbl = sources[0]
df = tbl.df
#Print the Dataframe to check structure
print("DataFrame structure:\n",df)
#Select the first two columns dynamically
list1 = df.iloc[:,0].tolist()
list2 = df.iloc[:,1].tolist()
#Perform Fuzzy Matching
matches = fuzzy_match(list1, list2)
#Create Dataframe for reults
results_df = pd.DataFrame(matches, columns=['Original Column','Match','Similarity Score'])
#Print and Return Results
print("\nResults:\n",results_df)
return [Table(df=results_df, name="Fuzzy Match Results")]Example Output Table
Original Column
Match
Similarity Score
Last updated