首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Pandas DataFrame货币转换

Pandas DataFrame货币转换
EN

Stack Overflow用户
提问于 2017-09-15 04:44:35
回答 2查看 5.6K关注 0票数 1

我有两列的DataFrame:

代码语言:javascript
运行
复制
col1     | col2

20         EUR
31         GBP
5          JPY

我可能有10000行这样的行

如何将基础货币快速转换为英镑?

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

编辑:我想将某事应用为:

代码语言:javascript
运行
复制
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
                                                                                  )

但它还不起作用。

EN

回答 2

Stack Overflow用户

发布于 2017-09-15 05:40:36

使用每种货币的换算率加入第三列,并加入col2中的货币代码。然后用折算后的金额创建一列。

代码语言:javascript
运行
复制
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']
票数 1
EN

Stack Overflow用户

发布于 2017-09-15 07:17:05

代码语言:javascript
运行
复制
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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46227944

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档