Python 数据帧货币转换

Python 数据帧货币转换,python,pandas,currency,Python,Pandas,Currency,我的DataFrame有两列: col1 | col2 20 EUR 31 GBP 5 JPY 我可能有10000行像这样 如何快速将货币转换为英镑本位币 我应该用easymoney吗? 我知道如何将转换应用于单行,但不知道如何快速遍历所有行 编辑: 我想将某物用作: def convert_currency(amount, currency_symbol): converted = ep.currency_converter

我的DataFrame有两列:

col1     | col2

20         EUR
31         GBP
5          JPY
我可能有10000行像这样

如何快速将货币转换为英镑本位币

我应该用easymoney吗? 我知道如何将转换应用于单行,但不知道如何快速遍历所有行

编辑: 我想将某物用作:

def convert_currency(amount, currency_symbol):
    converted = ep.currency_converter(amount=1000, from_currency=currency_symbol, to_currency="GBP")
    return converted


df.loc[df.currency != 'GBP', 'col1'] = convert_currency(currency_data.col1, df.col2
                                                                                  )

但是它还不起作用。

加入第三列,列出每种货币的兑换率,加入col2中的货币代码。然后创建一列,其中包含已翻译的金额

dfRate:
code | rate
EUR    1.123
USD    2.234

df2 = pd.merge(df1, dfRate, how='left', left_on=['col2'], right_on=['code'])

df2['translatedAmt'] = df2['col1'] / df2['rate']

覆盖所述行,类似以下内容
df['col1']=formulas*df['col1']
。我认为没有快速的选择来吸收熊猫的货币比率吗?什么是我有30种不同的货币?你们有汇率吗?哪种形式?我没有。我想我可以使用easymoney。它只对第一个“x”列执行此操作,其中“x”等于dfRate的len。对于所有后续列,它都会执行此操作。您是否在迭代任何一个数据帧?
df = pd.DataFrame([[20, 'EUR'], [31, 'GBP'], [5, 'JPY']], columns=['value', 'currency'])
print df

   value currency
0     20      EUR
1     31      GBP
2      5      JPY

def convert_to_gbp(args):  # placeholder for your fancy conversion function
    amount, currency = args
    rates = {'EUR': 2, 'JPY': 10, 'GBP': 1}
    return rates[currency] * amount

df.assign(**{'In GBP': df.apply(convert_to_gbp, axis=1)})

   value currency  In GBP
0     20      EUR      40
1     31      GBP      31
2      5      JPY      50