I am working on a dataset which contains a column with common country names.
Task: To convert country name into standard ISO names
I have written a basic function which converts country names into country codes using pycountry
library.
import pandas as pd
import pycountry
df = pd.DataFrame({"Country":["China","US","Iceland"])
def do_fuzzy_search(country):
try:
result = pycountry.countries.search_fuzzy(country)
return result[0].alpha_3
except:
return np.nan
df["country_code"] = df["Country"].apply(lambda country: do_fuzzy_search(country))
But I am facing issues.Its taking too long. My dataset has 17003 rows,which is not even that large a number.
Firstly, suggestions on the code to improve its performance would be welcome.
Secondly, I would like to know if there is completely different way to do this faster.