Конвертирование USD -> EUR в большую базу данных панд с разными датами - PullRequest
0 голосов
/ 05 июля 2019

Я пытаюсь преобразовать столбец в моем Pandas DataFrame из USD в EUR.У каждой записи своя дата, поэтому нужен другой коэффициент конверсии.Проблема в том, что DataFrame содержит более 200 миллионов строк, поэтому он должен быть максимально эффективным.У кого-нибудь есть идеи, как это сделать эффективно?Я пробовал это, но, кажется, это очень медленно:

    from easymoney.money import EasyPeasy
    ep = EasyPeasy()
    df['money_eur'] = df.apply(lambda x: ep.currency_converter(x['money_usd'], 'USD', 'EUR', date=x['date'].strftime('%d/%m/%Y')), axis=1)

1 Ответ

0 голосов
/ 05 июля 2019

Нашли решение!Предварительно вычислите базу данных со всеми курсами валют на каждый день.Используйте слияние слева для df и обменного курса df.Теперь можно легко использовать столбец USD.

df = df.merge(exchangeRatesCurrencies, how='left', left_on='date_days', right_on='date_exchange')
df['money_eur'] = df['money_usd'] / df['USD']
...