Match dataframe column with values in list with fuzzy matching and add matched values to new column

I have two dataframes:

df = pd.DataFrame({'company name':['apple inc', 'google llc', 'netflix, inc', 'facebook', 'shopify incorporated', ''],
                   'employees':[25000, 50000, 25000, 45000, 15000, 50000]})

ticker_lookup = pd.DataFrame({'standard company name':['EBay', 'Etsy', 'Apple', 'Google', 'Netflix', 'Facebook', 'Shopify', 'Amazon'],
                              'ticker':['ebay', 'etsy', 'aapl', 'googl', 'nflx', 'fb', 'shop', 'amzn']})

I want to perform a fuzzy match on df['company name'] to match the values in ticker_lookup['standard company name'] so that I can bring in the ticker symbols into df. I would also like the standard company names too.

I have chosen RapidFuzz for this task, but I suppose FuzzyWuzzy would work too. Using RapidFuzz, I wrote the following code:

import pandas as pd
from rapidfuzz.process import extractOne
from rapidfuzz.fuzz import ratio

# Get list of lookup values from ticker_lookup, and create empty list to append results
lookup_list = list(ticker_lookup['standard company name'])
matched_values = []

# For each value in 'company name', run rapidfuzz's extractOne module to perform the fuzzy matching
# This results in a list of tuples each containing: matched value, similarity score, and position of match in list
for i in list(df['company name']):
    matched_values.append(extractOne(i, lookup_list))

# Store results in a DataFrame
matched_df = pd.DataFrame(matched_values, columns=['standard company name','similarity score', 'index in list'])

# Concat results with original DataFrame
result = pd.concat([df, matched_df], axis=1)

While this method works, my actual dataframe contains more than 100K records, and the lookup list is around 3K so this process takes a very long time. I am wondering if there is another approach that is more condensed, such that I can perform the fuzzy matching and append the results directly to df within a for loop.

Any suggestions would be greatly appreciated!

How many English words
do you know?
Test your English vocabulary size, and measure
how many words do you know
Online Test
Powered by Examplum