Это звучит странно, но, к сожалению, вы не делаете ничего плохого!
Код интерполяции валюты выполняет то, что вам нужно, и не более того. В своем коде вы все делаете правильно. Это означает, что нет ничего, что можно было бы быстро исправить для повышения производительности. У вас есть двойная лямбда, где вам нужна только одна, но это не будет иметь большого значения:
т.е.
df["converted_eur"] = df.apply(lambda x: convert_currency(x),axis=1)
должно быть
df["converted_eur"] = df.apply(convert_currency, axis=1)
Первое, что нужно сделать, это понять, сколько времени фактически займет эта обработка, добавив некоторый пользовательский интерфейс:
from tqdm import tqdm
df["converted_eur"] = df.progress_apply(convert_currency, axis=1)
Как только вы узнаете, сколько времени фактически займет работа возьмите, попробуйте их по порядку:
- Живите с этим.
- Распараллеливание одного экземпляра, например, pandarallel
- Несколько экземпляров распараллеливание, что-то вроде Dask