在具有不同日期的大型 pandas 数据库中转换美元 -> 欧元
Converting USD -> EUR in large pandas database with varying dates
我正在尝试将 Pandas DataFrame 中的列从美元转换为欧元。每个条目都有不同的日期,因此需要不同的转换率。问题在于 DataFrame 包含超过 2 亿行,因此它应该尽可能高效。有谁知道如何有效地做到这一点?我试过了,但它似乎非常慢:
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)
找到解决办法了!预先计算一个包含每天所有汇率的数据库。对 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']
我正在尝试将 Pandas DataFrame 中的列从美元转换为欧元。每个条目都有不同的日期,因此需要不同的转换率。问题在于 DataFrame 包含超过 2 亿行,因此它应该尽可能高效。有谁知道如何有效地做到这一点?我试过了,但它似乎非常慢:
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)
找到解决办法了!预先计算一个包含每天所有汇率的数据库。对 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']